

Tensorflow初心者です．  
MNISTのチュートリアルをしているところ以下のようなコードでバッチ処理をしています．

[code]

    for _ in range(1000):
    ...   batch_xs, batch_ys = [data.spectral,data.labels], batch_size=1000=mnist.train.next_batch(100)
    ...   sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
    
[/code]

チュートリアルのMNISTのデータセットは  
mnist.train.images (画像データ)  
mnist.train.labels (ラベルデータ)  
となっているので上記のコマンドが可能ですが，他のデータセットに応用したい場合は  
どのようにすればよいでしょうか？

（以下説明が下手ですが具体的に困っている事例です．）  
"mnist.train"までは画像データもラベルデータも同じで最後の'images'と’labels’で違う  
データセットとなっているため，上記コードでは，mnist.train.next_batch(100)のコードで  
実行可能なのだと思います．

自分の生成したデータは，  
datax(画像データ)  
datay（ラベルデータ）  
なのですが，  
data.train.x  
data.train.y  
のように変換する手法がわかりません．


CC BY-SA 3.0
2017-07-31T12:48:39.863
36823
2018-03-25T08:14:53.127
23647
question
python tensorflow
Tensorflow MNISTのチュートリアル（バッチ処理について）


たぶん、mnistのデータセットが特殊で、普通はnumpyかcupyの配列にデータを放り込んでます。  
import numpy as np  
traindata=np.array(data_x)  
的な。どうでしょうか？


CC BY-SA 3.0
2017-08-02T10:42:41.340
36884
2017-08-02T10:42:41.340
22495
36823
answer


mnistのデータセットは下記のようなnumpy形式になっていますので、お持ちのデータも  
同じように[データ数, 画像幅x画像高さ]と[データ数, one hot vector]として  
まとめれば実行できると思います。

mnistではデータ数が55000  
画像幅x画像高さが784（28x28なので）、  
one hot vectorが１０（０から９までの１０クラス分類なので）となってます。

[code]

    In [1]: from tensorflow.examples.tutorials.mnist import input_data
    
    In [2]: mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
    Extracting MNIST_data/train-images-idx3-ubyte.gz
    Extracting MNIST_data/train-labels-idx1-ubyte.gz
    Extracting MNIST_data/t10k-images-idx3-ubyte.gz
    Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
    
    In [3]: mnist.train.images.shape
    Out[3]: (55000, 784)
    
    In [4]: mnist.train.labels.shape
    Out[4]: (55000, 10)
    
[/code]


CC BY-SA 3.0
2017-08-03T13:45:54.560
36908
2017-08-03T13:45:54.560
808
36823
answer