如何在训练过程中显示由分割模型得到的预测图像?

2024-05-14 20:30:29 发布

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

我正在通过UNET模型使用城市景观图像训练分割模型。输入为256256图像,输出为10242048图像。所以,我想在训练期间每隔20个时代显示预测的1024*2048图像。我在实现中使用了keras

unet.compile(optimizer='adam', loss=masked_loss_function, metrics=[masked_accuracy])
mc = ModelCheckpoint(mode='min', 
                     filepath='cityscape_unet.h5', 
                     monitor='val_loss', 
                     save_best_only='True', 
                     save_weights_only='True', 
                     verbose=1)
callbacks = [mc]
history=unet.fit(train_gen, steps_per_epoch=steps, epochs=70, 
         validation_data=val_gen, callbacks=callbacks)```  

Tags: 模型图像trueonlyunetsavevalmc
1条回答
网友
1楼 · 发布于 2024-05-14 20:30:29

这可以使用回调轻松实现。从tf.keras.callbacks.Callback继承时,可以重写on_epoch_end方法,可以在历元结束后更改该方法以显示绘图。该方法采用两个参数-epochlogs^调用{}时,当前历元号从0开始。因此,您可以很容易地添加一个条件。下面是一些样板代码

class CustomCallback(tf.keras.callbacks.Callback):
    def __init__(self):
        super(CustomCallback, self).__init__()
    
    def on_epoch_end(self, epoch, logs=None):
        if epoch % 20 == 0:
            # Do something here
            pass

然后,您可以在培训时将此回调传递到回调列表中

相关问题 更多 >

    热门问题