1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OpenImageDenoise の実装メモ

Posted at

  • oneDNN(mkl-dnn)が必須です.
    • oneDNN を使って推論を実行しているため
  • TBB が必須です.
  • ISPC が必須です(一部フィルタなどの処理が ispc で記述されているため
  • ソースコード自体は実質 x86 限定です.

ネットワークモデル

ネットワークは encoder/decoder モデルです.

ネットワークレイヤーは Conv2d, Pool2d, Upsample, Concat しか利用していません.

training フォルダに, pytorch でのモデル定義がありますのでそちらを参考にしましょう.

weight データ

TZA(Tensor Archive)であります. 特に複雑なものではないです.
パースはこちら.

oidn では, ビルド時に一度 python で .tza ファイルを .cpp に変換してライブラリに埋め込むようになっています.
(ので .cpp が巨大).

データのレイアウトは文字列であります. "oihw" など(ML 系の記法なので, あとのほうがメモリ上の次元が小さい)

実行

unet.cpp でネットワークのビルドと実行をしています.

処理の効率化を図るため, oneDNN の blocked layout でタイルで処理するようにしています.

画像のタイル化のために, input_reorder, output_reorder が用意されています.

データのレイアウトは NCHW(pytorch 系)となっています(のはず)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?