了解Keras功能 - 多线程?

时间:2017-07-04 15:05:32

标签: keras

我在Keras后端使用tensorflow功能。我试图理解我注意到的行为:

详细说明:

版本A输出:

[[ 1.]]
[[ 2.]]
[[ 3.]]
[[ 4.]]

但是, 版本B输出不同的结果,如线程(值可以不同):

Using TensorFlow backend.
[array([[ 0.]], dtype=float32)]
[array([[ 2.]], dtype=float32)]
[array([[ 3.]], dtype=float32)]
[array([[ 4.]], dtype=float32)]

K.eval做了什么使这种情况有所不同? 感谢

代码

基本的inc函数

def inc():
    updates = []
    counter = K.zeros((1,1))
    ones = K.ones(K.get_variable_shape(counter))
    updates.append(K.update_add(counter,ones))
    return updates,counter

updates, output = inc()

f_inc = K.function([],[output],updates=updates)

代码A

for i in range(1,5):
     f_inc([])
     print(K.eval(output))

代码B

for i in range(1,5):
     print(f_inc([]))

0 个答案:

没有答案