Метод, аналогичный методу TensorFlow mnist.train.next_batch () - PullRequest
0 голосов
/ 12 октября 2019

Приветствия!

У меня есть немного кода TensorFlow (1.14), с которым я экспериментирую, но у меня проблема с загрузкой пакета CSV с диска. У меня есть очень большой набор данных (20G +) CSV, довольно простой:

#,a,b,c,d,e,f....aaaa,aaab,aaac,aaad
0,893745698,3,5,2,893538972,8,5,0...437203988,3,1,1
1,899682698,3,5,2,573538972,8,5,0...922203988,1,1,1

Все значения в CSV являются целочисленными значениями, которые я хочу передать в качестве векторов аналогично mnist.train.next_batch () который, из того, что я вижу, выдает простой нудистый ndarray, такой как:

z_real_dist = np.random.randn(batch_size, z_dim) * 5.
    batch_x, _ = mnist.train.next_batch(batch_size)
sess.run(autoencoder_optimizer, feed_dict={x_input: batch_x, x_target: batch_x})
sess.run(discriminator_optimizer,
    feed_dict={x_input: batch_x, x_target: batch_x, real_distribution: z_real_dist})
sess.run(generator_optimizer, feed_dict={x_input: batch_x, x_target: batch_x})

В этом примере с примером batch_x становится простым ndarray:

>>> batch_x
array([[0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]], dtype=float32)
>>> type(batch_x)
<class 'numpy.ndarray'>
>>> 

Проблема в том, что каждая строка внабор данных CSV имеет ширину более 6000 столбцов, поэтому я должен пакетировать все аналогичным образом, как mnist.train.next_batch (), вот что я придумал до сих пор, но я не могу понять, как объединить дляПример 10 CSV-строк в batch_x ndarray, который ожидает оптимизатор автоэнкодера через feed_dict?

Мой неработающий код:

iter = dataset.make_one_shot_iterator()
for i in range(0, batch_size):
    batch_x = batch_x + nd.array(iter.get_next())
    print(batch_x)
sess.run(autoencoder_optimizer, feed_dict={x_input: batch_x, x_target: batch_x})
sess.run(discriminator_optimizer,
feed_dict={x_input: batch_x, x_target: batch_x, real_distribution: z_real_dist})
sess.run(generator_optimizer, feed_dict={x_input: batch_x, x_target: batch_x})

Полученный таким образом объект, который я создаю, имеет как столбцы, так и векторданные в качестве вывода из итерируемого я думаю:

>>>batch_x
...
ide', <tf.Tensor 'IteratorGetNext_6:5711' shape=(?,) dtype=int32>), ('idf', <tf.Tensor 'IteratorGetNext_6:5712' shape=(?,) dtype=int32>), ('idg', <tf.Tensor 'IteratorGetNext_6:5713' shape=(?,) dtype=int32>), ('idh', <tf.Tensor 'IteratorGetNext_6:5714' shape=(?,) dtype=int32>), ('idi', <tf.Tensor 'IteratorGetNext_6:5715' shape=(?,) dtype=int32>), ('idj', <tf.Tensor 'IteratorGetNext_6:5716' shape=(?,) dtype=int32>), ('idk', <tf.Tensor 'IteratorGetNext_6:5717' shape=(?,) dtype=int32>), ('idl', <tf.Tensor 'IteratorGetNext_6:5718' shape=(?,) dtype=int32>), ('idm', <tf.Tensor 'IteratorGetNext_6:5719' shape=(?,) dtype=int32>), ('idn', <tf.Tensor 'IteratorGetNext_6:5720' shape=(?,) dtype=int32>), ('ido', <tf.Tensor 'IteratorGetNext_6:5721' shape=(?,) dtype=int32>), ('idp', <tf.Tensor 'IteratorGetNext_6:5722' shape=(?,) dtype=int32>), ('idq', <tf.Tensor 'IteratorGetNext_6:5723' shape=(?,) dtype=int32>), ('idr', <tf.Tensor 'IteratorGetNext_6:5724' shape=(?,) dtype=int32>), ('ids', <tf.Tensor 'IteratorGetNext_6:5725' shape=(?,) dtype=int32>), ('idt', <tf.Tensor 'IteratorGetNext_6:5726' shape=(?,) dtype=int32>), ('idu', <tf.Tensor 'IteratorGetNext_6:5727' shape=(?,) dtype=int32>), ('idv', <tf.Tensor 'IteratorGetNext_6:5728' shape=(?,) dtype=int32>), ('

Любая помощь будет здорово, заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...