我正在開發一個android的實時對象分類應用程序。首先,我使用「keras」創建了一個深度學習模型,並且我已經將訓練過的模型保存爲「model.h5」文件。我想知道如何在android中使用該模型進行圖像分類。Keras深度學習模型到android
4
A
回答
2
你不能直接出口Keras到Android,但你必須對模型
配置Tensflow保存爲您Keras後端。
保存模型倩女幽魂使用
model.save(filepath)
(你已經這樣做了)
然後用以下解決方案之一加載:
解決方案1:導入模型Tensflow
1 - 建立Tensorflow模型
- 從模型構建tensorflow模型use this code
2-構建Android應用程序並調用tensflow。請從google中檢查tutorial和official demo以瞭解如何操作。
解決方法2:在java中
1 deeplearning4j一個Java庫導入模型允許進口keras型號:tutorial link
2-使用deeplearning4j在機器人:這是容易的,因爲你是在Java世界。檢查this tutorial
0
首先,你需要的Keras模型導出到Tensorflow型號:
def export_model_for_mobile(model_name, input_node_names, output_node_name):
tf.train.write_graph(K.get_session().graph_def, 'out', \
model_name + '_graph.pbtxt')
tf.train.Saver().save(K.get_session(), 'out/' + model_name + '.chkp')
freeze_graph.freeze_graph('out/' + model_name + '_graph.pbtxt', None, \
False, 'out/' + model_name + '.chkp', output_node_name, \
"save/restore_all", "save/Const:0", \
'out/frozen_' + model_name + '.pb', True, "")
input_graph_def = tf.GraphDef()
with tf.gfile.Open('out/frozen_' + model_name + '.pb', "rb") as f:
input_graph_def.ParseFromString(f.read())
output_graph_def = optimize_for_inference_lib.optimize_for_inference(
input_graph_def, input_node_names, [output_node_name],
tf.float32.as_datatype_enum)
with tf.gfile.FastGFile('out/tensorflow_lite_' + model_name + '.pb', "wb") as f:
f.write(output_graph_def.SerializeToString())
你只需要知道你圖的input_nodes_names
和output_node_names
。這將創建一個包含多個文件的新文件夾。其中,一個以tensorflow_lite_
開頭。這是您將移動到Android設備的文件。
然後在Android上導入Tensorflow庫並使用TensorFlowInferenceInterface
來運行您的模型。
implementation 'org.tensorflow:tensorflow-android:1.5.0'
您可以檢查在Github上我簡單的XOR例如:
相關問題
- 1. Keras的檢查站深度學習模型
- 2. 在keras中保存穩定的模型(深度學習)
- 3. 哪個深度學習庫支持在手機上使用的深度學習模型的壓縮?
- 4. AssertionError當我使用深度學習庫Keras
- 5. 在Keras(深度學習庫)中,RepeatVector + TimeDistributed =錯誤?
- 6. 如何應用UI學習自動化的深度學習?
- 7. 圖像分類深度學習
- 8. 深度學習網絡的分類
- 9. 雲中深度學習的選擇iOS
- 10. 深度學習的混亂矩陣
- 11. 哪些算法涉及深度學習?
- 12. 如何培養深度學習網絡
- 13. 深度學習:包含keras的小數據集:局部最小值
- 14. 如何使用hyperopt進行Keras深度學習網絡的超參數優化?
- 15. Keras - 學習情感數據後預測模型引發錯誤
- 16. 通過學習Keras模型中使用分佈式Tensorflow
- 17. 用於映射大型二進制輸入的深度學習
- 18. Rapidminer中的深度學習算法的類型是什麼?
- 19. 時代如何影響深度學習模式?
- 20. 減少預訓練的深度學習模型的大小特徵生成
- 21. 如何分辨機器學習模型的學習型
- 22. 深入學習chatbot培訓
- 23. 深q學習不收斂
- 24. 準備輸入到Caffe深度學習的圖像數據集
- 25. 爲什麼NLP和機器學習社區對深度學習感興趣?
- 26. 當今深度學習和計算神經科學領域的一般人工智能模型
- 27. 實現在keras共同學習
- 28. MXNet或Keras中是否有度量學習?
- 29. Keras MNIST漸變下降卡滯/學習速度非常慢
- 30. keras恢復訓練不同的學習速度
似乎keras模型並非設計用於支持Android,但我認爲你可以轉換模型文件tensorflow模型文件和然後將張量流模型文件部署到android,這[問題](https://github.com/fchollet/keras/issues/3223)可以幫助你做轉換和這[教程](https://github.com/ tensorflow/tensorflow/tree/master/tensorflow/examples/android)可以幫助如何將tensorflow模型部署到android –
請問具體問題。很難回答這樣一個通用的問題。 – iga