keras 中的参数属性解释(持续更新)

keras使用过程中会有很多参数及属性,现将日常会用到的做下详解,自己做记录的同时,帮忙其他朋友更好的理解。

一、keras 中的 verbose 详解

fit 中的 verbose

verbose:日志显示
verbose = 0 为不在标准输出流输出日志信息
verbose = 1 为输出进度条记录
verbose = 2 为每个epoch输出一行记录
注意: 默认为 1

evaluate 中的 verbose
verbose:日志显示
verbose = 0 为不在标准输出流输出日志信息
verbose = 1 为输出进度条记录
注意: 只能取 0 和 1;默认为 1


verbose = 1

注意

verbose = 0,在控制台没有任何输出


二、keras validation_split
训练集,验证集和测试集:

其实一开始我也没搞清楚这个问题,拿着测试集当验证集用,其实验证集是从训练集中抽取出来用于调参的,
而测试集是和训练集无交集的,用于测试所选参数用于该模型的效果的,这个还是不要弄错了。。。
在Keras中,验证集的划分只要在fit函数里设置validation_split的值就好了,这个对应了取训练集中百分之几的数据出来当做验证集。
但由于shuffle是在validation _split之后执行的,所以如果一开始训练集没有shuffle的话,有可能使验证集全是负样本。
测试集的使用只要在evaluate函数里设置就好了。

print model.evaluate(test_set_x,test_set_y ,batch_size=256)
这里注意evaluate和fit函数的默认batch_size都是32,自己记得修改。

三、当监测值不再改善时中止训练
keras.callbacks.EarlyStopping(
    monitor='val_loss',
    patience=0,
    verbose=0,
    mode='auto'
)

1. monitor:需要监视的值
2. patience:当early stop被激活(如发现loss相比上一个epoch训练没有下降),则经过patience个epoch后停止训练。
3. verbose:信息展示模式
4. mode:‘auto’,‘min’,‘max’之一,在min模式下,如果检测值停止下降则中止训练。在max模式下,当检测值不再上升则停止训练。


四、LSTM return_sequences
Kears LSTM API 中给出的两个参数描述

    return_sequences:默认 False。在输出序列中,返回单个 hidden state值还是返回全部time step 的 hidden state值。 False 返回单个, true 返回全部。
    return_state:默认 False。是否返回除输出之外的最后一个状态。

 

你可能感兴趣的:(深度学习)