python - 值错误: No variables to optimize

标签 python machine-learning tensorflow gradient-descent

我正在尝试计算两个图像之间的l2_loss并获取它们的梯度。这里给出了我的代码片段:

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. 

如何摆脱它?

最佳答案

Xy 具有从 feed_dict 馈送的值,而 Z 是这些值的函数,因此TensorFlow 无法训练它们。

不要将X设置为占位符,而是将其分配给其张量值(layer)。对 y 执行相同的操作。

您的最终代码应类似于:

for epoch in range(10):
    sess.run(training_op, feed_dict={input_image_content: content, input_image_noise: noise})

关于python - 值错误: No variables to optimize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46246556/

相关文章:

python - 在 networkx 中的图形对象中查找单独的图形

python - 为什么 urllib.urlopen(url) 失败而 urllib2.urlopen(url) 有效。服务器响应的具体原因是什么?

python - 属性错误 : 'Dimension' object has no attribute 'log10' while using Keras Sequential Model. 适合

tensorflow - 在 TF 操作中评估 TF 模型会引发错误

python 2.7和3.3子进程模块区别

python - 高级 for 循环

python - 机器学习电子邮件优先级 - Python

machine-learning - 我可以将早期停止合并到 keras 网格搜索中吗?

python - 使用 UCI 数据集进行 Tensorflow 数据处理

python-3.x - TensorFlow 2.0 'build' 函数