【问题标题】:How to obtain weight matrices during training on Scikit如何在 Scikit 训练期间获得权重矩阵
【发布时间】:2020-05-11 06:28:00
【问题描述】:

我正在使用 Scikit 训练 MLPClassifier。假设我想在 MNIST 上用 100 个神经元的隐藏层训练 5 个 epoch。

如果我执行“mlp = MLPClassifier(...)”,然后执行“mlp.fit(train,test)”,那么我可以使用“mlp.coefs_”获得训练后的权重。

但我想要的是训练期间每个 epoch 之后获得的权重矩阵序列。因此,如果我训练 5 个 epoch,我会想要一个大小为 5 的列表,其中包含权重矩阵的历史记录。

这可以用 scikit 实现吗?还是我应该使用 Keras?

【问题讨论】:

    标签: python machine-learning scikit-learn neural-network


    【解决方案1】:

    一种选择是用你想要做的一小部分时期来训练你的模型。

    存储参数。

    然后继续使用 warm_start = True 参数训练您的模型。你会一直这样做,直到你得到你想要的 epoch 总数。

    在 sci-kit learns implementation 的上下文中,max_iter 参数将是 epochs。此链接中对此进行了引用。
    https://stats.stackexchange.com/questions/284491/are-the-epochs-equivalent-to-the-iterations

    【讨论】:

    • 你也可以在 Keras 中做到这一点吗?
    • 我对 Keras 不太熟悉。但是,它似乎具有某种callback 功能,这可能是您正在寻找的。从文档中直接引用。 回调是在训练过程的给定阶段应用的一组函数。您可以在训练期间使用回调来查看模型的内部状态和统计信息。
    猜你喜欢
    • 2014-04-08
    • 2017-07-25
    • 2020-04-16
    • 2018-09-24
    • 1970-01-01
    • 2017-10-07
    • 2019-03-10
    • 1970-01-01
    • 2021-03-28
    相关资源
    最近更新 更多