您正在
tf.assign会话上下文中进行呼叫。每次执行
errorValW函数时,都会在图表上不断添加 *** 作,随着图表的变大,执行速度会变慢。根据经验,在对数据执行模型时,应避免调用Tensorflow *** 作(因为这通常会在循环内,从而导致图形不断增长)。根据我的个人经验,即使您在执行期间仅添加“几个” *** 作,也可能导致极慢的运行速度。
请注意,这
tf.assign是任何其他 *** 作。您应该事先定义一次(在创建模型/构建图形时),然后在启动会话后重复运行相同的op。
我不知道您在代码段中到底要实现什么,但是请考虑以下几点:
...with tf.Session() as sess: sess.run(tf.assign(some_var, a_value))
可以替换为
a_placeholder = tf.placeholder(type_for_a_value, shape_for_a_value)assign_op = tf.assign(some_var, a_placeholder)...with tf.Session() as sess: sess.run(assign_op, feed_dict={a_placeholder: a_value})
其中
a_placeholder应具有相同的D型/形状
some_var。我必须承认我还没有测试过此代码段,所以如果有问题,请告诉我,但这应该是正确的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)