opsetのversionごとのOperation

以下のheaderに各Versionごとに定義されてるOperationが記述されてる。 github.com

WSLでapt updateするときの対処

sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' sudo bash -c 'echo "nameserver 8.8.4.4" >> /etc/resolv.conf' github.com

DirectML とDeepLearning (1)

onnxruntimeのcommitを見てたらDirectML(DML)対応のMergeを見つけた。 github.com DMLを知らなかったので調べてみたらDirectX12を利用した機械学習LIBで、Intel内蔵GPUやNvidia製のGPUなどDirectX12対応のデバイスでDeepLearning演算ができるライブラリで…

DLフレームワークの量子化リンク集

PyTorch pytorch.org Introduction to Quantization on PyTorch Introduction to Quantization on PyTorch | PyTorch Tensorflow arxiv.org www.tensorflow.org onnxruntime www.onnxruntime.ai

Optimize your Teneosorflow Lite models

Tensorflow Lite Optimizationの発表まとめ GoogleIOで発表のあったTensorflow Lite Optimizationに関する発表に関してざっくりまとめてみました。 www.youtube.com デプロイまでの流れ Quantization エッジデバイスでの推論向けにモデルを小さくしたり、レ…

DeepLearningフレームワークの推論時間の観察

pytorchで定義されたモデルをonnx, tflite形式へと変換し推論の実行時間を計測した。 pytorch->onnx->tensorflow->tfliteへの変換は以下の変換処理をまとめたライブラリを利用。 また、モデルのconvertする際には量子化等は適用しておらず、fp32のまま推論。…

【golang】mapのvalueでsort

key, valueを保持する構造体を作って、sort interfaceを満たすように Len(), Swap(), Less()メソッドを実装してあげる。 これはstackoverflowに載っていた。 // A data structure to hold key/value pairs type Pair struct { Key string Value int } // A s…

第7回 MLOps勉強会に参加してみた

MLOpsに興味があったので参加してみた。今回初参加。 mlops.connpass.com 下記は参加したときのメモ。メモなので正確性はないです。 Data CentricなMLOps概論 Data-centriはAndrew先生が提唱し始めた。今回はAndrew先生の提唱している内容を中心に話す。 Mod…

onnxruntimeのグラフ最適化1

onnxruntimeではどんなグラフ最適化がされているか観てみる。 概要はonnxrutimeのドキュメントにまとまっている。 Graph Optimization Levels ここをみてみるとグラフ最適化は以下の3つのレベルに分けられるとある。 Basic 冗長なノードや計算を削除する操…

Ubuntuでイヤホンが認識しなくなる問題

たまによく起こる Ubuntuでイヤホンを抜き差ししていると、たまにイヤホンを認識しなくなる。 Outputdeviceにイヤホンのインターフェースが表示されなくなる。 これの対処法。 pulseaudio pulseAudioで以下のようにHD Audio Controllerの設定をする。 pulsea…

Jetson Xavierの全CPUのonline化

下書きにあって公開されてなかったから、とりあえず公開しておく。 CPUコアの設定 全CPUのonline化 8コア搭載されているが、デフォルトだと4コアしかonlineになっていなかった. ➜ ~ sudo /usr/bin/jetson_clocks --show SOC family:tegra194 Machine:Jetson…

Swin Transformerってのがあるんだと(object detectionのSOTAモデル)

短くてもいいから、気軽にブログ書くようにしていかないとやらないと気づいた。きれいに書くことより、とりあえず書く。 最近のobject detectionですごいモデルって何なのか調べていたら出会った。 code with paperのobject detection on COCOを見てみると下…

Optunaの最適化手法

Optunaの最適化手法 最近Optunaを触る機会が増えてきたので、Optunaを通して最適化手法に関して勉強していきたい。 まずはOptunaのサポートしている最適化手法に何があるのか見てみる。 Optunaがサポートしている最適化手法はいくつかあり、Sampler classで…

ALBert (A Lite BERT) 論文の序文

arxiv.org Abstruct 自然言語表現の事前トレーニング時にモデルを大きくすることは、多くの場合精度を向上させます。 ただし、GPU/TPUのメモリ制限や予期せぬ精度劣化によってモデルを大きくすることが難しくなっていきています。 この問題に対処するために…

Pandasを並列動作させて高速化(Modin)

