Tensorflow2.0使用keras構建網絡。這種打包的基礎/高級api使用起來無疑更方便,但妳不妨自己實現壹些功能,在學習過程中加深理解。
以最簡單的全連接層和訓練過程的實現為例,
只需建立壹個網絡:
我們可以用類來定制Dense的功能,這也很簡單。
這樣就可以直接用自定義類DenseLayer替換keras的全連接層。
對於分類的損失函數,也是簡單粗暴的。對於標簽格式是one_hot,TF . nn . soft max _ cross _ entropy _ with _ logistics,
相反,本文自然使用TF . nn . sparse _ soft max _ cross _ entropy _ with _ logistics。
關於tf2.0,好像是tf。GradientTape()保留了下來,這部分自定義漸變計算可謂是壹章,以後再探討。
所以把單步訓練和梯度更新過程寫在壹起。
因為softmax包含在loss_func的計算中,所以在最後壹層沒有添加激活函數。
參考上壹篇文章,但也有壹些不同,其中沒有使用測試集,只關註訓練時損失的變化過程。
最後,妳可以看到損失下降得非常快。
結束。