このページでは deeplabV3 をVOCデータセットを利用して学習するまでの流れを記述します。OSはUbuntuの16.04です。 参考にしたページは以下の通り * https://qiita.com/mucchyo/items/d21993abee5e6e44efad
上記はwindows10での環境だったので、ubuntuでまとめ直します。 環境はAnacondaで構築しました。
tensorflow-gpuのバージョンは上記リンクよりちょっとあげて、1.15にしています。これじゃないとエラーでました。
VOCデータセットをTFRecordに変換するまでを行う。
https://github.com/tensorflow/models/issues/4364#issuecomment-393739008 を参照して、pythonpathを通す
cd tensorflow/models/research/
で該当ディレクトリに移動してから
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
を実行する。この場合は毎回ターミナルを開くたびに設定するのが面倒になってくるので、最初から~にあるbashrc等に記述しておくとよいでしょう。
正しくパスが通っていれば research/deeplab にある model_test.pyを実行できる
私の環境では次のような結果となった。
[ OK ] DeeplabModelTest.testForwardpassDeepLabv3plus [ RUN ] DeeplabModelTest.testWrongDeepLabVariant [ OK ] DeeplabModelTest.testWrongDeepLabVariant [ RUN ] DeeplabModelTest.test_session [ SKIPPED ] DeeplabModelTest.test_session ---------------------------------------------------------------------- Ran 5 tests in 14.744s OK (skipped=1)
最後に学習をさせる
python train.py --logtostderr --training_number_of_steps=300 --train_split="train" --model_variant="xception_65" --atrous_rates=6 --atrous_rates=12 --atrous_rates=18 --output_stride=16 --decoder_output_stride=4 --train_crop_size="513,513" --train_batch_size=1 --dataset="pascal_voc_seg" --tf_initial_checkpoint="./datasets/pascal_voc_seg/init_models/deeplabv3_pascal_train_aug/model.ckpt" --train_logdir="./datasets/pascal_voc_seg/exp/train_on_trainval_set/train" --dataset_dir="./datasets/pascal_voc_seg/tfrecord" --fine_tune_batch_norm=false --initialize_last_layer=true --last_layers_contain_logits_only=false