/ / GradientDescentOptimizerの使い方 - 最適化、テンソルフロー

GradientDescentOptimizerの使い方 - 最適化、テンソルフロー

#!/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 単なるプレースホルダーです。