
jetsonが高額すぎて、5年以上前に購入したjetsonでYOLO26動かそうとしたら、全然できなかったのでdokcerでなんとかYOLO12は動かせた話です。Dockerを使った手順になりますが、ここで紹介しているコマンドだけで動くようになると思います。
Jetson NanoでUltralytics YOLOをTensorRT(.engine)へ変換し高速推論する手順を初心者向けに解説しています。Dockerが必要な理由、numpyのnp.boolエラーの直し方、YOLO26がTensorRT変換に失敗する原因(Mod演算子)と回避策までまとめました。
Jetson NanoでYOLOをTensorRT化して爆速推論する方法|Docker必須&np.boolエラー対策まで
Jetson NanoでYOLOを動かすと、PyTorchのままだと推論が重い・環境が壊れやすい、という壁に当たりがちです。
この記事では、Ultralytics YOLO → TensorRT(.engine) へ変換して高速推論するまでを、実ログに基づいて初心者でも再現できる形でまとめます。
さらに、Jetson Nanoでよく踏む地雷である
AttributeError: module 'numpy' has no attribute 'bool'- YOLO26のTensorRT変換失敗(
No importer registered for op: Mod)
も「なぜ起きるか」「どう回避するか」をセットで解説します。

この記事で分かること
- Dockerとは何か(初心者向け)
- なぜJetson NanoではDocker運用が強いのか
- Ultralyticsで TensorRTエンジン(.engine)を作る手順
np.boolエラーの原因と対処(NumPy 1.24問題)- YOLO26が TensorRT 8.2で失敗する理由 と回避策
先に結論:Jetson Nanoは「Docker+TensorRT」が現実解
Jetson Nano(Tegra X1 / 4GB)環境は、PCと違ってOS・CUDA・TensorRTの組み合わせが固定されがちで、Python側の依存関係を少し触っただけで崩れます。
UltralyticsのJetson向けガイドでも、Jetson NanoはJetPack 4系(Ubuntu 18.04ベース)での運用が前提であり、そこに合わせた手順が整理されています。
そして、YOLOを高速化したいなら TensorRT が最強クラスです。UltralyticsのExportドキュメントでも、TensorRTで最大5倍のGPU高速化が狙えることが明記されています。
Dockerとは何か(初心者向け)
Dockerを一言でいうと、**「動く環境まるごとパッケージ化して持ち運ぶ箱」**です。
- PCに直接Pythonやライブラリを入れると、依存関係が衝突して壊れがち
- Dockerなら、必要なPython・PyTorch・Ultralytics・ONNX・TensorRT周りを「コンテナ内」に閉じ込められる
- Jetson特有のCUDA/TensorRT環境とも相性が良い(ホスト側のGPUをコンテナから利用)
つまりDockerは、Jetson Nanoのように「環境が固定される機器」で特に強いです。
なぜJetson Nanoでは「Dockerでないとダメ」になりがちなのか
理由は大きく3つです。
1) JetPack依存で、TensorRT/ CUDA のバージョンが縛られる
Jetson NanoはJetPack(OS+CUDA+TensorRTセット)に強く依存します。
新しいTensorRTを入れたいと思っても、JetPack側が追いつかず、簡単には上げられません。
2) Python側の依存関係が衝突しやすい
今回のログでも、NumPyのバージョンが原因でTensorRT Pythonバインディングが落ちました。
- NumPy 1.24以降は
np.boolなどの古い別名が削除され、古いコードが壊れます。実際、NumPy 1.24のリリースノートでも「期限切れの非推奨(Expired deprecations)」としてnp.bool等の削除が案内されています。 - その結果、
AttributeError: module 'numpy' has no attribute 'bool'が発生
Dockerなら「この組み合わせで動いた」というセットを固定しやすく、壊れたらコンテナを捨てて作り直すができます。
3) 再現性(同じ手順で同じ結果)を担保しやすい
ブログ・チーム共有・量産運用では、再現性が命です。Dockerはここが圧倒的に強いです。

