Keras中文文档地址:https://keras-cn.readthedocs.io/en/latest/getting_started/sequential_model/
1.序贯(Sequential)模型
序贯模型是多个网络层的线性堆叠
方式1:将一个layer的list传入Sequential模型中
model = Sequential([
Dense(32, units=784),
Activation('relu'),
Dense(10),
Activation('softmax')
])
方式2:通过model.add() 进行添加
model = Sequential()
model.add(Dense(32, units=784))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))
2.指定输入的shape
Sequential
的第一层需要接受input_shape参数,后面的各层则可以自动的推导出中间数据的shape
特殊的,如2D Dense可以指定维度input_dim,3D Dense可以指定input_dim和input_length
同样我们也可以指定固定的batch_size大小
model = Sequential()
model.add(Dense(batch_size=32,input_shape=(100,100)))
model = Sequential()
model.add(Dense(batch_size=32,input_dim=100))
3.编译
通过compile()进行编译
参数有
优化器optimizer,如 rmsprop,adagrad
损失函数loss,如 categorical_crossentropy,mse
指标列表metrics,一般为metrics=['accuracy'],或者一个指标函数
def mean_pred(y_true, y_pred):
return K.mean(y_pred)
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy', mean_pred])
4.训练
编译完成后,传入X,Y,指定轮数和batch_size大小,使用fit()进行训练
model.fit(data, labels, epochs=10, batch_size=32)