keras中主要模型是Sqquential模型,Sequential是一系列网络层按顺序构成的栈。
Sequential模型如下:
from keras.models import Sequential
model = Sequential()
将一些网络层通过.add()堆叠起来,构成一个模型:
from keras.layers import Dense,Activation
model.add(Dense(units=64,input_dim=100))
model.add(Activation("relu"))
model.add(Dense(unitx=10))
model.add(Activation("softmax"))
完成模型搭建后,需要使用.compile()方法来编译模型:
model.compile(loss='categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
编译时必须指明损失函数和优化器,如果你需要的化,可以自己指定损失函数。
from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
完成编译模型后,我们在训练数据上按batch进行一定次数的迭代来训练网络
model.fit(x_train,y_train,epochs=5,batch_size=32)
也可以手动将一个个batch数据送入网络中训练,这时候需要使用:
model.train_on_batch(x_batch,y_batch)
随后,我们使用一行代码对我们的模型进行评估,看模型是否满足我们的要求:
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)
或者使用新模型,对数据进行预测:
calsses = model.predict(x_test,batch_size=128)