为什么亚当的get\u更新只执行一次?

2024-10-02 06:37:41 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么get_update()不是每个历元都执行?你知道吗

我的亚当:

    @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)

输出:

update
Epoch 1/2
Epoch 2/2

为什么不是

update
Epoch 1/2
update
Epoch 2/2

Tags: selfsupportgetmodeldeflegacyupdatesteps
1条回答
网友
1楼 · 发布于 2024-10-02 06:37:41

人们忘记的一个重要细节是,TensorFlow的计算模型与普通的计算模型略有不同。在TensorFlow中,您构建一个操作图,然后使用会话对其进行求值,以提供一组实际输入以生成输出。你知道吗

这与普通代码不同,普通代码会反复调用函数。你知道吗

在任何优化器的get_updates的情况下,其思想是get_updates构建运行优化器的一个步骤的操作,然后使用会话对优化器进行迭代计算,因此get_updates只运行一次来构建计算图。你知道吗

相关问题 更多 >

    热门问题