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()을 사용하여 성공했습니다.