0、总结
- 顺序模型建立过程如图所示:
1、Sequentual 顺序模型
- 顺序模型是多个网络层的线形添加,建立顺序模型的方式有两种:
- 1、将网络层的实例以列表的形式传递给Sequential构造器,用来创造一个顺序模型。
- 2、先建立一个模型,然后使用add()方法将各个网络层依次线形添加进入模型。
'''方法1'''
from keras import Sequential
from keras.layers import Dense,Activation
model = Sequential([
Dense(32, input_shape=(784,),
Activation('relu'),
Dense(10),
Activation('sofrmax'),
])
'''方法2'''
model = Sequential()
model.add(Dense(32,input_shape=(784,)),
model.add(Activation("relu")),
model.add(Dense(10)),
model.add(Activation("softmax"))
)
2、指定输入数据尺寸
- 模型需要知道输入数据的尺寸,模型中的第一层需要指定大小,后面的不需要指定,模型会自动的计算出。
- 1、通过 input_shape传递给第一层,它是一个元组
- 2、某些2D层,可以通过指定 input_dim 指定输入尺寸,某些3D可以指定input_dim和input_length参数。
- 3、使用参数batch_size指定batch的大小。
'''下面的两端代码等价'''
model = Sequential()
model.add(Dense(32, input_shape=(784,)))
model=Sequential()
model.add(Dense(32, input_dim=784))
3、模型编译
- 在模型训练之前需要对模型进行配置,主要有下面三项:
- 1、优化器optimizer:可以是现有优化器的字符串名(如:rmsprop,adagrad),也可以是Optimizer类的实例
- 2、损失函数loss:模型试图最小化的目标函数
- 3、评估标准metrics:既可以是已有标准的字符串标志,也可以自己定义
'''已有'''
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics='accuracy')
'''自定义评估标准'''
import keras.backend ad K
def mean_pred(y_true, y_pred):
return K.mean(y_pred)
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics='accuracy',mean_pred)
4、模型训练
- keras的输入数据是Numpy 数组,可以使用fit() 函数进行训练
model.fit(x_train, y_train, epochs=10, batch_size=32)
5、模型预测和评估
- 可以使用evaluate()函数进行评估
- 使用predict()函数进行预测某个数据或者某些数据的结果
model.evaluate(x_test, y_test, batch_size=32)
model.predict(x_test,batch_size=32)