我四处寻找教程/文章/例子/.在TensorFlow中使用尖峰神经元(例如SRM/Spike反应模型),但我什么也找不到。
有可能在TensorFlow中模拟这些模型吗?
TensorFlow能模拟出具体依赖时间的模型吗?
是否有任何插件/扩展名/数据文件可以添加此功能?
支持GPU吗?
发布于 2017-01-16 08:44:56
是的,tensorflow可以实现尖峰神经元模型。它是一个通用的计算框架。
是否有可用的实现:我不这样认为,但我有一个朋友谁对这个项目感兴趣。
许多/大多数tensorflow操作都支持GPU。您必须检查文档,以确定哪些文档不受支持。
发布于 2018-07-27 01:19:55
正如Steven所指出的,Tensorflow是一个计算框架,因此允许实现任何算法。
Tensorflow与其他计算框架(如Matlab或numpy/scipy )之间的主要区别是,它依赖于计算图:您不直接执行操作,而是构建一个操作图,稍后在会话中进行评估。
我也对尖峰神经元和Tensorflow感兴趣,并发现了这个问题。作为joti,我在Tensorflow (链接到我的博客文章)中实现了相同的Matlab练习
例如,假设您提供u、v和i,这里有两个定义膜和恢复因子增量的操作:
n = 10
SPIKING_THRESHOLD = 35.0
v = tf.placeholder(tf.float32, shape=[n])
u = tf.placeholder(tf.float32, shape=[n])
i = tf.placeholder(tf.float32)
# Evaluate which neurons have reached the spiking threshold
has_fired_op = tf.greater_equal(v, tf.constant(SPIKING_THRESHOLD, shape=v.shape))
# Evaluate membrane potential increment for the considered time interval
# dv = 0 if the neuron fired, dv = 0.04v*v + 5v + 140 + I -u otherwise
dv_op = tf.where(has_fired_op,
tf.zeros(v.shape),
tf.subtract(tf.add_n([tf.multiply(tf.square(v), 0.04),
tf.multiply(v, 5.0),
tf.constant(140.0, shape=v.shape),
i]),
self.u))
# Evaluate membrane recovery decrement for the considered time interval
# du = 0 if the neuron fired, du = a*(b*v -u) otherwise
du_op = tf.where(has_fired_op,
tf.zeros([v.shape]),
tf.multiply(A, tf.subtract(tf.multiply(B, v), u)))
你这样评价他们:
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
feed = {u: np.full((n), -13.0), v: np.full((n), -65.0), i : 7.0}
dv, du = sess.run([dv_op, du_op], feed_dict=feed)
请注意,这只是一个示例来说明Tensorflow是如何工作的,而不是对尖峰神经元的实际模拟:通常您希望基于突触输入来评估u和v(在这种情况下,占位符将是突触输入)。
https://stackoverflow.com/questions/41679830
复制相似问题