Какая разница между настройкой оптимизатора или нет в Keras - PullRequest
0 голосов
/ 28 июня 2019

Мой вопрос, в основном, в чем разница в Керасе, если я

# first method

sgd = SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy',optimizer=sgd, metrics=['accuracy'])

или просто

# second method 

model.compile(loss='binary_crossentropy',optimizer='sgd', metrics=['accuracy'])

Оба компилируются хорошо, но когда я

model.fit(x_train, y_train, epochs=20, batch_size=4)

первый приводит к

ValueError: Tensor("training/SGD/Variable:0", shape=(11, 11, 4, 96), 
dtype=float32_ref) must be from the same graph as Tensor("SGD/momentum/read:0", 
shape=(), dtype=float32).

, а во втором методе, где я использую оптимизатор sgd по умолчанию, сеть тренируется нормально.

Похоже, ошибка 2тензоры не из того же графика, но я думаю, что это связано с импортированным SGD?

Я также попробовал первый метод на другой модели, которая у меня есть, и удивительно, что она не приводит к ошибке.Я думаю, что это не должно зависеть от архитектуры модели.

Почему это происходит?

Версия Keras: 2.2.4
Версия Python: 3.6.5
Версия TensorFlow: 1.13.1

РЕДАКТИРОВАТЬ

Мое плохое, у меня было

tf.reset_default_graph()
with tf.Session() as test:
  ...

в середине моего кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...