1

ニューラル ネットワークに Tensorflow (バージョン 1.7.0 および Python 3.5) を使用していますが、tf.train.batch()関数の使用に問題があります。ここを参照してください。

私のデータセットの次元は次のとおりです。

テスト画像 (100000、900) テスト ラベル (100000、10)

したがって、サイズが 30 x 30 ピクセルのテスト画像が 100000 個あります。ラベルは、サイズが 100000 x 10 のワンホット マトリックスです。

import numpy as np
train_images = np.load("train_images.npy")
train_labels = np.load("train_labels.npy")

ここで、サイズ 100 のランダム バッチを取得し、関数を使用したいと考えていますtf.train.batch()

コードで次のように関数を使用します。

# Launch the graph
with tf.Session() as sess:
    sess.run(init)
    num_examples=100000
    batch_size = 100

    # Training cycle
    for epoch in range(training_epochs):
        total_batch = int(num_examples/batch_size)
        # Loop over all batches
        for i in range(total_batch):
            batch_x, batch_y = tf.train.batch(
                [train_images, train_labels],
                batch_size=batch_size,
                allow_smaller_final_batch=True,
                )

            _, c = sess.run([optimizer, cost], feed_dict={x: batch_x, y:batch_y})

これを行うと、次のエラーが発生します。

    Traceback (most recent call last):
    File "my_network.py", line 124, in <module>
    _, c = sess.run([optimizer, cost], feed_dict={x: batch_x, y:batch_y})
    File "/home/samuel/tensorflow/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 905, in run
    run_metadata_ptr)
    File "/home/samuel/tensorflow/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1091, in _run
    'feed with key ' + str(feed) + '.')
    TypeError: The value of a feed cannot be a tf.Tensor object. 
    Acceptable feed values include Python scalars, strings, lists, 
    numpy ndarrays, or TensorHandles.For reference, the tensor object was
    Tensor("batch:0", shape=(?, 900), dtype=uint8) which was passed to the
feed with key Tensor("Placeholder:0", shape=(?, 900), dtype=float32).

tf.train.batch()ネットワークが機能するようにするにはどうすればよいですか? ミニバッチを作成するには、別の方法を使用する必要がありますか?

4

1 に答える 1