RTX3090を搭載したPCにUbuntu Server 20.04 LTSで物理環境で構築し、日本語OCRを動かすための環境構築のメモである。Pytorchの他にTensorFlow・Kerasも導入した。2021年5月24日現在、各インストールのバージョンは下記のとおり。
- Ubuntu Server 20.04 LTS
- Cuda 11.3
- Cuda Toolkit 11.3 Update 1
- Pytorch 1.8.1+cu111
- TensorFlow 2.5.0
- Keras 2.4.3
Ubuntu Server 20.04 LTS のインストール
ブート用USBメモリはRufusで作成。起動時にF8キーを押してUSBからブートさせる。インストールの際に注意する点は下記のとおり。
- IPv4は固定IPで設定
- OpenSSHのインストールを実施
- name serverは 8.8.8.8 8.8.4.4 を指定
- Timezoneは起動後に設定
sudo timedatectl set-timezone Asia/Tokyo
Cuda Toolkitのインストール
この時点でSSHでのアクセスが可能になる。Teratermなり使って作業を進める。参考にしたのは下記のとおり。
■CUDA Toolkit 11.3 Update 1 Downloads (2021年05月24日時点)
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local
最新バージョンは都度確認すること。再起動後に nvidia-smi でドライバの状態を確認をする。
GUIログインの無効化
Cuda Toolkitがインストールされた時点で、GUIログインが有効になってしまっているので、それを無効化する。
sudo systemctl set-default multi-user.target
※放置すると5分でサスペンドするので必ず実施すること
OCR_Japaneaseのインストール
Pytorchを使った日本語OCRの導入をする。Pytorch以外をまずは入れる。
■OCR_Japanease公式サイト
sudo apt install python3-pip
pip3 install numpy
pip3 install opencv-contrib-python
pip3 install sklearn
Pytorchのインストール
下記URLより、環境に合ったPytorchをインストールする。
OCR_Japaneaseの動作確認
python3 -c “import torch; print(torch.cuda.is_available())”
time python3 ocr_japanease.py testshot1.jpg
上記を実行してGPUやPytorchの動作確認をする
cuDnnのインストール
TensorFlowの動作前提となるcuDnnのインストールをする。参考にしたのは下記サイト。
https://medium.com/geekculture/installing-cudnn-and-cuda-toolkit-on-ubuntu-20-04-for-machine-learning-tasks-f41985fcf9b2
※CUDA11.3でcuDnnのバージョンを調整していないとインストールが失敗する
libcudnn8-samples_8.2.0.53–1+cuda11.3_amd64.deb
libcudnn8-dev_8.2.0.53–1+cuda11.3_amd64.deb
libcudnn8_8.2.0.53–1+cuda11.3_amd64.deb
上記をアップロード(導入時期でバージョンが違っている可能性あり)
sudo dpkg -i libcudnn8_8.2.0.53-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-dev_8.2.0.53-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-samples_8.2.0.53-1+cuda11.3_amd64.deb
TensorFlowのインストール
下記のリンクから環境に合ったものをインストールする。
pip3 install tensorflow-gpu
Kerasのインストール
pip3 install keras
nvidia-smiの便利な機能
GPU処理中は、もう一つTeratermを立ち上げて、下記コマンドを実行するとtopコマンドのようにGPUの動作状況が確認できて便利だ。
watch -d -n 1 nvidia-smi
今後の課題
- バージョンアップの管理(venvなどを利用したい)
- バックアップは定期的にクローンを取るなり行う
- bugfix等のパッチは必要に応じて当てていく
コメント