#!/usr/bin/env python
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8:
import tensorflow as tf
x = tf.placeholder(dtype=tf.float32, shape=[2])
loss = tf.reduce_sum(tf.square(x))
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
init = tf.global_variables_initializer()
with tf.Session() as sess:
session.run(init)
for i in range(10):
sess.run(train_op)
print x.eval(), loss.eval()
私は上記のコードを持っています。実行すると、以下のエラーが発生しました。最適化したい x
。なぜそれが最適化する変数がないと言っているのか理解できません。 GradientDescentOptimizer
正しく?ありがとう。
$ ./main.py
Traceback (most recent call last):
File "./main.py", line 8, in <module>
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/optimizer.py", line 343, in minimize
grad_loss=grad_loss)
File "/usr/local/lib/python2.7/site-packages/tensorflow/python/training/optimizer.py", line 408, in compute_gradients
raise ValueError("No variables to optimize.")
ValueError: No variables to optimize.
回答:
回答№1は0それがエラーで述べているように、あなたはあなたのモデルで訓練時に訓練されるどんな変数も定義していません、 x
単なるプレースホルダーです。