2015-12-18 21 views
12

TensorFlowは、データを格納するのに最適な方法です。これは、例えば、MNISTデータをこの例に格納するために使用される。TensorFlowは、numpy配列からデータセットを作成します。

>>> mnist 
<tensorflow.examples.tutorials.mnist.input_data.read_data_sets.<locals>.DataSets object at 0x10f930630> 

入力と出力のnumpy配列があるとします。

>>> x = np.random.normal(0,1, (100, 10)) 
>>> y = np.random.randint(0, 2, 100) 

tfデータセットでどのように変換できますか?

は私がnext_batch

答えて

8

DataSetオブジェクトがMNISTチュートリアルの一部だけではなく、メインTensorFlowライブラリであるように関数を使用します。

それがここで定義されている場所あなたが見ることができますが:

GitHub Link

コンストラクタは、画像を受け入れ、あなたがそこに独自の値を渡すことができますので、おそらく引数にラベルを付けます。

+0

ありがとう、この容疑者がいました。主な図書館の一環として役立つツールだと思う。 numpyアレイ上の任意のバッチ操作をAFAIKするには、データのコピーを実行する必要があります。これはより遅いアルゴリズムにつながる可能性があります – Donbeo

+0

TensorFlowはコアの数学ライブラリにすぎないはずですが、他のオープンソースライブラリは機械学習に使用される抽象的な抽象化を提供できます。 Pylearn2のようなライブラリを持つTheanoに似ています。コピー操作を避けたい場合は、プレースホルダを供給するのではなく、キューベースのデータアクセス機能を使用できます。 –

+0

私はポイントを参照してください。どうもありがとう! – Donbeo

0

代替手段として、ファンクションを使用してデータのバッチを作成し、同時にtf.placeholderの使用を排除することができます。詳細については、ドキュメントを参照してください。

>>> images = tf.constant(X, dtype=tf.float32) # X is a np.array 
>>> labels = tf.constant(y, dtype=tf.int32) # y is a np.array 
>>> batch_images, batch_labels = tf.train.batch([images, labels], batch_size=32, capacity=300, enqueue_many=True) 
関連する問題