• Keras函数——keras.callbacks.ModelCheckpoint()及模型的训练


    keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1)

      在每个epoch后保存模型到filepath。

      参数:

    •  filepath: 保存模型的路径。
    •  monitor: 被监测的数据。val_acc或val_loss。
    •  verbose: 详细信息模式,0 或者1。0为不打印输出信息,1为打印。
    •  save_best_only: 如果save_best_only=True,将只保存在验证集上性能最好的模型mode: {auto, min, max} 的其中之一。 如果save_best_only=True,那么是否覆盖保存文件的决定就取决于被监测数据的最大或者最小值。 对于val_acc,模式就会是max;而对于      val_loss,模式就需要是min。在auto模式中,方式会自动从被监测的数据的名字中判断出来。
    •  save_weights_only: 如果 True,那么只有模型的权重会被保存 (model.save_weights(filepath)), 否则的话,整个模型会被保存 (model.save(filepath))。
    •  period: 每个检查点之间的间隔(训练轮数)。

      训练过程:

      1、从keras.callbacks导入ModelCheckpoint类

    from keras.callbacks import ModelCheckpoint

      2、在训练阶段的model.compile之后加入下列代码实现每一次epoch(period=1)保存最好的参数

    checkpoint = keras.callbacks.ModelCheckpoint(filepath,
        monitor='val_loss', save_weights_only=True,verbose=1,save_best_only=True, period=1)

      3、在训练阶段的model.fit之前加载先前保存的参数

    if os.path.exists(filepath):
        model.load_weights(filepath)
        # 若成功加载前面保存的参数,输出下列信息
        print("checkpoint_loaded")

      4、在model.fit添加callbacks=[checkpoint]实现回调

    model.fit_generator(data_generator_wrap(lines[:num_train], batch_size, input_shape, anchors, num_classes),
            steps_per_epoch=max(1, num_train//batch_size),
            validation_data=data_generator_wrap(lines[num_train:], batch_size, input_shape, anchors, num_classes),
            validation_steps=max(1, num_val//batch_size),
            epochs=,
            initial_epoch=0,
            callbacks=[checkpoint])
  • 相关阅读:
    LaTeX下的表格处理
    accumulate函数用法的坑
    将博客搬至CSDN
    linux; 文件名乱码;问价名出现问号
    vim打开多窗口、多文件之间的切换
    关于ssh-server
    更改Ubuntu gcc、g++默认编译器版本
    Elasticsearch nest实现类似Contains和Like功能
    Redis大幅性能提升之Batch批量读写
    Ext.NET 4.1 系统框架的搭建(后台) 附源码
  • 原文地址:https://www.cnblogs.com/Johnny-z6951/p/11272406.html
Copyright © 2020-2023  润新知