【问题标题】:How can i speed up my model training process using tensorflow and keras如何使用 tensorflow 和 keras 加快模型训练过程
【发布时间】:2020-07-18 00:26:20
【问题描述】:

我的批量大小 = 128 时期数 = 15

单个 epoch 需要 4 小时才能完成任务,因此完整的训练过程需要大量时间。就我而言,我需要提高模型训练过程的速度以保存我的体重值我该怎么做

# Training Process
results = model.fit_generator(generate_batch(orig_train, forg_train, batch_sz),
                              steps_per_epoch = num_train_samples//batch_sz,
                              epochs = 15,
                              validation_data = generate_batch(orig_val, forg_val, batch_sz),
                              validation_steps = num_val_samples//batch_sz,
                              callbacks = callbacks)

而我的回调数组定义如下,

callbacks = [
    EarlyStopping(patience=12, verbose=1),
    ReduceLROnPlateau(factor=0.1, patience=5, min_lr=0.000001, verbose=1),
    ModelCheckpoint('./Weights/model-weight-{epoch:03d}.h5', verbose=1, save_weights_only=True)
]

【问题讨论】:

    标签: python tensorflow keras model


    【解决方案1】:

    你可以做两件事:

    1. 开启 XLA。
    import tensorflow as tf
    
    tf.config.optimizer.set_jit(True)
    
    1. 开启混合精度。
    from tensorflow.keras.mixed_precision import experimental as mixed_precision
    policy = mixed_precision.Policy('mixed_float16')
    mixed_precision.set_policy(policy)
    

    【讨论】:

    • 谷歌colab继续处理时限12小时,有什么原因吗??
    • 资源有限,所以。
    • 在我的研究工作中,我必须在我的模型中完成 15 个 epoch 的训练过程,但我仍然只能训练 3 个 epoch,在第 4 个 epoch 之间它会自动关闭会话。所以我无法保存提供最佳验证损失的权重值
    • 我认为如果我可以训练 12 个 epoch(每个 epoch 至少需要 3.30 小时),我可以获得更准确的结果,但在 3rd epoch 之后我仍然无法训练
    • 保存模型,然后从最后一个 epoch 开始。
    猜你喜欢
    • 2019-01-20
    • 2018-01-30
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多