RasPi 入門 (6) - RasPi4の強化学習用のセットアップ
「RasPi4」の強化学習用のセットアップの手順をまとめました。
・Raspberry Pi 4 Model B
・Buster
前回
1. システムアップデート
はじめに、aptのパッケージを最新版に更新します。
$ sudo apt update
$ sudo apt upgrade -y
$ sudo reboot
2. 定番パッケージのインストール
機械学習の定番パッケージをインストールします。
$ sudo apt install python3-numpy
$ sudo apt install python3-imaging
$ sudo apt install python3-pandas
$ sudo apt install python3-matplotlib
3. Tensorflowのインストール
Tensorflowをインストールします。
$ sudo pip3 install -U pip
$ sudo pip3 install -U setuptools
$ sudo pip3 install wrapt --upgrade --ignore-installed
$ sudo pip3 install --default-timeout=1000 tensorflow==1.13.1
4. Stable Baselinesのインストール
「Stable Baselines」をインストールします。
$ sudo pip3 install stable-baselines==2.8.0
5. Stable Baselinesの動作確認
「CartPole」が強化学習されることを確認します。
(ステップ数を少なくしてるので少しバランスとる程度です。)
【cartpole.py】
import gym
from stable_baselines.common.vec_env import DummyVecEnv
from stable_baselines import PPO2
env = gym.make('CartPole-v1')
env = DummyVecEnv([lambda: env])
model = PPO2('MlpPolicy', env, verbose=1)
model.learn(total_timesteps=12800)
state = env.reset()
while True:
env.render()
action, _ = model.predict(state, deterministic=True)
state, rewards, done, info = env.step(action)
if done:
state = env.reset()
$ python3 cartpole.py
6. OpenCVのインストール
【check_cv.py】
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ pip3 install opencv-contrib-python==4.1.0.25
$ python3 check_cv.py
7. OpenCVの動作確認
import cv2
print(cv2.__version__)
camera = cv2.VideoCapture(0)
while True:
_, im_org = camera.read()
cv2.imshow('check_cv', im_org)
cv2.waitKey(1)
参考
・Pythonおよび機械学習勉強用のRaspberryPiの構築
・Raspberry PiとTensorFlowを使ったディープラーニングの開発環境構築
・ラズパイ3にOpenCV3/4を簡単に導入
・Raspberry Pi 4 に OpenCV を楽に入れる
次回
この記事が気に入ったらサポートをしてみませんか?