通常の実行オプティマイザopが、我々はいくつかのモデルのトレーニング可能パラメータを更新するための入力として、オプティマイザの操作を実行コマンドを呼び出しますGPUメモリに収まらない。 このタスクを分割して、大きなバッチサイズを処理するにはどうすればよいですか?tensorflow大きなバッチ
0
A
答えて
0
これは主にGPUのメモリサイズに依存します。ただし、モデルとその必要な操作(つまり確率の予測)とともにデータセット全体を合わせるのは難しいです。したがって、異なる視点でバッチ処理を考える必要があります。代わりにtrain_step
へのごfeed_dict
としてX
とy
を使用しての
# Model Definition
X = tf.placeholder(tf.float32, shape=[None, DIM,DIM,3], name='X')
y = tf.placeholder(tf.float32, shape=[None, N_CLASSES], name='y')
...
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
...
# Training your model
sess.run([train_step], feed_dict={X: X_batch, y: y_batch})
:私はあなたのコードは、これらの線に沿って行くと仮定します。すべてのバッチ(つまり、データセット全体)に対してcross_entropy
を蓄積するだけです。その後、train_step
を1回実行することができます。例:
cross_entropy_all = []
for X_batch, y_batch in batches_generator():
cross_entropy_all += sess.run([cross_entropy], feed_dict={X: X_batch, y: y_batch})
# Numpy or Tensorflow equivalent for `vstack`
cross_entropy_all = np.vstack(cross_entropy_all)
# Run the optimizer on the entire dataset (not just on a specific batch)
sess.run([train_step], feed_dict={cross_entropy: cross_entropy_all})
これは、GPUをメモリから使い果たすことなく目標を達成する必要があります。提案されたアプローチは、すべてのクロスエントロピーに対して最適化ステップを実行する。したがって、XとY(これはすでに最適化ステップに供給されているため、cross_entropy
を生成するために使用/必要です)を送る必要はありません。
関連する問題
- 1. Tensorflowバッチ引数
- 2. Tensorflowバッチ標準化
- 3. バッチ正規化 - Tensorflow
- 4. バッチ・4DテンソルTensorflowインデクシング
- 5. TensorflowのRNNとバッチ
- 6. TensorFlowバッチの画像操作
- 7. TensorFlowのバッチ正規化
- 8. CassandraバッチInvalidQueryException - バッチが大きすぎます
- 9. 大きなスクリプトを小さなバッチに分割する
- 10. Tensorflowトレーニングデータをバッチに分割する
- 11. Tensorflow - データセットをバッチする方法
- 12. 最大プールグラジエントエラー(Tensorflow 0.9rc0)
- 13. Tensorflowバッチ処理を行わない複数のサンプル
- 14. 大きなSQLコードからSQLバッチを作成する
- 15. TensorFlow PoolAllocator膨大な数のリクエスト
- 16. Tensorflowで大きなデータセットを使用する
- 17. Tensorflowグラフが大きくなりすぎる
- 18. Tensorflowで大きなデキューされた変数を再利用
- 19. TensorFlow - 予測できない
- 20. 4F画像バッチでTensorFlow "tf.image"関数を使用する
- 21. 分類のためにTensorflowのバッチにデータを分割
- 22. Tensorflow:イメージテンソルのリストからバッチを作成する
- 23. TensorFlow LSTM:バッチ処理と状態についての混乱
- 24. バッチ=文章レベルの言語モデルのTensorFlowリセット状態
- 25. Tensorflowバッチ正規化を推論に適用する方法
- 26. バッチ作成時にTensorflowが画像とラベルを混ぜる
- 27. Tensorflow - バッチ内のLSTM状態の再利用
- 28. Tensorflowを使用した非画像データセットのバッチ処理
- 29. TensorFlowのmodel.evaluate結果のバッチの合計を取得する
- 30. TensorFlow:次のバッチ(ステートフルLSTM)のLSTM状態を覚えている