Я очень плохо знаком с машинным обучением.Я нашел этот пример на Github: Код
Я реализовал функцию q_learning_keras и перенес модель Keras в модель tf.keras.
С моделью Keras 1000 эпизодовзаймет около 30 минут.
С моделью 1000 tf.keras Эпизоды занимают около 110 минут.
Кроме того, для варианта tf.keras требуется примерно на 5-7% меньше энергии процессора.
Я используюTensorflow версии 1.13.1 и Keras версии 2.2.4.
Я запускаю код на виртуальной машине с 4 ядрами @ 2,6 ГГц.
Модель Keras:
model = Sequential()
model.add(InputLayer(batch_input_shape=(1, 5)))
model.add(Dense(10, activation='sigmoid'))
model.add(Dense(2, activation='linear'))
model.compile(loss='mse', optimizer='adam', metrics=['mae'])
Модель tf.keras:
model = tf.keras.models.Sequential([
tf.keras.layers.InputLayer(batch_input_shape=(1, 5)),
tf.keras.layers.Dense(10, activation='sigmoid'),
tf.keras.layers.Dense(2, activation='linear')
])
Остальная часть кода в обоих случаях одинакова, как в примере Github, связанном выше.
В наиболее посте я нашел именноПротивоположная проблема, что Keras был медленнее, чем tf.kerasПоэтому я также надеялся получить увеличение скорости или, по крайней мере, остаться прежним.
Так что я думаю, что, возможно, я совершил ошибку, но я ее не нахожу.
Редактировать:
Сделано еще несколько исследований с Tensorboard, чтобы посмотреть, как выглядит модель.Модели выглядят очень похоже на большинство вещей.Но у модели tf.keras есть некоторые накладные расходы.Я не знаю, нормально ли это для модели tf.keras или, если исходить из моего способа, я строю модель.
модель tf.keras модель keras