import tensorflow as tf
import numpy as np
#date generation
x_data = np.float32(np.random.rand(2, 100))
y_data = np.dot([0.1, 0.2], x_data) + 0.3
#linear model
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
#minimize variance
loss = tf.reduce_sum(tf.square(y - y_data)) #why I cannot use sum here
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
#initialization
init = tf.global_variables_initializer()
#graph initialization
sess = tf.Session()
sess.run(init)
#train network
for step in range(201):
sess.run(train)
#if step % 20 == 0:
print(step, sess.run(W), sess.run(b), sess.run(loss))
こんにちはtensorflowを使っておもちゃのモデルを実現しながら、私が問題に会いました。 tf.reduce_sum()を損失関数として使用した場合、オプティマイザは収束できませんでした。実際、損失は大きくなりました。しかし、私がからtf.reduce_sum()からtf.reduce_mean()に変更すると、オプティマイザは正常に動作しました。誰もが理由を教えてくださいtf.reduce_sum()はこのモデルでは機能しませんが、tf.reduce_mean()はどうしますか?(tf.reduce_sumを使用して最適化することはできません)が、(tf.reduce_mean使用して成功した)