模型创建
from keras.models import Sequential
from keras.layers import Dense, Activation
#序列模型 Sequential
model = Sequential()
model.add(Dense(32, input_shape = (784,)))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))
from keras.layers import Input
from keras.layers import Dense
#通用模型Model
nput = input(shape = (784, ))
x = Dense(64, activation='relu')(input)
x = Dense(64, activation='relu')(x)
y = Dense(10, activation='softmax')(x)
model = Model(input=input, output=y)
model.summary()
编译模型
model.compile(loss='categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
训练以及评估
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
model.fit(x_train, y_train, epochs=5, batch_size=32)
score = model.evaluate(x_test, y_test, batch_size=128)
print("loss:",score[0])
print("accu:",score[1])
模型预测
model.predict_classes(x_test, batch_size=128)
模型的保存与读取
保存模型及其权重
# 保存模型
model_json = model.to_json()
json_file = open("model.json", "w")
json_file.write(model_json)
json_file.close()
# 保存权重
model.save_weights("model.h5")
读取模型及其权重
from keras.models import model_from_json
# 读取模型
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# 读取权重
loaded_model.load_weights("model.h5")
# 使用之前记得要编译一下
model.compile(optimizer='rmsprop',
loss={'main_output': 'binary_crossentropy', 'aux_output': 'binary_crossentropy'},
loss_weights={'main_output': 1., 'aux_output': 0.2})
参考代码: