ジュリアのさまざまなディープラーニングフレームワーク
概要
- 最終更新日: 2022年11月22日
Juliaの代表的なディープラーニングフレームワークには、Flux.jl
がある。これと一緒に、他のフレームワークであるKnet.jl
とLux.jl
も簡単に紹介する。
説明
Flux[フラックス]
Juliaの公式ディープラーニングフレームワークだ。GraphNeuralNetworks.jl
やSciMLの様々なパッケージがフラックスを基に実装されている。Fluxの機能や特徴はまだTensorFlowやPyTorchに比べて不足しているが、時間が経つにつれていずれそれらと競うかもしれない。ドキュメンテーションを見ても、初めは貧弱で役に立たないレベルだったが、時間が経つにつれて徐々に改善されている。
だが、実際のフラックスの弱点はドキュメンテーションや少ないユーザーではない。もちろん、両方とも優れていれば良いが、研究者の立場からは、どうせ他人がやったことだけを見て使うわけにはいかず、自分で勉強して使わなければならない。個人的には、まだ2022-11-22変更可能な配列をサポートしていない点が最大の欠点と感じる。これは、望む作業を実装するのを難しくさせ、下で紹介する2つのフレームワークも同様の問題がある。
Knet[ケイネット]
韓国とは関係ない。コチ大学で実装された。チュートリアル、ドキュメンテーション、例、ベンチマークがよく整理されているという点が大きな利点だ。この点から、初めて学ぶ場合は、FluxよりもKnetの方が良いとも思える。
Lux
コンパイラーや自動微分に親和性があり、純粋な関数だけで実装されたディープラーニングフレームワークだ。ウェブサイトの説明を読んでも、上記の2つのフレームワークと比べて特に優れている点がよくわからない。Fluxと一緒に使うことを推奨しているようだ。