toshiki814
2022年1月15日 16時53分
お世話になっております。金田と申します。
TensorflowやTensorflowLiteを使用するpythonファイルをarmadilloで実行したいと考えています。
python用のコンテナを/dev/galcoreをデバイスとして渡して作成し、tensorflowやtensorflow Liteをインストールしようとしました。
しかしながら、
No matching distribution found for tensorflow (tensorflow liteも同様)
と出てしまい、対応するtensorflow(tensorflowLite)のバージョンが存在しないことになってしまっています。
pythonは3.8.8を使用しています。
armadillo上で機械学習ライブラリを使用したアプリケーション開発の流れが分かる方がいらっしゃるのであれば、助言いただけると幸いです。
コメント
toshiki814
石垣 様
返信ありがとうございます。
詰まってしまっていたので、非常に助かります。
現在、「開発ガイド:6.3 podman コンテナのベースイメージを選択する」
を参考に、サンプルコンテナを使用してpython実行環境を整えようとしています。
その際、「製品マニュアル:8.3 VPU や NPU を使用する」を事前にやっておく必要があるとの記載があったので、只今行っているのですが、
製品マニュアル:8.3.3の部分について、"umount /opt/firmware"を実行すると
umount: /opt/firmware: no mount point specified.
と帰ってきてしまい、正しくマウントできません。
imx_lib.imgを書き込むコマンド"dd if=/tmp/imx_lib.img of=/dev/mmcblk2p4 bs=1M conv=fsync"の際には、
マニュアルにかかれているような出力が返ってくるので出来ていると思います。
/optフォルダを確認してみたところ、中には何も入っていない状況でした。
また、/etc/fstabをviで開くと以下のようにopt/firmwareについての記載がない状態です。
/dev/root / ext4 ro 0 0
tmpfs /tmp tmpfs nosuid,nodev 0 0
/dev/mmcblk2p3 /var/log ext4 defaults 0 0
/dev/mmcblk2p5 /var/lib/containers/storage_readonly btrfs compress=zstd,discard=async,subvol=boot_0/containers_storage 0 0
/dev/mmcblk2p5 /var/app/rollback/volumes btrfs compress=zstd,discard=async,subvol=boot_0/volumes 0 0
/dev/mmcblk2p5 /var/app/volumes btrfs compress=zstd,discard=async,subvol=volumes 0 0
/dev/mmcblk2p5 /var/tmp btrfs compress=zstd,discard=async,subvol=tmp 0 0
/dev/mmcblk2p5 /var/lib/containers/storage btrfs compress=zstd,discard=async,subvol=containers_storage 0 0
/opt/firmwareが無いためか「開発ガイド:6.3.3. コンテナ内に入る」を実行する際にエラーが出ます。
Error: executable file `/bin/bash.` not found in $PATH: No such file or directory: OCI runtime attempted to invoke a command that was not fd
どのようにすればデバイスや環境もろもろを渡して
サンプルコンテナを作成できるか分からず困っております。
何卒よろしくお願いいたします。
金田
at_shiita.ishigaki
石垣です
> また、/etc/fstabをviで開くと以下のようにopt/firmwareについての記載がない状態です。
出荷時のイメージではfstabに/opt/firmwareが含まれているのですが、
頂いたログでは、opt/firmwareについての記述がないようです。
以下のコマンドを実行し、fstabに/opt/firmwareを追加してください。
echo "/dev/mmcblk2p4 /opt/firmware squashfs defaults 0 0" >> /etc/fstab persist_file /etc/fstab mount -o remount,rw / mkdir /opt/firmware sync reboot
再起動後に以下のコマンドを実行して、firmwareの中にファイルが存在することを確認してください。
[armadillo ~]# ls /opt/firmware etc usr
上記結果と同様になっていれば、firmwareの書き込みに成功しております。
> /opt/firmwareが無いためか「開発ガイド:6.3.3. コンテナ内に入る」を実行する際にエラーが出ます。
> Error: executable file `/bin/bash.` not found in $PATH: No such file or directory: OCI runtime attempted to invoke a command that was not fd
おそらく実行しているコマンドが
[armadillo /]# podman run -ti \ --name=sample_container \ --env=XDG_RUNTIME_DIR=/tmp \ --env=LD_LIBRARY_PATH=/opt/firmware/usr/lib/aarch64-linux-gnu \ --device=/dev/tty1 \ --device=/dev/input \ --device=/dev/dri \ --device=/dev/galcore \ --device=/dev/mxc_hantro \ --device=/dev/mxc_hantro_vc8000e \ --device=/dev/ion \ --volume=/run/udev:/run/udev:ro \ --volume=/opt/firmware:/opt/firmware:ro \ --cap-add "SYS_TTY_CONFIG" \ localhost/abos-dev-guide:v0.0.0 /bin/bash. //末尾に余計な"."(ドット)が付いている
と、/bin/bash.になっていると思われるため、以下のコマンドのように/bin/bashに変更し実行してください。
[armadillo /]# podman run -ti \ --name=sample_container \ --env=XDG_RUNTIME_DIR=/tmp \ --env=LD_LIBRARY_PATH=/opt/firmware/usr/lib/aarch64-linux-gnu \ --device=/dev/tty1 \ --device=/dev/input \ --device=/dev/dri \ --device=/dev/galcore \ --device=/dev/mxc_hantro \ --device=/dev/mxc_hantro_vc8000e \ --device=/dev/ion \ --volume=/run/udev:/run/udev:ro \ --volume=/opt/firmware:/opt/firmware:ro \ --cap-add "SYS_TTY_CONFIG" \ localhost/abos-dev-guide:v0.0.0 /bin/bash
at_shiita.ishigaki
石垣です。
> 出荷時のイメージではfstabに/opt/firmwareが含まれているのですが、
> 頂いたログでは、opt/firmwareについての記述がないようです。
> 以下のコマンドを実行し、fstabに/opt/firmwareを追加してください。
echo "/dev/mmcblk2p4 /opt/firmware squashfs defaults 0 0" >> /etc/fstab persist_file /etc/fstab mount -o remount,rw / mkdir /opt/firmware sync reboot
先日お伝えしたコマンドでは、/opt/firmwareが電源を落としたときに消えてしまう状態になっていたので、
正しくは以下のコマンドを実行してください。
echo "/dev/mmcblk2p4 /opt/firmware squashfs defaults 0 0" >> /etc/fstab persist_file /etc/fstab mkdir /opt/firmware persist_file /opt/firmware sync reboot
toshiki814
at_shiita.ishigaki
2022年1月17日 10時24分
石垣です。
> python用のコンテナを/dev/galcoreをデバイスとして渡して作成し、tensorflowやtensorflow Liteをインストールしようとしました。
> しかしながら、
> No matching distribution found for tensorflow (tensorflow liteも同様)
> と出てしまい、対応するtensorflow(tensorflowLite)のバージョンが存在しないことになってしまっています。
Armadillo-IoT G4上でtensorflowやtensorflow Liteの学習することは推奨していないため、tensorflowのパッケージ全てをインストールする必要はありません。
学習はパソコン上で行い、Armadillo-IoT G4上でtensorflow Liteのruntimeのパッケージを使用して実行のみすることを推奨しております。
また、NPUを使用する場合は、当社が提供しているサンプルコンテナイメージを使用することを推奨しております。
サンプルコンテナイメージは以下のURLから取得できます。
https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4…
上記サンプルコンテナのようなdebianベースのコンテナを使用する場合は以下のコマンドでtensorflow Liteのruntimeをインストールすることができます。
Armadillo-IoT G4上で機械学習アプリケーションを開発する方法については下記マニュアルも参考にできます。
https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-g4/do…