●Mac Bookで 教師dataの学習
2022.06.19
【Mac Bookに 学習環境の構築】
miniforgeを installした Mac Bookに object detection APIを Downloadして
教師dataの学習環境を作ります。
(base)$ conda activate py38
(py38)$ cd /Users/「ユーザー名」/miniforge3/envs/py38
(py38)$ sudo git clone https://github.com/tensorflow/models
(py38)$ ls -l
PYTHONPATH の設定
.zshrcに下記のPATHを書いておきます。
(py38)$ cd /Users/「ユーザー名」
(py38)$ sudo nano .zshrc
(py38) export PATH="opt/homebrew/bin:/usr/sbin:/usr/bin:/bin:$PATH"
(py38) export PYTHONPATH= /Users/「ユーザー名」 /miniforge3/envs/py38/models/research:
/Users/「ユーザー名」 /miniforge3/envs/py38/models/research/slim:$PYTHONPATH
【protobuf install】
Protocol Buffers の installから始めます。
(py38)$ sudo apt-get update
(py38)$ sudo apt-get upgrade
(py38)$ sudo apt-get install snapd
(py38)$ sudo reboot
(py38)$ sudo snap install core
(py38)$ sudo snap install protobuf --classic
Protocol Buffersの proto fileセットアップ
(py38)$ cd ?/models/research/object_detection
(py38)$ protoc protos/*.proto --python_out= .
(py38)$
次に必要なライブラリを installします。
(py38)$ cd ?/models/research
(py38)$ cp object_detection/packages/tf2/setup.py .
(py38)$ python -m pip install .
Object Detection APIの Test
(py38)$ cd ?/models/research
(py38)$ python object_detection/builedrs/model_builder_tf2_test.py
(py38)$
Object_detection_APIの testを実行して OK (skipped=1) が出れば成功です。
【Mac側 SSHの設定】
Windowsから M1 Macに接続するために SSHの設定をします。
$ cd /etc/ssh
$ sudo nano sshd_config
port 22
AddressFamily any
#ListenAddress 0.0.0.0
PasswordAuthentication yes
ctl+Oで書き込み ctl+Xで終了
【学習data転送 Windows ⇒ Mac Book】
object_detection_toolsの download
$ cd /Users/「ユーザー名」/miniforge3/envs/py38
$ conda activate py38
(py38)$ git clone https://github.com/karaage0703/object_detection_tools
downloadした Folder配下の trainと valに MicroSoft VOTTで作成した
Windows上にある教師dataを scp commandで転送して書き込みます。
ここからは windows側の作業になります。
windowsのシステムツールからコマンドプロンプトを開いて
scp commandで Mac Bookに教師dataを一括転送します。
Windows Command prompt
-----------------------------------------
$ scp D:Work/TFRecords-export/*.tfrecord 「ユーザー名」@192.168.1.21:/Users/「ユーザー名」 /miniforge3/envs/py38/object_detection_tools/data/train/
$ scp D:Work/TFRecords-export/*.tfrecord 「ユーザー名」@192.168.1.21:/Users/「ユーザー名」 /miniforge3/envs/py38/object_detection_tools/data/val/
$ scp D:Work/TFRecords-export/tf_label_map.pbtxt 「ユーザー名」@192.168.1.21:/Users/「ユーザー名」 /miniforge3/envs/py38/object_detection_tools/data/
Enterを keyinすると Mac Bookの passwordを聞かれますので
keyinすると転送が始まります。
【教師data 学習】
Mac Book Airで 教師data 学習: 120枚の教師dataを学習させる。
(py38)$ cd /Users/「ユーザー名」/miniforge3/envs/py38/models/research/
(py38)$ python object_detection/model_main_tf2.py
--pipeline_config_path= "./object_detection_tools/config/efficientdet_d0_coco17_tpu-32.config"
--model_dir="./saved_model_01"
--num_train_steps=10000
--alsologtostderr
1枚の画像の学習回数は 10000回と少なめにしたが、
Mac Bookの 8 core CPUでも1時間50分掛かった。
Mac Book Airの本体が熱くなった。100%あった Batteryが 60%まで減った。
作成した教師dataの数値が低下していっているので、学習が進んでいます。
----------------------------------------------------------------------------------------------------------------------------