【问题标题】:How to predict, how much epochs model need?如何预测,模型需要多少 epochs?
【发布时间】:2021-04-02 01:28:50
【问题描述】:

我正在尝试使用自动编码器为图像着色,我有以下模型:

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 256, 256, 32)      320       
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 128, 128, 64)      18496     
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 128, 128, 64)      36928     
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 64, 64, 128)       73856     
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 64, 64, 128)       147584    
_________________________________________________________________
conv2d_5 (Conv2D)            (None, 32, 32, 256)       295168    
_________________________________________________________________
conv2d_6 (Conv2D)            (None, 32, 32, 256)       590080    
_________________________________________________________________
conv2d_7 (Conv2D)            (None, 16, 16, 512)       1180160   
_________________________________________________________________
conv2d_8 (Conv2D)            (None, 16, 16, 512)       2359808   
_________________________________________________________________
conv2d_9 (Conv2D)            (None, 8, 8, 1024)        4719616   
_________________________________________________________________
conv2d_10 (Conv2D)           (None, 8, 8, 1024)        9438208   
_________________________________________________________________
conv2d_11 (Conv2D)           (None, 8, 8, 512)         4719104   
_________________________________________________________________
conv2d_transpose (Conv2DTran (None, 16, 16, 512)       2359808   
_________________________________________________________________
conv2d_12 (Conv2D)           (None, 16, 16, 256)       1179904   
_________________________________________________________________
conv2d_transpose_1 (Conv2DTr (None, 32, 32, 256)       590080    
_________________________________________________________________
conv2d_13 (Conv2D)           (None, 32, 32, 128)       295040    
_________________________________________________________________
conv2d_transpose_2 (Conv2DTr (None, 64, 64, 128)       147584    
_________________________________________________________________
conv2d_14 (Conv2D)           (None, 64, 64, 64)        73792     
_________________________________________________________________
conv2d_transpose_3 (Conv2DTr (None, 128, 128, 64)      36928     
_________________________________________________________________
conv2d_15 (Conv2D)           (None, 128, 128, 32)      18464     
_________________________________________________________________
conv2d_transpose_4 (Conv2DTr (None, 256, 256, 32)      9248      
_________________________________________________________________
conv2d_16 (Conv2D)           (None, 256, 256, 16)      4624      
_________________________________________________________________
conv2d_17 (Conv2D)           (None, 256, 256, 2)       290       
=================================================================
Total params: 28,295,090
Trainable params: 28,295,090
Non-trainable params: 0

我还准备了包含 80 000 张图像的数据集。 40 000 人和 40 000 自然人。

我的尝试:

100 个纪元:

120 个纪元:

160 个纪元:

210 个纪元:

300 个纪元:

我使用 LAB 颜色空间和 MAE 作为损失函数。

如何设置最合适的 epoch 数?

【问题讨论】:

    标签: python keras autoencoder


    【解决方案1】:

    对于需要多少个 epoch 没有确切的答案。重要的是模型不能过度拟合或数据拟合不足。您可以使用 L1 / L2 正则化器来避免记忆训练数据集。另一方面,当lossval_loss 没有发生显着变化时,您可以使用tf.keras.callbacks.EarlyStopping 来削减纪元。

    【讨论】:

    • 首先我有 earlyStopping=25 => 100 个时期,earlyStopping=40 => 210 个时期。我会尝试正则化器。
    • 你使用什么值来提前停止?我建议您阅读有关自动编码器的文章,其中人们提到了他们的模型的详细信息。许多事情都会改变您的结果,例如kernel initializationdataset qualityoptimizers.. 等。模型构建是一个研究课题,您应该体验不同的选项并找到定义您的模型或数据集的最佳 hyperparameters。跨度>
    • 我使用了 val_loss。
    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2023-03-14
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    相关资源
    最近更新 更多