2つの画像の間にl2_loss
を計算しようとしていますが、gradient
を取得しています。ValueError:最適化する変数がありません
with tf.name_scope("train"):
X = tf.placeholder(tf.float32, [1, None, None, None], name='X')
y = tf.placeholder(tf.float32, [1, None, None, None], name='y')
Z = tf.nn.l2_loss(X - y, name="loss")
step_loss = tf.reduce_mean(Z)
optimizer = tf.train.AdamOptimizer()
training_op = optimizer.minimize(step_loss)
init = tf.global_variables_initializer()
with tf.Session() as sess:
init.run()
content = tf.gfile.FastGFile('cat.0.jpg', 'rb').read()
noise = tf.gfile.FastGFile('color_img.jpg', 'rb').read()
loss_append = []
for epoch in range(10):
for layer in layers:
c = sess.run(layer, feed_dict={input_img: content})
n = sess.run(layer, feed_dict={input_img: noise})
sess.run(training_op, feed_dict={X: c, y: n})
をしかし、それは次のエラーを与える:私のコードのスニペットは、ここで与えられている
Traceback (most recent call last):
File "/home/noise_image.py", line 68, in <module>
training_op = optimizer.minimize(lossss)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training /optimizer.py", line 315, in minimize
grad_loss=grad_loss)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training /optimizer.py", line 380, in compute_gradients
raise ValueError("No variables to optimize.")
ValueError: No variables to optimize.
それを取り除くためにどのように?
'layer'は、ここでモデルファイルから特定のレイヤーを復元することによって得られる出力です。このような変数を定義する必要があります(この問題のコードの非関連部分は無視してください)。 'layer'のテンソル値を評価し、' placeholder'を使わずに 'X'と' y'に与える方法はありますか? – tahsin314
downvote申し訳ありません。私はupvoteを与えることを意図したが間違って間違ったボタンを押して、今ロックされています。 – tahsin314
コードの一部を複製する必要があります – user3080953