tensorflow - Tensorflow 中的回调

在Keras中我们可以简单的添加回调,如下所示:

self.model.fit(X_train,y_train,callbacks=[Custom_callback])

回调在doc中定义,但我找不到任何使用它们的例子。谁能告诉我如何将自定义回调添加到 TensorFlow 中?

最佳答案

这是我喜欢使用而不是 tensorboard 的损失记录回调示例。请注意,它需要后处理,我实际上更喜欢这样,因此我可以计算 cross-validation 的平均验证损失。 :

class lossesLogger(tf.keras.callbacks.Callback):
    def __init__(self, fileName):
        self.fileName = fileName
        self.json_log = open(
            self.fileName +'.json',
            mode='w+',
            buffering=1
        )     
    def on_epoch_end(self, epoch, logs=None):
        self.json_log.write(
            json.dumps(
                'epoch {}: '.format(epoch) +
                str(logs)
            ) +
            '\n'
        )        
    def on_train_end(self, logs=None):
        self.json_log.close()

要使用它,请将它添加到您的回调列表中,就像在这个示例中一样,我将它放在三个列表的末尾:

callbacks = [ #allows analyzing output of replicates
        EarlyStopping(
            patience=epochsWithoutValidationLossDecrease,
            verbose=1
        ),
        ModelCheckpoint(
            os.path.join(
                os.getcwd(),
                'Latest_saved_model_{}.h5'.format(uniqueID)
            ), 
            verbose=1,
            save_best_only=True,
            save_weights_only=False
        ),
        lossesLogger(
            os.path.join(
                os.getcwd(),
                ('val_log_per_epoch_' + str(uniqueID))
            )
        )
    ]

https://stackoverflow.com/questions/53324641/

相关文章:

polygon - 使用多边形形状创建和监控地理围栏

c# - 如何在对数据库进行外部更改后更新/同步 DbContext

angular - AWS Amplify 和 Angular 7 的 AOT 运行时错误 - AP

oracle - 在 Oracle SQL Insert 语句中返回自动增量值?

python - 尝试使用 Cloud TPU 恢复更新的 BERT 模型检查点时出现 Infeed

c# - 如何自定义渲染 UWP 湿墨

lua - 如何在 luacheck 中将警告设为错误?

python - PyAudio stream.is_active(),它是如何知道自己是否活跃的

laravel - 为什么 Vue.js 在 Laravel 5.6 中不显示任何内容?

reactjs - 当 url 具有参数时,未应用 React Nav Link activeSty