冬は寒いのでDNNの学習を回すのにぴったり!GPUの廃熱で暖房費節約だぜ!などと思ったけれど、メインマシンはメインOSはWindowsで運用していてビデオカードもAMDなのでDNNフレームワークを動かすのはしんどい。 調べたらDirectMLってのでWindows+AMDでもいけ…
横着したらハマったので自戒を込めてメモ。 まとめ Pythonには「サイト固有の設定フック」という機能がある venv環境のトップディレクトリに入っている .pth ファイルを読み込んで処理する PyTorchの学習済み重みファイル(拡張子 .pth)を置いていると上記…
前回の続き。 前回の記事 ↓ maminus.hatenadiary.org 今回のソースコード ↓ github.com ありがたいことにGitHubのIssueでCUDA版のカスタムオペレータ実装方法について問い合わせをいただいたので時間ができた時に実装してみた。 ※ONNXRuntimeのカスタムオペ…
ソースコードはここ↓ github.com 背景とか TensorRTを使おうとしてモデルの一部をONNXのカスタムオペレータにすることがある。(TensorRTのプラグインを使うケース) ただカスタムオペレータを含むモデルはそのままではONNXRuntimeで推論できない。というこ…
AutoML版EfficientDetをTensorRT化しようとして色々あってTensorRTのビルド環境と一緒に環境作りたくなったのでDockerfileとscriptを作ってgitにpushしてみた。 github.com はまったことや注意点を列挙したい。 pycudaより前にnumpyのインストールが必要 set…
とあるディープラーニングモデルをONNXに変換してTensorRTで動かそうとしたらInternal Errorが出るのでNVIDIAさんのフォーラムに凸ってみた。 該当スレッドはここ。 モデルに関する簡単な説明 まずはONNXのResizeオペレータとSliceオペレータについて。 Resi…
やりたかったこと PyTorchモデルをONNXファイルにexportしたい モデルにはカスタムオペレータを含む カスタムオペレータの実装は存在しない(該当部分は推論不能) カスタムオペレータはONNXでそれらしきop_typeを持つノードで出力してくれればOK やってみた…
Axial-DeepLab (ECCV 2020, Spotlight、arXiv:2003.07853)の論文1を読んでいて、Axial-Attentionが具体的にどんなものなのかよく分からなかったので、色々調べたり著者実装2を自分で実行してみたりして「こんな感じかなぁ」という認識に至ったので内容をメモ…
前回の続き?のような何か。 maminus.hatenadiary.org 今回やったこと ROCm3.5 Docker環境 PyTorchをmasterブランチでビルド torchvisionをmasterブランチでビルド 上記に伴い公式にバグ報告 前回同様PyTorch版EfficientDet1で動作確認 前回からの変化点を中…
自分用のメモ OpenCV公式のIssue1にある通り、cv::fisheye::initUndistortRectifyMap()の実装にバグがあるような気がする。x、yの値が0〜size.width、0〜size.heightになっているが、uvの計算式は-1.0〜+1.0?の範囲を想定しているように見える。 for( int i…
PyTorch版EfficientDet1のカメラで撮影した画像に推論結果を重畳してくれるデモをROCm環境で動かしたので手順などをメモ。 環境 Radeon RX 580 Ubuntu 18.04.4 LTS(ホスト側) dockerイメージ Docker Hubでrocm/pytorchの中からそれっぽいのを選択。 Ubuntu…
前回作ったなんちゃってライブラリを改良?したので報告。 maminus.hatenadiary.org 前回はライブラリをpip install .すらできなかった。 こんなエラーになる。 $ pip install . Processing /home/maminus/python3.6/ommle ERROR: Command errored out with …
先日記事にしたこれを実装してみた。 maminus.hatenadiary.org ソースコード GitHubに上げました。まともな?ライブラリを作るの初めてなので何か間違ってるかも・・・(特にPipenv自信なし。pip install も直接gitを指定できなかった。たぶんどこか間違って…
普段適当にfloat32やfloat16使ってるけど、適当すぎてたまに困るので勉強のために机上での考察とプログラムを動かして検証してみた。 オーバーフロー、アンダーフロー 指数部が表現可能な範囲外を超えるケース float32なら指数が+127を超えるとオーバーフロ…
忘れないように自分用のメモ。 やりたいこと ONNXモデルを使って推論をする時に最終出力ではなく中間ノードの出力がほしい アイデア 2フェーズに分けて処理する 第一フェーズでは中間ノードの出力にShapeノード+出力ノードを接続する make_node('Shape', i…
CUDAとOpenCLでスレッド同士の通信でどうするんだっけ?と思って調べたことを自分用にメモ。 AMD(OpenCL)はshuffleがなさそう retval = sub_group_broadcast(value, thread_id)がある 特定の1つのthread_idからWavefront全体に値をわたせる 隣のスレッドと…
やったこと YUY2出力可能なUSBカメラをLinuxに接続 ffmpegでRAW画像キャプチャしてファイル保存 Pythonからnumpyで読み込み+OpenCVでRGBへ変換 正確にはBGRにしてファイル保存 キャプチャ(コマンドライン) $ ffmpeg -f v4l2 -input_format yuyv422 -video…
完全に自分用のメモ。KerasでLeakyReLUを使おうとしたら怒られたので正しい(?)書き方をメモしておく。 環境 Keras 2.2.2 plaidml 0.3.5 Python 3.6.4 Windows 10 Pro 警告を食らったコード import plaidml.keras plaidml.keras.install_backend() from kera…
Jetson AGX XavierにTensorFlowとJupyter notebookをインストールしたのでメモ。 基本的に公式サイト*1とフォーラム*2に書いてある通り。 前提 JetPack-4.0インストール済みの状態から始める インストール # 熱くなるのでファン全開で冷やす ubuntu@jetson-0…
Jetson AGX Xavier、早期注文が可能になったのでさっそく買ってみた。不在だった荷物の引き取りに手間取ったので今日受け取ったけど、9/11に到着したみたい。 [2018/09/15 02:15追記]なんかGTC Japan以降、名称に「AGX」がつくようになったらしい。JetPackの…
自分用のメモ。Pythonでlistにデータを入れてnumpyみたいにインデックスをリストでわたして取り出したいと思ったので作ってみた。実装はこちら。 from collections import UserList #class FancyIndexingList(list): 2020/02/03修正。UserListを継承すべき c…
OpenCV 3.4.0での話。OpenCL有効化済みのOpenCVをAMD GPU環境で実行。OSはWin10。以下のソースコードで行列積を計算しようとしたら結果がぐちゃぐちゃになっていた。 ソースコード #include <opencv2/core.hpp> #include <iostream> int main(void) { constexpr int input_size = 4; // </iostream></opencv2/core.hpp>…
記事タイトル間違ってません clpy*1というcupyをベースに?バックエンドをOpenCLにしたライブラリが出ていたのでさっそくMinGWでビルドしてみた。 環境 前回と一緒 Windows10 pro 64bit Anaconda3 5.1.0 pip 9.0.1 MinGW w64 7.3.0 clpy 2.1.0a0 clpyはGitHu…
pyopenclをpip installしようとしたら、cl.exeを要求されてC++ Build Tools入れるのが面倒なので軽く絶望したけど、なんやかんやでMinGWでのビルドに成功したのでメモ。 環境 Windows10 pro 64bit Anaconda3 5.1.0 pip 9.0.1 pyopencl 2018.1.1 MinGW w64 7.…
JetPack3.2が正式リリースされたとのことなので、開発PCをUbuntu16.04、TX2をJetPack3.2に入れなおした。 Chainerはデータごと死んだ環境がまっさらに戻ったので、せっかくなので他のDLフレームワークでも入れて遊ぼうということでTensorFlowはJetsonだとイ…
発端 ChainerCVのチュートリアル*1をJetson TX2で試したところ、「OpenCVが入ってないから処理時間かかるよ」みたいなWarningが表示された。 「OpenCV4Tegra入ってるのでは?」と思って調べてみたところ、Python2からは呼び出せるがPython3からは呼べなかっ…
前回*1につづいて、さらにChainerCVを追加したのでメモ。 手順 ChainerCVをインストールしようとすると、JetsonはPillowをソースコードからビルドしようとするらしくlibjpegとかのヘッダファイルなどが入っていないとエラーになる。こちら*2を参考にして依存…
前回*1は適当に環境構築したらPython2.xになってしまった。今回はTX2にPython3.xを入れてJupyter notebookから使う。もちろんPython3からもChainer、CuPyを使えるようにする。 Python3.x追加 いつの間にかpython3がインストール済みだったので足りないパッケ…
ビルドしたOpenCVでOpenCLが使えるようになったはずなので、実際に試してみた。 ビルド構成 import cv2 print(cv2.getBuildInformation()) 上のコードで出力したビルド構成がこちら。Qtを使っているとモジュールのimportに失敗するのでQtを外している。 Gene…
公式で配布されているOpenCVはOpenCLに対応していないconfigって噂を聞いたので、せっかくだからビルドしてみた。しにそうになったので記録として残す。 Qtがなくても一部機能制限されるだけで動くからQtのビルドにチャレンジするのはやめよう(戒め) 環境、…