Neural network 如何在Chainer框架中监视验证集上的错误?

Neural network 如何在Chainer框架中监视验证集上的错误?,neural-network,chainer,Neural Network,Chainer,我是Chainer的新手,我已经写了一个代码来训练一个简单的前馈神经网络。我有一个验证集和一个训练集,希望在每500次迭代中对验证集进行测试,如果结果更好,我希望保存我的网络权重。谁能告诉我怎么做 这是我的密码: 优化器=优化器.Adam() optimizer.setup(模型) 更新程序=培训。标准更新程序(培训程序、优化器、设备=0) trainer=training.trainer(更新程序,(10000,'epoch'),out='result') 培训师扩展(扩展评估员(验证、模型、

我是Chainer的新手,我已经写了一个代码来训练一个简单的前馈神经网络。我有一个验证集和一个训练集,希望在每500次迭代中对验证集进行测试,如果结果更好,我希望保存我的网络权重。谁能告诉我怎么做

这是我的密码:

优化器=优化器.Adam() optimizer.setup(模型) 更新程序=培训。标准更新程序(培训程序、优化器、设备=0) trainer=training.trainer(更新程序,(10000,'epoch'),out='result') 培训师扩展(扩展评估员(验证、模型、设备=0)) trainer.extend(extensions.LogReport()) trainer.extend(extensions.PrintReport(['epoch'、'main/loss'、'validation/main/loss'、'passed_time'])) trainer.run()
  • 验证集出错
  • 它由
    评估器
    报告,并由
    打印报告
    打印。因此,它应该与上面的代码一起显示。要控制这些扩展的执行频率,可以在
    trainer.extend
    函数中指定
    trigger
    关键字参数。 例如,下面的代码指定每500次迭代打印一次

    trainer.extend(extensions.PrintReport(['epoch'、'main/loss'、'validation/main/loss'、'appead_time']),触发器=(500,'iteration'))

    您还可以将触发器指定为
    计算器

  • 保存网络权重
  • 您可以使用快照对象扩展

    它将作为默认值在每个历元调用

    如果您想在损失改善时调用它,我认为您可以使用
    MinValueTrigger
    设置
    trigger