2017-08-08 79 views
1

我已經使用Keras(2.0.4)& Tensorflow(1.1.0)進行了再培訓和微調Inception_v3。當我使用coremltools將Keras模型轉換爲MLmodel時,我得到一個需要輸入MultiArray的模型。 如果我瞭解它是在詢問[高度,寬度,RGB] =(299,299,3),那麼這是有道理的。但我不知道如何將CVPixelBuffer轉換爲該格式。CoreML - 如何預處理InceptionV3的圖像爲MultiArray <Double, 3>?

有人可以幫我理解什麼預處理需要發生,我重新訓練的模型在coreml中工作嗎?或者我需要在轉換中做什麼,以便它可以接受CVPixelBuffer?

回答

1

我已經重新訓練了InceptionV3,但回去看看我的代碼。我沒有在keras中將輸入形狀設置爲299,299。我在預處理過程中將所有照片都強制爲這種大小。結果是Model-JSON不包含輸入維度,而是具有值:[null,null,null,3],並且到CoreML的轉換無法知道輸入變量應該是299,299。能夠保存模型權重,保存模型的json字符串,編輯json以獲得正確的輸入[null,299,299,3],加載編輯後的json字符串作爲新模型,加載權重和中提琴! coreML模型現在可以正確接受Image