-2

私はちょうどDjangoを使ってユーザーの入力に基づいて映画を推薦するAPIを作っています。各ユーザーからの10の入力ごとに深い学習機能を実行するように設計されています。この10個の入力ごとに、出力に約10秒かかります。 Googleやamazonはリアルタイムデータの更新を遅滞なくどのように行うことができますか?ディープ学習はどのようにリアルタイムで動作しますか?

答えて

2

を学習すると、深いモデルがあります。これが通常のフィードフォワードモデルであると仮定し、K(奥行き)行列乗算を実行するだけです。畳み込みレイヤの場合、これははるかに多くなりますが、依然として行列乗算です。これらの操作はすべてと非常に単純で、並列化するです。特に、それらをGPUで実行すると、〜20倍の向上が得られます。多くのコア/ cpus /マシンで計算を分散できるテンソルフローを使うことも同じように動作します。また、いくつかの行列の希薄性を利用して小さなネットを訓練するような他の最適化も可能です(多くのニューロンがゼロを生成し、スパース行列が現れるなど)。

10入力を処理するのに10秒かかるネットワークは恐ろしい実装のように聞こえる、またはネットワークが実際に巨大ななので、一般的な最適化スキームに進む前に、現在のコードが問題ないことを確認してください。たとえば、テンソルフローなどを使用する場合は、の前に、のデータをプッシュする前に、ライブラリのロード、セッションの開始、セッションの実行などの時間がかかることが重要です。

+0

申し訳ありませんが、それ。私はTensorFlowで後で試してみる。私の主な質問は、ユーザーにそのデータベースへのアクセスを許可しながら、これらのすべてのデータを新しいユーザー入力と同時に更新(トレーニング)する方法がわからないことです。どんなトラブル(スローダウンなど)もせずにデータを更新するための深い学習訓練を自動化するにはどうすればよいですか? –

+0

これはまったく異なる質問です。通常、これは2つの別々のものです。実際に予測に使用されているモデルが1つあり(Aと呼ぶことができます)、トレーニングされている別のモデル(B)があり、これらのモデルを時々同期させるだけです(BをAにコピーする)。両方のものを別々のマシンなどに置いて、この方法では、モデルが「並行して」トレーニングされているにもかかわらず、減速はありません。そのようなアプローチの重要な利点は、新しく訓練されたモデルが十分なものであるかどうかをテストして(Aにコピーする前に) – lejlot

+0

なので、私は何かGoogleのマシンを使用してマシンAから予測を提供しながら計算します。それらのマシンは、私が10秒で前のものに関連する他のものを検索しようとすると、私は更新された予測を与えるためにお互いに同期するのに十分速いですか?申し訳ありません、私はまだ初心者です。 –

関連する問題