Skip to content

Instantly share code, notes, and snippets.

View cocuh's full-sized avatar
🛌
Comfy bed sleeping

cocuh cocuh

🛌
Comfy bed sleeping
View GitHub Profile
import keras
import keras.layers as L
import keras.regularizers as R
import keras.callbacks as C
from keras.engine import Model, Input
from alea import dataset
import tensorflow as tf
@cocuh
cocuh / Makefile
Created September 10, 2017 09:02
gcc -std=c++11 -shared -fPIC -I /tmp/alea/venv/lib/python3.6/site-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -o ops.so _ops.cpp

ハエトリグサという植物がある(写真みて).感覚毛といわれる毛がある.毛に2回ふれると閉じて虫を捕まえる(捕食反応)."2回の刺激"の時間的間隔が長いと閉じない(1分以上).理由は,1分以内に2回触れると虫の可能性が高いが,そうじゃないと風かもしれないから. では,ハエトリグサは,1分以内をタイマーみたいな手法で"刺激"を記憶して,時間経過で忘れているはずである. 疑問は,ハエトリグサの捕食反応の具体的な条件は何なのか.

電極を挿して測ると,植物なのに神経みたいな活動電位(ggって)がみえた.捕食反応が起こる時は,必ず2回活動電位が発生していた. いくつかの実験から,感覚毛に触れなくても閉まることがわかった,具体的には針金で葉っぱを何度も突くと捕食反応を示す.この時の電位を調べると, 何度か 突くと活動電位が発生し,2回の活動電位が1分以内に観測されると捕食反応を示す.つまり,捕食反応には必ず2回活動電位が必要である. 葉っぱを突く時間的間隔を長くすると活動電位が発生せず閉まらない.つまり,活動電位を発生させる前にも記憶があるはずだ.

結論,捕食反応は2つの条件から成り立つ(stepwise memoryとか読んでる).1つは,活動電位を数えている記憶,1分以内に2回活動電位が観測されないと捕食反応が起こらない(count memoryとか読んでる).もう1つは,葉っぱへの負荷をアナログな値で蓄積的に記憶し,しきい値を超えると活動電位を発生させる記憶(accumulative memoryとか読んでる). count memoryは先行研究[たしか2009年]があるが,accumulative memoryとstepwise memoryについては言及されておらず,世界初の仮説である[2011年当時].

import keras.layers as L
import keras.backend as K
from keras.engine import Model
import tensorflow as tf
def unexpected_initialization():
sess = tf.Session()
K.set_session(sess)
  • function keys
    • 輝度とか
  • xorg key map
    • alt <-> super (両側)
    • caps -> ctrl
  • vterm key map
    • no caps
  • ssh to saya
  • saya ssh keys
  • firefox
@cocuh
cocuh / strategy.rs
Last active May 14, 2016 14:18
strategy pattern on Rust with multi-threading
use std::sync::{Arc, Mutex};
use std::vec::Vec;
trait Queue<T> {
fn new() -> Self where Self: Sized; // required
fn enqueue(&mut self, item: T);
fn dequeue(&mut self) -> Option<T>;
}
#[derive(Debug)]
trait Behaviour {
fn run(&self);
}
struct YoujoBehaviour{}
impl Behaviour for YoujoBehaviour{
fn run(&self){println!("はわわ");}
}
struct Caller<'a> {
use std::sync::{Arc, Mutex};
use std::vec::Vec;
trait Queue<T> {
fn new() -> Self where Self:Sized;
fn enqueue(&mut self, item:T);
}
#[derive(Debug)]
struct FIFOQueue<T>{
trait Queue<T> {
}
struct FifoQueue<T>{
data: Vec<T>
}
struct JobQueue<J, Q=FifoQueue<J>> {
queue: Q,
}