![](/img/trans.png)
[英]Monte Carlo Dropout implemented as subclass of tf.keras.Model
[英]Project organization with Tensorflow.keras. Should one subclass tf.keras.Model?
我正在使用 Tensorflow 1.14 和tf.keras
API 來構建多個(> 10)不同的神經網絡。 (我也對使用 Tensorflow 2 回答這個問題感興趣)。 我想知道我應該如何組織我的項目。
我使用tf.keras.estimator.model_to_estimator
和 Tensorboard 將 keras 模型轉換為估計器以進行可視化。 我有時也使用model.summary()
。 我的每個模型都有一些(> 20)超參數,並將三種類型的輸入數據中的一種作為輸入。 我有時會使用超參數優化,因此我經常手動刪除模型並在嘗試下一組超參數之前使用tf.keras.backend.clear_session()
。
目前我正在使用將超參數作為 arguments 並返回各自編譯的 keras model 的函數以轉換為估計器。 我使用三種不同的“Main_Datatype.py”腳本來訓練三種不同輸入數據類型的模型。 所有數據都是從 .tfrecord 文件加載的,並且每種數據類型都有一個輸入 function,所有估計器都使用該輸入,以該類型的數據作為輸入。 我在主腳本中的模型(即返回模型的函數)之間切換。 我還有一些構建塊,它們是多個 model 的一部分,為此我使用幫助函數返回它們,使用 Keras 功能 API 拼湊最終結果。
不同模型的輕微不兼容性開始讓我感到困惑,我決定使用類來組織項目。 I'm planing to make a class for each model that keeps track of hyperparameters and correct naming of each model and its model directory. 但是,我想知道在 Tensorflow 中是否有既定或推薦的方法來執行此操作。
問:我應該tf.keras.Model
而不是使用函數來構建模型或封裝它們的 python 類嗎? 子類化 keras.Model 會破壞(或需要大量工作才能啟用)我與 keras 估計器和張量板一起使用的任何功能嗎? 我已經看到人們在使用自定義 Model 類時遇到了很多問題,我有點不願意投入工作,只是發現它對我不起作用。 您對如何更好地組織我的項目有其他建議嗎?
非常感謝您提前。
僅在絕對需要時才進行子類化。 我個人更喜歡遵循以下實施順序。 如果您正在設計的 model 的復雜性,使用前兩個選項無法實現,那么子類化當然是唯一剩下的選項。
Seems like a reasonable thing to do:https://www.tensorflow.org/guide/keras/custom_layers_and_models https://www.tensorflow.org/api_docs/python/tf/keras/Modelguide
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.