0

私はテンソルフローの初心者です。43 の入力と 1 つの出力を持つデータ セットがあります。ディープ ラーニングを実行するためのデータのミニバッチを作成します。

ここに私の入力があります:

x = tf.placeholder(tf.float32, shape=[None, 43])
y_ = tf.placeholder(tf.float32, shape=[None])

私はmatlabファイルからそれらを供給しています:

train_mat = train_mat["binary_train"].value
feed_dict={x:Train[0:100,0:43] , y_:Train[0:100,43]}

0:100 レコードを呼び出す代わりに、ランダム バッチを使用します。私が見た

tf.train.batch

しかし、それがどのように機能するのかわかりませんでした。どうすればそれができるか教えてください。

ありがとう、アフシン

4

1 に答える 1

0

およびその他のtf.train.batch同様の方法はキューに基づいており、大量のサンプルを非同期で並行してロードするのに最適です。このドキュメントでは、TensorFlow でキューを使用する基本について説明しますファイルからデータを読み取る方法を説明している別のブログもあります。

キューを使用する場合は、placeholderandfeed_dictは不要です。

特定のケースでは、潜在的な解決策は次のようになります。

from tensorflow.python.training import queue_runner

# capacity and min_after_dequeue could be set according to your case
q = tf.RandomShuffleQueue(1000, 500, tf.float32)
enq = q.enqueue_many(train_mat)
queue_runner.add_queue_runner(queue_runner.QueueRunner(q, [enq]))

deq = q.dequeue()
input = deq[:, 0:43]
label = deq[:, 43]

x, y_ = tf.train.batch([input, label], 100)

# then you can use x and y_ directly in inference and train process.

上記のコードは、問題で提供された情報が十分でないため、いくつかの仮説に基づいています。しかし、このコードが何らかの形であなたにインスピレーションを与えてくれることを願っています。

于 2016-08-16T03:47:33.627 に答える