原地址:http://blog.csdn.net/niuwei22007/article/details/49207187可以查看更多文章
介绍完了优化器和目标函数,那么剩下的就是训练模型了。这一小节,我们来看一下Keras的Models是如何使用的。Keras可以建立两种模型,一种是线性叠加的,层与层之间是全连接的方式,一个输入,一个输出;另外一种是图型的,输入与输出数量任意,并且可以指定层与层之间的部分连接方式。
一、Sequential(线性叠加模型)方法及属性介绍
model = keras.models.Sequential()
线性叠加模型就是把每一层按照次序叠加起来,每层之间采用全连接方式。下面看一下对象model都有哪些方法。
add(layer):往model里边增加一层
compile(optimizer, loss, class_model=”categorical”):
参数:
- optimizer:指定模型训练的优化器;
- loss:目标函数;
- class_mode: ”categorical”和”binary”中的一个,只是用来计算分类的精确度或using the predict_classes method
- theano_mode: Atheano.compile.mode.Mode instance controllingspecifying compilation options
fit(X, y, batch_size=128, nb_epoch=100, verbose=1, validation_split=0,validation_data=None,shuffle=True,show_accuracy=False,callbacks=[],class_weight=Noe, sample_weight=None):用于训练一个固定迭代次数的模型
返回:记录字典,包括每一次迭代的训练误差率和验证误差率;
参数:
- X:训练数据
- y : 标签
- batch_size : 每次训练和梯度更新块的大小。
- nb_epoch: 迭代次数。
- verbose : 进度表示方式。0表示不显示数据,1表示显示进度条,2表示用只显示一个数据。
- callbacks : 回调函数列表。就是函数执行完后自动调用的函数列表。
- validation_split : 验证数据的使用比例。
- validation_data : 被用来作为验证数据的(X, y)元组。会代替validation_split所划分的验证数据。
- shuffle : 类型为boolean或 str(‘batch’)。是否对每一次迭代的样本进行shuffle操作(可以参见博文Theano学习笔记01--Dimshuffle()函数)。’batch’是一个用于处理HDF5(keras用于存储权值的数据格式)数据的特殊选项。
- show_accuracy:每次迭代是否显示分类准确度。
- class_weigh