1> 自己的圖片資源搜集
借助工具: Fatkun Batch Download Image?
google chrome 插件, 可以下載當(dāng)前頁面中的圖片谈截, 本例下載三類:美食/旅行/寵物
保存為: images/food/**.jpg ; images/travel; images/pet
2> 訓(xùn)練自己的模型
python tensorflow/examples/image_retraining/retrain.py --bottleneck_dir=/tf_files/bottlenecks --how_many_training_steps 4000 --model_dir=/tf_files/inception --output_graph=/tf_files/retrained_graph.pb --output_labels=/tf_files/retrained_labels.txt --image_dir /tf_files/images
3> 為移動版本優(yōu)化模型PB文件
./configure
bazel build tensorflow/python/tools:optimize_for_inference
bazel-bin/tensorflow/python/tools/optimize_for_inference ?--input=/tf_files/retrained_graph.pb --output=/tf_files/retrained_graph_optimized.pb --input_names=Mul ?--output_names=final_result
4> 編譯tensorflow中 example中 android項目, 編譯完畢后,在android studio中生成apk
此時 assets中會有例子中自帶的一些 model.pb, labels.txt
5> 修改ClassifierActivity.java中的參數(shù)
private static final int INPUT_SIZE =299;
private static final int IMAGE_MEAN =128;
private static final float IMAGE_STD =128;
private static final String INPUT_NAME ="Mul";
private static final String OUTPUT_NAME ="final_result";
private static final String MODEL_FILE ="file:///android_asset/retrained_graph_optimized.pb";
private static final String LABEL_FILE ="file:///android_asset/retrained_labels.txt";
6> 將第4步中訓(xùn)練的retrained_graph_optimized.pb, retrained_label.txt ?復(fù)制到assets中
7> 重新編譯和運行應(yīng)用涧偷, TF Classify 即可