Modin pythonでTableデータを扱おうと思うとPandasを利用することになると思いますが,Pandasでの操作を遅く感じることが多々あります. どうすれば簡単に早くなるか調べていたところ,Modinというモジュールに出会いました. 自分の備忘録としてModinについ…

XGBoostでマルチGPUを利用する

XGBoostでもDeepLearning FWのようにマルチGPUを利用することができます。 分散のための下回りはdaskが担当し、daskを利用するためにxgboostのdask用wrapper(dask-xgboost)を利用します。 利用方法としてはPandas DataFrameをdask形式に変換して、dask-xgboo…

LightGBM: A Highly Efficient Gradient Boosting Decision Tree

論文を自分なりにまとめる。(未完、ほぼ日本語訳かも) papers.nips.cc Abstruct Gradient Boosting Decision Tree(GBDT)は機械学習で人気のアルゴリズムであり、 XGBoost, pGBRTなどの実装があるが、まだまだ演算効率やスケーラビリティは良くない。 分岐…

Efficient Neural Architecture Search via Parameter Sharing (ENAS)

はじめに 最近DeepLearningのモデル構築もDeepLearningで行う手法(AutoML)が流行っています。 AutoMLの一つであるNAS(Neural Architechture Search)は、2016年にGoogleから発表されました。強化学習を利用してアーキテクチャ、ハイパラメータの最適化…

GoでDeepLearning

GoでMnistを使ってDeep Learning 昔(2018年10月27日)Qiitaに書いた記事の転載です 現在、Deep Leanig向けのFWとしてはTensorflow、Pytorchなどが有名です. これらのFWのインターフェースはPython、内部実装はC++になっていて,ユーザーは使いやすくかつ高速…

leapmindのblue-oil メモ2

dlk graphのグラフレベルの最適化で行っていることをリストアップしてみた. 中途半端だけど、、、追記するかも pass_remove_identities identity node(何もしないnode)を削除する. pass_transpose すべてのnodeのshapeをNHWCに変更 pass_propagate_quant…

leapmindのblue-oil メモ1(TFグラフ変換)

何者か知らなかったのでちょっとだけ覗いてみた。 github.com blueoilにはlmnetとdlkというものがあった。 lmnet lmnetはTensorflowによる学習や推論をサポートしている。 分散学習するかどうかもconfig_fileに設定できてhorovodを利用している。 dlk Tensor…

glow(pytorch) メモ

graphレベルの最適化処理まわりの情報 ドキュメント ソース void glow::optimize(Function *F, const CompilationOptions &opts) { // Optimize may be called after backend specific transformations and some // nodes may have become unused. It is a g…

horovodの機能追加(1)

horovodの機能追加 最近のhorovodの機能追加について fp16の対応 fp16への変換はtf.castを利用.またOpenMPIはfp16対応していないのでhorovod内でfp16用のMPI custum opを作成 eager mode対応 tensorflowのeager modeで動作します refactoring codeのリファ…

pytorch のgo binding (1)

pytorchはc++のインターフェースがあるので,それを利用する形です. 今の所はmnistで簡単な演算だけ動きます. github.com mnist sample package main import "github.com/kuroko1t/gotorch/go" import "fmt" func main() { model := torch.ModelInit() fc1…

Mesh Tensorflowについて勉強会で発表してきた

勉強会 Tensorflow内部構造勉強会というTensorflowに関する勉強会を会社の人達と開催しました. 第1回 TensorFlow内部構造 勉強会 - connpass 自分は「Mesh Tensorflow」に関して発表しました.他の人達はTensorflowの最適化や、tensorflowのapiを作り方、bf…

DeepLearningで使われるallreduceのアルゴリズム 試して理解

先日書いた記事で書いたallreduceを簡単に実装してみて,理解できているか試した. kuroko1t.hatenablog.com コードはここ. (2D-Torus all-reduceとdouble binary treesはまだ..) hierachical 最初のグループ内のReduce用にMPI_Comm_splitを利用してcom…

DeepLearningで使われるallreduceのアルゴリズム

DeepLearningで利用されているallreduceのアルゴリズム allreduceのアルゴリズムについて調べたかったので, 自分の観測できた範囲でまとめて行こうと思います. その道のプロではないので,コメントなど頂けると幸いです. ring-all-reduce baiduが提唱した…