====== VOCデータセットで学習するまで ====== このページでは deeplabV3 をVOCデータセットを利用して学習するまでの流れを記述します。OSはUbuntuの16.04です。 参考にしたページは以下の通り * https://qiita.com/mucchyo/items/d21993abee5e6e44efad 上記はwindows10での環境だったので、ubuntuでまとめ直します。 環境はAnacondaで構築しました。 ===== 環境構築 ===== tensorflow-gpuのバージョンは上記リンクよりちょっとあげて、1.15にしています。これじゃないとエラーでました。 * conda create -n deeplab python=3.6 * conda activate deeplab * pip install tensorflow-gpu==1.15 * pip install tf_slim * pip install pillow * pip install matplotlib * pip install opencv-python * pip install cudnn=7.6.5=cuda10.0_0 ===== データセットの準備 ===== * https://qiita.com/mucchyo/items/d21993abee5e6e44efad の通りにVOCデータセットを準備する VOCデータセットをTFRecordに変換するまでを行う。 ===== PYTHONPATHの設定 ===== 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を実行できる * python 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