2017-07-11 242 views
2

我想培訓張量流模型以識別非常特定的家用電器。我熟悉使用Tensorflow做各種事情,但我不確定構建數據集的最佳方式。培訓Tensorflow識別特定圖像

我最初的想法是從多個角度爲自己提供100-200個設備圖像,然後從Google搜索中找到1000個左右的其他設備圖像,這些圖像不正確。有沒有比我打算解決這個問題更好的方法?

我認爲從物體側面看,容器更具特色,但希望能夠從前方角度獲得高水平的準確性。

+1

歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [在主題](http://stackoverflow.com/help/on-topic)和[如何提問](http://stackoverflow.com/help/how-to-ask)適用於此處。 StackOverflow不是一個設計,編碼,研究或教程服務。 – Prune

+0

你使用什麼樣的拓撲結構?這是您設計中的一個重要考慮因素。一般來說,更高級別的統計和建模問題屬於[交叉驗證](https://stats.stackexchange.com/) – Prune

回答

1

要解決這個問題,你應該利用轉移學習。簡而言之,轉移學習使用已經過訓練或預先訓練的分類器,並在輸出層上工作,通常稱爲瓶頸來保留模型以識別您的自定義圖像。這爲您節省了從零開始構建/訓練圖像識別分類器的時間和精力。

Google Inception V3模型是一個有用的起點。有了這個模型,在工程和培訓時間方面已經投入了大量精力來創建一個最先進的圖像分類器。該模型在2012年的ImageNet數據集上進行了培訓。

該優秀教程TensorFlow for Poets將指導您完成預培訓的Inception V3模型的轉換學習過程,並獲取模型以識別您的定製圖像。

但是,您的圖像集的大小並不壞,但作爲訓練機器學習算法的經驗法則,更多的數據通常會導致更高的精度和更好的泛化。考慮到與偏差 - 方差權衡有關的其他問題得到了尊重。

在我看來,你不需要對負面例子進行任何培訓。關閉我的頭頂,我會建議你訓練你的「正面」示例數據集,然後設置一個準確度閾值。例如,如果圖像無法以高於60%的準確度進行識別,則將其歸類爲「不是家用電器」。然後,您可以使用您的負面示例數據集和正面示例測試集來檢查您的算法的效果。請記住保留一個用於超參數調整的驗證集。

1

您可以使用imagenet下載整個圖像集,因爲它可以將特定圖像數據集的集合作爲url,因此您只需編寫訪問url並將圖像下載到特定目錄的代碼即可。

現在是您的下一步培訓圖像。 我有代碼imagenet下載圖像,可以共享,如果你想