Не меняется значения ф-ции потерь при оптимизации в 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. Подскажите пожалуйста в чем может быть проблема


Ответы (0 шт):