天天看點

使用TensorFlow提供的slim模型來訓練資料模型供iOS使用

2、  資料可以是slim提供的資料集或者是自己采集的圖檔

2.1、下載下傳slim提供的資料集flowers

2.1.1、設定下載下傳目錄指令:

data_dir=/users/javalong/desktop/test/output/flowers

2.1.2、進入到slim模型目錄指令:

cd /users/javalong/downloads/models-master/slim

2.1.3、下載下傳資料集指令:

python3 download_and_convert_data.py \

    --dataset_name=flowers \

    --dataset_dir="${data_dir}"

2.1.4、檢視目錄下的檔案指令:

ls ${data_dir}

得到:

flowers_train-00000-of-00005.tfrecord

...

flowers_train-00004-of-00005.tfrecord

flowers_validation-00000-of-00005.tfrecord

flowers_validation-00004-of-00005.tfrecord

labels.txt

2.2、我們可以看到下載下傳slim提供的資料檔案是tfrecord格式,是以我們要訓練自己采集的圖檔,第一步先将圖檔轉換成tfrecord格式。

2.2.1、将圖檔轉換成tfrecord檔案,需要安裝的軟體

pip3 install pillow

pip3 install matplotlib

2.2.2、在/users/javalong/downloads/models-master/slim下建立一個fu_img_to_tfrecord.py檔案。

如圖:

使用TensorFlow提供的slim模型來訓練資料模型供iOS使用

2.2.3、fu_img_to_tfrecord.py的内容為:

2.2.4、執行轉換指令:

python3 /users/javalong/downloads/models-master/slim/fu_img_to_tfrecord.py /users/javalong/desktop/flowers /users/javalong/desktop/flower_record

注:

2.2.5、/users/javalong/desktop/flowers是存放采集的圖檔,如圖:

使用TensorFlow提供的slim模型來訓練資料模型供iOS使用

2.2.6、/users/javalong/desktop/flower_record是生成的tfrecord格式檔案存放目錄。最終生成的檔案如圖:

使用TensorFlow提供的slim模型來訓練資料模型供iOS使用

2.2.7、使用/users/javalong/desktop/flowers目錄的子目錄名作為分類文本會存儲到生成的label.txt中。如圖:

使用TensorFlow提供的slim模型來訓練資料模型供iOS使用

2.2.8、fu_img_to_tfrecord.py功能實作參考/users/javalong/downloads/models-master/slim/datasets/download_and_convert_flowers.py檔案

3、用預訓練資料集inception_v3來訓練資料集flowers

3.1、設定相應的目錄:

dataset_dir=/users/javalong/desktop/test/output/flowers

checkpoint_path=/users/javalong/desktop/test/output/inception/inception_v3.ckpt

train_dir=/users/javalong/desktop/test/output/tran

3.2、訓練指令:

python3 train_image_classifier.py \

    --train_dir=${train_dir} \

    --dataset_dir=${dataset_dir} \

    --dataset_split_name=train \

    --model_name=inception_v3 \

    --checkpoint_path=${checkpoint_path} \

    --checkpoint_exclude_scopes=inceptionv3/logits,inceptionv3/auxlogits \

    --trainable_scopes=inceptionv3/logits,inceptionv3/auxlogits \

    --clone_on_cpu=true

4、生成.pb檔案

4.1、在/users/javalong/downloads/models-master/slim下建立一個bbb.py檔案。

使用TensorFlow提供的slim模型來訓練資料模型供iOS使用

4.2、bbb.py的内容為:

5、優化模型并去掉ios不支援的算子 

<a href="https://yq.aliyun.com/articles/125692?spm=5176.8091938.0.0.vduyon">查考此篇文章</a>