一 序貫?zāi)P?Sequential)
1 該模型是多個網(wǎng)絡(luò)層的線性堆疊
2 可以通過add()的方法將一個個的layer加入模型中
model = Sequential()
model.add(Dense(32, input_shape=(784,))) #添加全連接層
model.add(Activation('relu')) #添加一層
3 輸入數(shù)據(jù)的shape
模型需要知道輸入數(shù)據(jù)的shape善镰,因此漱病,序貫?zāi)P偷牡谝粚咏邮芤粋€關(guān)于輸入數(shù)據(jù)shape的參數(shù)。后面的層可以自動推導(dǎo)數(shù)據(jù)的shape灸异。
以下方式可以指定shape:
input_shape
input_dim
input_length
model= Sequential()
model.add(Dense(32, input_dim=784)) #指定輸入的batch大小栅受,以及樣本的數(shù)目
model.add(Dense(32, input_shape=(784,)) #
4 編譯參數(shù)
優(yōu)化器 optimizer :可以指定為預(yù)定義的優(yōu)化器名荆陆,如rmsprop纲仍、adagrad
損失函數(shù) loss:即模型試圖最小化的目標(biāo)函數(shù)果正。可以使用預(yù)定義的損失函數(shù)名忆谓。
指標(biāo)列表 metrics : 對于分類問題裆装,我們一般設(shè)置為metrics=['accuracy']
2018.6.13學(xué)習(xí)到序貫?zāi)P?/p>
5 保存模型
model.save(filepath) #保存模型,將keras和權(quán)重保存在一個hdf5文件中倡缠,該文件包含:
#模型的結(jié)構(gòu)
#模型的權(quán)重
#訓(xùn)練配置哨免,包括損失函數(shù),優(yōu)化器
#優(yōu)化器的狀態(tài)昙沦,以便從上次訓(xùn)練終中斷的地方開始
model.load_model(filepath) #加載模型重新實例化
json_string=model.to_json() #保存模型結(jié)構(gòu)琢唾,而不包含權(quán)重
yaml_string=model.to_yaml()
model=model_from_json(json_string)
model=model_from_yaml(yaml_string)
model.save_weights('my_model_weights.h5') #保存模型的權(quán)重,利用HDF5保存
model.load_weights('my_model_weights.h5')#初始化一個完全相同的模型