1. 概要
前ページまでで、作業している環境は、「Windows11 23H2」でのものです。
アップされているサンプルの中には、「Windows」環境では、動作しないものがあるようです。
「macOS」や「Ubuntu」での環境作成例もあります。
「macOS」の環境は作成できませんが、「Ubuntu」ならばやってみることができるかもしれないので、やってみます。
「Ubuntu 24.04」でやってみます。
本ページは、下記のサイトを参考にさせていただきました。
「analogdevicesinc/ai8x-training: Model Training for ADI's MAX78000 and MAX78002 Edge AI Devices」
「GitHub - analogdevicesinc/msdk: Software Development Kit for Analog Device's MAX-series microcontrollers」
2. 準備
とりあえず、「apt update」で、システムを最新にしてはおきます。
「pip」がなかったので、インストールしておきます。
(他にも足りないものがあるようで、まとめて)
「root」ユーザ権限で。
apt install -y git python3-pip python3-full
apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev libsndfile-dev portaudio19-dev libsox-dev
以下で、「python」で動作しようとするとないので、「python」を「python3」のシンボリックリンクにします。
ln -s /usr/bin/python3 /usr/bin/python
なんか「pyenv」なるものが必要らしい。
ログインユーザで。
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
「bash」へパスを追加。
sh
cat << 'EOF' >> ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
EOF
exit
source ~/.bashrc
「python3.11.8」が必要らしいので、ユーザ環境へ、インストール。
pyenv install "3.11.8"
3. git
シェルは、デフォルトで「bash」になっているかと思いますが、変更している場合は、「bash」へ変更します。
ユーザのホーム直下に環境を作るものとします。
ここからは、ログインユーザで。
「github」からコードを取得します。
git clone --recursive https://github.com/analogdevicesinc/ai8x-training.git
git clone --recursive https://github.com/analogdevicesinc/ai8x-synthesis.git
「git」の途中でエラーになることがあります。
そのような場合は、フォルダごと削除して、再度「git」コマンドをやりなおします。
以降、この状態から、あれこれいじります。
元に戻せるよう、この状態でいったん、バックアップを取っておいた方がいいかもしれません。
「ai8x-training」「ai8x-synthesis」という、2つの「git」を取得したわけですが、それぞれ環境を設定します。
4. ai8x-training 環境設定
「ai8x-training」の環境を設定します。
「bash」上での環境を設定します。
cd ai8x-training
「python」のバージョンを「3.11.8」へ設定して。
pyenv local 3.11.8
確認。
$ python --version
Python 3.11.8
python -m venv .venv --prompt ai8x-training
echo "*" > .venv/.gitignore
設定後、反映します。
source .venv/bin/activate
今後、ディレクトリ移動ごとに、上記の「source」先頭ンドを実行することが必要になります。
上記で、「activate」を実行すると、プロンプトの先頭が、「(ai8x-training)」になります。
このあたり、「Windows」とは異なります。
必要なパッケージをインストールします。
pip3 install -U pip wheel setuptools
pip3 install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121
pip3 install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/rocm5.7
pip3 install -r requirements.txt
ここで、おまけ。
以降のサンプルパターンでは、警告が出ませんが。
オリジナルのパターンをやろうしたら、警告が出ることがあります。
それを防ぐために、ソースをひとついじります。
ai8x-training/train.py
73行目あたりに、下記の行をいれておきます。
(詳細は、「Python - トラブルシュート」の「tensorflow Warning」をご参照ください)
os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'
次項の環境設定のために。
deactivate
5. ai8x-synthesis 環境設定
「ai8x-synthesis」の環境を設定します。
cd ../ai8x-synthesis
「python」のバージョンを「3.11.8」へ設定して。
pyenv local 3.11.8
確認。
$ python --version
Python 3.11.8
python -m venv .venv --prompt ai8x-synthesis
echo "*" > .venv/.gitignore
source .venv/bin/activate
パッケージインストール。
pip3 install -U pip setuptools
pip3 install -r requirements.txt
deactivate
6. msdk 環境設定
前もって、必要なモジュールをインストール。
「root」ユーザ権限で。
apt install -y libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-shm0 libxcb-util1 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 libxcb1 libxkbcommon-x11-0 libxkbcommon0 libgl1 libusb-0.1-4 libhidapi-libusb0 libhidapi-hidraw0
以下、ログインユーザで。
「msdk」の環境を作成します。
下記のサイトへアクセスして。
「GitHub - analogdevicesinc/msdk: Software Development Kit for Analog Device's MAX-series microcontrollers」
「Installation」の「Installation」