3

現在、ニューラル ネットワーク ライブラリを構築しています。簡単にするために、オブジェクト グラフとして作成しました。配列ベースのアプローチに移行することによるパフォーマンス上の利点を誰かが定量化できるかどうか疑問に思っています。私が今持っているものは、任意の複雑さに近いネットワークを構築するのに非常にうまく機能します。通常の (バックプロップ) ネットワークとリカレント ネットワークがサポートされています。訓練されたネットワークを配列などの「より単純な」形式に「コンパイル」することを検討しています。

実稼働環境にうまくデプロイされたニューラル ネットワークの構築に関する実際的なアドバイスや経験を誰かが持っているかどうかを確認したかっただけです。最終製品をオブジェクト グラフ ベースではなく配列ベースにするメリットはありますか?

PS メモリ フットプリントは速度ほど重要ではありません。

4

5 に答える 5

3

人々は AI で GPGPU 手法を使い始めており、ニューラル ネットワークを行列形式にすることで、一般的なグラフィックス カードのはるかに高速な行列演算を活用できます。

于 2009-01-24T01:22:46.640 に答える
2

これはすべて、使用している言語に依存します-C派生物を使用していると思います。

私の実装では、オブジェクト グラフのアプローチがはるかに優れていることがわかりました。速度には多少のトレードオフがありますが、メンテナンスの容易さは、オブジェクト ルックアップの呼び出しを上回ります。これはすべて、トレーニング速度を求めているのか、それとも解決速度を求めているのかによって異なります...トレーニング速度が最も心配だと思いますか?

必要に応じて、オブジェクト呼び出しの問題の一部をいつでもマイクロ最適化することができます。

ネットワークをサブネット化するというあなたの二次的な動機を考えると、オブジェクトベースであることがさらに重要だと思います。これにより、作業の一部を簡単に取り出すことができます。

于 2009-01-24T00:40:06.603 に答える
2

どのように実装しても、次のことを決して忘れてはなりません。

最小化ではなく最大化しないようにしてください。

http://xkcd.com/534/

于 2009-01-24T01:49:21.347 に答える
1

しばらく経ちましたが、速度は通常、ニューラル ネットワークのトレーニング中にのみ問題になることを思い出します。

于 2009-01-24T00:39:52.657 に答える
0

私はそのようなライブラリを書いた個人的な経験はありませんが、おそらく学ぶことができるいくつかの人気のあるオープンソース プロジェクトにリンクすることができます. (個人的には、これらの既存のライブラリのいずれかを使用します。)

于 2009-01-24T00:42:14.163 に答える