如何在tensorflow中更新变量/占位符的一部分?

时间:2019-07-10 18:13:25

标签: python tensorflow

这是我正在使用的代码的一部分:

noise = tf.Variable(tf.zeros((299, 299, 3)))
sess.run(noise.initializer)
op1 = tf.assign(subX,x_hat-x)
op3 = tf.assign(noise[125:175, 125:175], subX)
op2 = tf.assign(x_hat,noise+x)

如您所见,对于op3,我试图从subX分配变量“噪声”的一部分,该变量由决定。但是,我收到此错误:

  

UnimplementedError:找到2个根本错误。 (0)未实现:切片   l值形状[50,50,3]与r值形状[299,299,3]不匹配。   尚未实施自动广播。 [[节点   strided_slice_2 / _assign(定义在   :10)]] [[Assign_15 / _821]](1)   未实现:切片的L值形状[50,50,3]与R值不匹配   形状[299,299,3]。尚未实施自动广播。
  [[node strided_slice_2 / _assign(在   :10)]] 0成功操作。 0   衍生错误将被忽略。

     

错误可能源于输入操作。输入源   连接到节点strided_slice_2 / _assign的操作:变量/读取   (定义于:7)Variable_5(定义于   :7)

     

连接到节点strided_slice_2 / _assign的输入源操作:   变量/读取(定义为:7)
  Variable_5(定义为:7)

1 个答案:

答案 0 :(得分:0)

我在这条线上犯了一个简单的错误:

op3 = tf.assign(noise[125:175, 125:175], subX)

subX与噪声的大小不同;由于我没有在详细信息中添加它,因此很难推断。

相关问题