python - 为什么亚当的 get_update 只执行一次?
问题描述
为什么 get_update() 不是每个时期都执行?
我的亚当:</p>
@interfaces.legacy_get_updates_support
def get_updates(self, loss, params):
print("update!")
#Other code is the same
这是编译和适合的
model.compile(optimizer=Adam(lr=2e-5),loss='binary_crossentropy',metrics=['acc'])
his = model.fit_generator(train_genertor,steps_per_epoch=100,epochs=2,validation_data=val_genertor,validation_steps=50)
出:</p>
update
Epoch 1/2
Epoch 2/2
为什么不是
update
Epoch 1/2
update
Epoch 2/2
解决方案
人们忘记的一个重要细节是 TensorFlow 的计算模型与常见的计算模型略有不同。在 TensorFlow 中,您构建一个操作图,然后使用会话对其进行评估,以提供一组实际输入来产生输出。
这与普通代码不同,在普通代码中你会一遍又一遍地调用函数。
对于get_updates
任何优化器,其想法是get_updates
构建运行优化器一步的操作,然后使用会话迭代评估优化器,因此get_updates
只运行一次来构建计算图。
推荐阅读
- angularjs - 从正则表达式 angularjs 中删除“/”
- jquery - jquery - 使用ajax后查找id
- c# - 我如何在字符串中使用代码并且不让它执行?
- javascript - 如何使用 selenium 和 python 单击多个按钮或链接深度?
- parameters - Azure 数据工厂使用文件名 DataSink 中的查找结果
- javascript - 如何抓取国际足联网站的 javascript 表格
- javascript - 在已添加的列表中未收到回复
- c++ - uint8_t 转换 (cpp) 上的分段错误
- apache-kafka - 从 Kafka 主题中删除所有消息
- html - Xamarin Forms 从 WebView 获取 html 内容