比序貫模型要復雜,但是效果很好,可以同時/分階段輸入變量,分階段輸出想要的模型。
所以說,只要你的模型不是類似VGG一樣
1,應用函數式模型的基本步驟
1,model.layers()添加層
2,model.compile()模型訓練的BP模式設置
3,model.fit()模型訓練參數設置+訓練
4,evaluate()模型評估
5,predict()模型預測
2,常用Model屬性
model.layers:組成模型圖的各個層
model.inputs:模型的輸入張量列表
model.outputs:模型的輸出張量列表
1model=Model(inputs=,outputs=)
3,指定輸入數據的shape
1inputs=Input(shape=(20,))
4,編譯,訓練,評估,預測等步驟與序貫式模型相同(這里不再贅述)
1compile(self,optimizer,loss,metrics=None,loss_weights=None,sample_weight_mode=None)
本函數按batch計算在某些輸入數據上模型的誤差,其參數有:
x:輸入數據,與fit一樣,是numpyarray或者numpyarray的list
y:標簽,numpyarray
batch_size:整數,含義同fit的同名函數
verbose:含義與fit的同名函數,但是只能取0或者1
sample_weight:numpyarray,含義同fit的同名函數
本函數編譯模型以供訓練,參數有:
1evaluate(self,x,y,batch_size=32,verbose=1,sample_weight=None)
序貫模型和函數模型共同的API
model.summary():打印出模型的概況,它實際調用的是keras.utils.print_summary
model.get_config():返回包含模型配置信息的Python字典,模型也可以從config中重構回去。
config=model.get_config()
model=Model.from_config(config)
model=Sequential.from_config(config)
上面是分別對序貫模型和函數式模型載入config
model.get_layer():依據層名或下標獲得層對象
model.get_weights():返回模型權重張量的列表,類型為numpy.array
model.set_weights():從numpyarray里載入給模型,要求數組與model.get_weights()一樣
model.to_json():返回代表模型的JSON字符串,僅僅包含網絡結構,不包含權重,可以從JSON字符串中重構模型
以上內容為大家介紹了python的Keras函數式模型,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。