【问题标题】:How should we compare two CNNs training time when we train them several time?当我们多次训练它们时,我们应该如何比较两个 CNN 的训练时间?
【发布时间】:2021-05-09 21:04:15
【问题描述】:

我想在不同的数据集上训练一个 cnn,并比较预测准确度和 cnn 训练时间。对于每个数据集,我需要对 CNN 进行多次训练,并选择性能最好的那个。我的第一个问题是为什么我们需要训练几次 CNN ?一次训练后的模型是否保持之前训练的权重或任何信息,或者每次训练都是独立的?

我的第二个问题是,当我们比较 CNN 之间的训练时间时,我们是否也应该比较获得最佳模型之前所需的训练迭代次数?

下面是我训练 100 次模型 (cnn) 并打印最佳 MSE 的示例:

for i in range(100):
   history = model.fit(training_data,label_data,
                    validation_split=0.2,
                    epochs= nb_epoch, verbose = False,
                    callbacks=callbacks)            
   pred= model.predict(test_data)

   if(min_MSE > mean_squared_error(label_test, pred)):
      model.save('XXX.h5')
      min_MSE = mean_squared_error(label_test, pred)
    
print("The best: ",min_MSE)

提前感谢您的任何澄清!

【问题讨论】:

    标签: conv-neural-network


    【解决方案1】:

    对于问题 1

    François Chollet(Keras 的作者)提到 here,多次调用 model.fit 将逐步训练模型。

    您可能还想检查一下:What is the trade-off between batch size and number of iterations to train a neural network?

    对于问题 2:

    我认为每次随机初始化权重时不应该考虑迭代次数。

    【讨论】:

    • 感谢您的回答@Uchiha012!但是我不明白问题2的答案。如果多次调用model.fit增量训练模型,如何在每次迭代时随机初始化权重?
    猜你喜欢
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 2017-11-09
    • 2021-06-21
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多