手順:Jetson NanoでUltralytics YOLOをDockerで動かす(最短)
Ultralytics公式のJetsonガイドには、Dockerで動かす「クイックスタート」が載っています。
(※細部は環境により変わるので、基本は公式のコマンドに寄せるのが安全です)
例:イメージ取得 → GPUを使って起動(概念としてはこういう流れです)
# 例:イメージ取得(公式ガイドに沿って)
sudo docker pull ultralytics/ultralytics:latest-jetson
# 例:JetsonのGPUを使える形で起動(公式ガイドの記載を参照)
sudo docker run -it --runtime nvidia --network host ultralytics/ultralytics:latest-jetson
TensorRTエンジン化(.engine)まで:yolo export の基本
UltralyticsのExport(書き出し)機能は、CLIだと yolo export ... format=engine の形です。
今回の成功パターン(ログそのままに近い形)はこれです:
# 例:YOLO12nをTensorRTエンジン化(FP16)
yolo export model=yolo12n.pt format=engine imgsz=320 half=True
エンジン生成が終わったら、engineを直接推論できます:
yolo predict task=detect model=yolo12n.engine source='https://ultralytics.com/images/bus.jpg' imgsz=320 half=True
重要:np.bool エラーの原因と直し方(今回のハマりポイント)
私のログで最初に出た致命的エラーはこれです:
- AttributeError: module ‘numpy’ has no attribute ‘bool’
なぜ起きる?
NumPy 1.24で np.bool が削除されたためです(非推奨だった別名が期限切れになって削除)。
TensorRT(もしくは周辺コード)がまだ np.bool を参照していると、そこで落ちます。
どう直す?(最も安全な現実解)
NumPyを 1.23.5 に固定します。今回のログでも numpy==1.23.5 に戻したら np.bool が復活し、TensorRT推論が動きました。
コンテナ内で以下:
python3 -m pip uninstall -y numpy
python3 -m pip install "numpy==1.23.5"
# 念のため確認
python3 -c "import numpy as np; print(np.__version__, hasattr(np,'bool')); print(np.bool)"
成功例:YOLO11 / YOLO12 はTensorRT化できて推論も速い
私のログでは、
yolo11n.engineで推論成功yolo12n.engineも export 成功 → 推論成功(320入力で 255.9ms 推論)
という流れでした。
Jetson Nanoでは、まず YOLO11n / YOLO12n をTensorRT化して運用が現実的です。

失敗例:YOLO26 をTensorRT化しようとすると Mod 演算子で落ちる
ログの最後で起きたのがこれです:
No importer registered for op: ModPlugin not found...- TensorRT export failure
これは「あなたの環境が悪い」というより、TensorRT側のONNXパーサが、その演算子(Mod)を処理できないタイプの問題です。実際、NVIDIA側でも「Mod が import できない/プラグインが必要」といった報告が見つかります。
回避策1(まず試す価値が高い):YOLO26の end2end=False を指定
UltralyticsのExport引数には end2end があり、YOLO26/YOLOv10の NMS-free(end-to-end)挙動を上書きできると説明されています。False にすると従来のNMSベース互換の出力に寄せられます。
なので、次を試す価値があります:
yolo export model=yolo26n.pt format=engine imgsz=320 half=True end2end=False
※これで内部グラフが変わり、Mod が消える(もしくは別形に落ちる)可能性があります。必ず成功する保証はないですが、「同じモデルでグラフを変えられる」唯一の公式ルートです。
回避策2:TensorRTにこだわらず、ONNX止まりで運用する
Jetson NanoのTensorRT(特に8.2系)では、モデルによっては対応演算子の都合で詰みます。
その場合は、
format=onnxで止める- ONNX Runtime(GPU)や別の推論経路で動かす
という逃げ道もあります(ただしJetsonはここも依存関係が難しいので、運用難易度は上がります)。
回避策3:JetPack / TensorRT を上げられる機種へ(Orin等)
どうしてもYOLO26をTensorRT化したいなら、**新しいTensorRTが使えるJetson(Orin世代)**へ寄せるのが最短なこともあります。
つまずきやすいポイントまとめ(チェックリスト)
- Dockerで環境固定できているか(ホストに直接pip地獄を作らない)
np.boolエラーが出たら NumPy 1.23.5 に固定(NumPy 1.24で削除)yolo export ... format=engineの基本を守る(Ultralytics公式のExport手順)- YOLO26が
Modで落ちたらend2end=Falseを試す(YOLO26向け引数) - それでもダメなら「モデルをYOLO12にする」か「ONNX運用」か「機種更新」

この記事のまとめ
Jetson NanoでYOLOを本気で運用するなら、
- Dockerで環境を固定
- TensorRT(.engine)化で高速推論
- NumPy 1.24問題(np.bool)を踏まえて 1.23.5 に固定
- YOLO26はTensorRT 8.2で演算子(Mod)詰まりの可能性 → end2end=False等で回避を試す
が、いちばん再現性が高いルートです
それではまた。






LEAVE A REPLY