一、自定義層和網(wǎng)絡(luò)
1.自定義層
①必須繼承自layers.layer
②必須實(shí)現(xiàn)兩個方法,__init__和call
這個層,實(shí)現(xiàn)的就是創(chuàng)建參數(shù),以及一層的前向傳播。
添加參數(shù)使用self.add_weight,直接調(diào)用即可,因?yàn)橐呀?jīng)在母類中實(shí)現(xiàn)。
在call方法中,實(shí)現(xiàn)前向傳播并返回結(jié)果即可。
2.自定義網(wǎng)絡(luò)
①必須繼承自keras.Model
②必須實(shí)現(xiàn)兩個方法,__init__和call
這個網(wǎng)絡(luò),就可以使用我們定義好的MyDense層,來進(jìn)行堆疊。
在init方法中設(shè)置好每一層的連接方式,以及維度。
在call方法中,就要實(shí)現(xiàn)前向傳播,可以在這里對網(wǎng)絡(luò)結(jié)構(gòu)前向傳播進(jìn)行實(shí)現(xiàn)。如果在層中沒有添加activation的話,在這里需要添加relu等激活函數(shù)。
二、模型的保存和加載
1.保存參數(shù)
通過save_weights方法可以保存參數(shù),提供路徑即可,加載的時候,先創(chuàng)建好和之前的網(wǎng)絡(luò)結(jié)構(gòu)一模一樣的網(wǎng)絡(luò)結(jié)構(gòu),導(dǎo)入?yún)?shù)即可。
2.保存整個模型
通過model.save(),保存整個模型,包括結(jié)構(gòu),層的名字,參數(shù),維度等等所有信息。
恢復(fù)的時候不需要再創(chuàng)建網(wǎng)絡(luò)。直接通過tf.keras.models.load_model讀取即可。
以上就是python人工智能TensorFlow自定義層及模型保存的詳細(xì)內(nèi)容,更多關(guān)于TensorFlow自定義層及模型保存的資料請關(guān)注服務(wù)器之家其它相關(guān)文章!
原文鏈接:https://blog.csdn.net/Swayzzu/article/details/121254124