2016-07-07 55 views
5

兩個問題:TensorFlow:添加到類預先訓練盜夢空間模型與1.4.3完整圖像層次

1)有誰知道我是否可以添加新的圖像類預先訓練盜-V3模式?例如,我想在許多國旗上訓練TensorFlow,但我需要確保我仍然可以識別來自ImageNet層次結構的圖像。我意識到有一種方法可以擦除Inception的頂層,並在我的課程中完全重新訓練模型,但這非常有限且耗時。

2)此外,有沒有辦法輸出包含圖像接收標籤的整個層次?我希望不僅能夠特別看到Inception將圖像標記爲圖像,還希望看到來自ImageNet的所有更廣泛的「同義詞集」。例如,我不是隻看到輸出「玩具獅子狗」,而是對「動物/家養動物/狗/貴賓犬/玩具獅子狗」感興趣。

任何反應非常感謝。

回答

2

1)輸出層是softmax,這意味着它具有預定義數量的神經元,每一個都是爲一個特定的類定義的。從技術上講,你可以執行Network Surgery,這樣它就會在輸出層有一個神經元,代表你的新類。但是您必須對您的網絡進行額外的培訓,以便更新其所有權重以考慮新班級。壞消息 - 這可能需要一段時間,因爲更新會影響整個網絡,而且網絡也是巨大的。好消息 - 預訓現有網絡的這種變化將比從頭開始學習一切都要快。

2)是什麼讓你認爲這樣的層次結構存在?當然,你不可能知道任何有關數據的內部表示。當然,你可以檢查每個功能中神經元的激活,甚至可以將它們想象成...但是你必須嘗試去理解這些激活是什麼意思。也許你不會找到你期望看到的任何層次結構。總結一下 - 瞭解神經網絡如何在內部表示數據並非易事。其實 - 非常困難。

建議進一步閱讀: https://github.com/tensorflow/models/tree/master/inception

,請注意文檔的this part - 它是密切相關的#1

3
  1. 下面是相關的問題: How to get existing model to recognize additional classes?

這裏是一些解釋: https://github.com/tensorflow/models/issues/2510

所以有可能以某種方式微調模型,如果有模型檢查點。 下面是示例細化和微調的回購鏈路: https://github.com/tensorflow/models/tree/master/research/slim/

  • 它有可能獲得節點名稱和類人類可讀蛞蝓, 所以可以按類別做節點的手動連接。但這很耗時間。
  • 2

    是的,你可以,我最近做了非常相似的事情,在我的情況下,它是致病植物葉片vs健康植物葉片。第3版已經開始訓練,你將要做的是轉移學習。轉移學習是一種技巧,通過爲ImageNet等一系列類別提供完全培訓的模型,並從現有的新班級權重中重新訓練,從而縮短了大量工作量。

    鏈接:Image Retraining at tensorflow.org

    視頻來源:YouTube video tutorial,Hvass實驗室有一些偉大的視頻資源來糾正你的問題。

    相關問題