githubコードから、MatMul opは分割された行列をサポートしていないようです。複数のノードに分散された2つの巨大な行列の乗算をサポートするテンソルフローのツールはありますか?テンソルフローで分散行列乗算を既存に実装していますか?
答えて
TensorFlowには、複数のマシン間で計算を分散する機能が組み込まれています。 TensorFlowクラスタを設定する方法を理解するために、配布されたTensorFlowドキュメントを読むことをお勧めします。
クラスタがセットアップされたら、問題のパーティションを決めることができ、with tf.device
を使用して、各作業者を仕事のパーティションに割り当てることができます。
たとえば、a*a'
を掛け、中間の乗算を2人の労働者に均等に分割し、3番目の集計結果を得たいとします。
あなたはこのような何かをするだろう:
with tf.device(worker0):
# load a1
b1 = tf.matmul(a1, tf.transpose(a1))
with tf.device(worker1):
# load a2
b2 = tf.matmul(a2, tf.transpose(a2))
with tf.device(worker2):
result = b1+b2
load a1
部分はあなたの行列が格納されているどのように大きなに依存します。それが巨大ならば、恐らくload a1
はディスクからそれを読むでしょう。メモリに収まる場合は、a1=a[:n/2,:]
を使用してパーティションを取得することができます
ありがとうYaroslav! –
私は自分で分散行列の乗算を実装できることを理解します。実際には、2つの異なる巨大な行列を実装したい場合、並列アルゴリズムの多くのオプションがあります。私のポストは主に、Googleがテンソルフローの分散行列乗算の実装をオープンソース化しているかどうかを尋ねています。今私はないと思う。 NNトレーニングでメモリを超える大きなモデルを保存することはできないと仮定しているため、このような驚くべき私のことです。 –
ここ数年の傾向は、ニューラルネットワークを小さくすることでした。 IEの100億パラメータモデルから始まり、YouTubeのビデオの中で猫がはるかに高精度で、はるかに小さく、携帯電話にフィットする何百万ものパラメータネットワークを見つけました。 –
- 1. テンソルフロー行列乗算
- 2. Strassen行列の乗算の実装
- 3. 分割行列乗算
- 4. Kerasで行列乗算を実装する方法は?
- 5. データを保存する分散テンソルフロー
- 6. テンソルフロー行列乗算によるGPUのテスト
- 7. 既存のデータグリッド行にドラッグ&ドロップオプションを実装しますか?
- 8. MPI行列の乗算を実行しようとしています
- 9. SQL分割乗算の実行順序
- 10. テンソルフロー分散訓練とエスティメーター+実験フレームワーク
- 11. LU分解の行列乗算問題?
- 12. 行列乗算
- 13. Macに分散したテンソルフローをインストール
- 14. 分散相互相関行列計算
- 15. 計算共分散行列式
- 16. チェーン行列乗算:乗算アルゴリズムが動作しない
- 17. Java BigDecimalでのKaratsuba乗算の実装
- 18. SSE行列 - 行列乗算
- 19. 標準偏差を計算するために分散実装が適用されていますか?
- 20. CUDAによる行列乗算、長い実行時間
- 21. 乗算行列パイソン
- 22. Accord.NET行列乗算
- 23. 行列の乗算
- 24. 行列乗算フロート
- 25. 行列乗算プロローグ
- 26. 3by3行列乗算
- 27. 実装方法j2eeで長期実行分散トランザクション
- 28. Kerasでの行列乗算
- 29. forループのない共分散行列を計算する
- 30. 行列乗算を実行中にメモリエラーが発生する
この回答を確認してください。 [リンク](http://stackoverflow.com/questions/35564253/tensorflow-element-wise-matrix-multiplication?rq=1)私はこの答えがあなたを助けることができると思います。 –
これは関連していませんが、あなたのコメントには大変感謝しています –