机器学习之旅

tf.scan 记录

2018-06-06  本文已影响2人  slade_sal

tf.scan(fn, elems, initializer=None, parallel_iterations=10, back_prop=True, swap_memory=False, infer_shape=True, name=None)

fn:计算函数
elems:以elems的第一维度的变量list作函数计算直到遍历完整个elems
initializer:fn计算的初始值,替代elems做第一次计算

举个好理解的例子:

x = [1,2,3]
z = 10

x = tf.convert_to_tensor(x)
z = tf.convert_to_tensor(z)

def f(x,y):
    return x+y

g = tf.scan(fn=f,elems = x,initializer=z)

sess = tf.Session()
sess.run(tf.global_variables_initializer)

sess.run(g)

会得到:

In [97]: sess.run(g)
Out[97]: array([11, 13, 16], dtype=int32)

详细的计算逻辑如下:
11 = 10(初始值initializer)+ 1(x[0])
13 = 11(上次的计算结果)+2(x[1])
16 = 13(上次的计算结果)+3(x[2])

上一篇下一篇

猜你喜欢

热点阅读