Не меняется значения ф-ции потерь при оптимизации в Tensorflow
Пытаюсь реализовать нейронную сеть с одним слоем. Вот код на tensorlow
w1 = tf.Variable(shape = (10, training_images.shape[0]), dtype = tf.float32, initial_value=np.random.randn(10, training_images.shape[0]) / 100)
b1 = tf.Variable(shape = (10, 1), dtype = tf.float32, initial_value=np.zeros((10, 1)))
y = tf.math.sigmoid(tf.matmul(w1, training_images) + b1)
loss = tf.math.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=y))
optimizer = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
init = tf.global_variables_initializer()
with tf.Session() as session:
session.run(init)
print('loss = ', loss.eval())
for step in range(100):
session.run(optimizer)
if step % 10 == 0:
print('loss = ', loss.eval())
При выполнении пишет:
loss = 665622.9
loss = 660126.1
loss = 660126.1
loss = 660126.1
loss = 660126.1
loss = 660126.1
loss = 660126.1
loss = 660126.1
loss = 660126.1
loss = 660126.1
loss = 660126.1
При каждом повторном запуске кода первая строка логов показывает разное значение loss, а следующие всегда loss = 660126.1 . Такое ощущение, что tensorflow почему то не обновляет значения переменных w1 и b1. Подскажите пожалуйста в чем может быть проблема