私は図書館に良い手を差し伸べます

かなり前の2008年に論文を書いていたとき、画像認識の問題に畳み込みニューラルネットワークを使用するトピックに興味がありました。 当時、彼らは現在ほど人気が​​なく、既製のライブラリを見つける試みは何にもつながりませんでした-Lush(畳み込みネットワークの作者であるJan LeCunによって作成された言語)には実装しかありませんでした。 次に、Neural Network Toolboxを使用してMatlabに実装できると考えました。 しかし、このツールボックスのフレームワーク内で共有ウェイトを実装することは不可能です。 そして、独自の実装を作成することが決定されました。



最初は、きれいなmatlabで作成されました。 後で、CUDAに順方向および逆方向の配布機能を実装しました。 このバージョンはMatlabcentralにあり、今でも月に162回ダウンロードされています。

ちなみに、これはインターネット上のCUDA上の畳み込みネットワークの最初のバージョンでした。

画像



この実装を使用して、画像認識でニューラルネットワークを使用する投稿書きました。



トピックへの関心が非常に大きいことに気づいたので、ライブラリを書き直し、C ++ / CUDAで完全に作成することにしました。 そこでCudaCnnがありました 。 実際のところ、私はすでにこの開発を空き時間に行っています。 その後、仕事を変えて、オープンソース開発を行う能力が非常に制限されました。



ライブラリでの作業の開始以来、畳み込みニューラルネットワークとディープラーニングのトピックは非常に人気があります。 Jeffrey HintonのチームがCUDA(Alex Kryzhevskyによって書かれた)での畳み込みネットワークの実装を使用して、競合の大規模視覚認識チャレンジの競合他社から大きなマージンを獲得した後、特に人気が急上昇しました。 現在、Googleはこのテクノロジーを使用して写真を検索しています。



現在、私のライブラリはbigbucketホストされており 、月に約130人が説明ページにアクセスしています。

画像

もちろん、これはブログにはかなり適していますが、研究者の狭いサークル向けに設計された非常に特殊なライブラリには、それほど多くはありません。 ところで、米国と中国からの訪問の大部分。 さらに、ユーザーは定期的に何かを追加または修正するように私に書いてくれますが、私はいつもそれらに答える時間がありません。



その結果、次の機能と特性を備えた畳み込み(および完全に接続された)ニューラルネットワークの学習機能を実装するライブラリがあります。



取り組む価値のあるものもあります。 特に、CPUのコードは速度が最適化されていないため、CUDAコードも開発する必要が多く、doxygenのドキュメントが損なわれることはありません。



前述したように、現時点ではライブラリをサポートする時間も機会もないので、誰かがその開発に参加することに興味があるなら、あらゆる種類の支援を提供する準備ができています。 オープンソースプロジェクトに参加し、機械学習の分野で経験を積み、タスクにディープラーニング技術を適用し、CUDA開発の経験を積むことを望んでいる人に役立つと思います。



興味があれば、PMに書いてください。



PS私はこの機会に、 機械学習+ビッグデータに関連して当社で最近オープンした空席を促進します



All Articles