1. keras.callbacks.ModelCheckpoint
keras.callbacks.ModelCheckpoint(filepath,monitor='val_loss',verbose=0,save_best_only=False, save_weights_only=False, mode='auto', period=1)
filename:字符串,保存模型的路径
monitor:需要监视的值
verbose:信息展示模式,0或1(checkpoint的保存信息,类似Epoch 00001: saving model to ...)
save_best_only:当设置为True时,监测值有改进时才会保存当前的模型( the latest best model according to the quantity monitored will not be overwritten)
mode:‘auto’,‘min’,‘max’之一,在save_best_only=True时决定性能最佳模型的评判准则,例如,当监测值为val_acc时,模式应为max,当监测值为val_loss时,模式应为min。在auto模式下,评价准则由被监测值的名字自动推断。
save_weights_only:若设置为True,则只保存模型权重,否则将保存整个模型(包括模型结构,配置信息等)
period:CheckPoint之间的间隔的epoch数
参考原文:https://blog.csdn.net/breeze5428/article/details/80875323
2. keras 的 fit_generator
语法:fit_generator(self, generator, steps_per_epoch=None, epochs=1, verbose=1, callbacks=None, validation_data=None, validation_steps=None, class_weight=None, max_queue_size=10, workers=1, use_multiprocessing=False, shuffle=True, initial_epoch=0)
函数目的:节约内存,防止一次性读取所有文件内存崩溃
2.1) generator:生成器函数,生成器的输出应该为:
一个形如(inputs,targets)的tuple; 一个形如(inputs, targets,sample_weight)的tuple。所有的返回值都应该包含相同数目的样本。生成器将无限在数据集上循环。每个epoch以经过模型的样本数达到samples_per_epoch时,记一个epoch结束
2.2) steps_per_epoch:整数,当生成器返回steps_per_epoch次数据时计一个epoch结束,执行下一个epoch
2.3) epochs:整数,数据迭代的轮数
2.4)verbose:日志显示,0为不在标准输出流输出日志信息,1为输出进度条记录,2为每个epoch输出一行记录
2.5) validation_data:具有以下三种形式之一
生成验证集的生成器
一个形如(inputs,targets)的tuple
一个形如(inputs,targets,sample_weights)的tuple
2.6) validation_steps: 当validation_data为生成器时,本参数指定验证集的生成器返回次数
2.7) class_weight:规定类别权重的字典,将类别映射为权重,常用于处理样本不均衡问题。
2.8)sample_weight:权值的numpy array,用于在训练时调整损失函数(仅用于训练)。可以传递一个1D的与样本等长的向量用于对样本进行1对1的加权,或者在面对时序数据时,传递一个的形式为(samples,sequence_length)的矩阵来为每个时间步上的样本赋不同的权。这种情况下请确定在编译模型时添加了sample_weight_mode='temporal'。
2.9) workers:最大进程数在使用基于进程的线程时,最多需要启动的进程数量
2.10)use_multiprocessing:布尔值。当为True时,使用基于基于过程的线程。
2.11) max_q_size:生成器队列的最大容量
2.12) initial_epoch: 从该参数指定的epoch开始训练,在继续之前的训练时有用