Необходимо конвертировать Numpy ArrayS в один адаптер DatasetV1. - PullRequest
0 голосов
/ 23 февраля 2020

На данный момент я сгенерировал numpy массивов для X и y (данные и метки) и пытаюсь передать их в код cGAN thisisRon

https://github.com/thisisiron/TF2-GAN/tree/master/cgan

Часть его кода (разработанного для MNIST):

for images, labels in train_dataset:
            gen_loss, disc_loss = train_step(images, labels)

            total_gen_loss += gen_loss
            total_disc_loss += disc_loss

Из того, что я увидел из его кода, train_dataset - это datasetV1adapter (для MNIST). Выполнение этого кода с train_dataset дало мне ошибку, как показано ниже

слишком много значений для распаковки (ожидается 2) Это похоже на то, что мой ввод был nmpy Array X, а не набором данныхV1Adapter

To Чтобы обойти это, я попытался создать собственную тренировку l oop вместо

length=len(train_dataset)

for i in range(0,length):
          images=X_tiny[i]
          labels=y_labels_one_hot[i]
          gen_loss, disc_loss=train_step(images,labels)
          total_gen_loss +=gen_loss
          total_disc_loss +=disc_loss

Это дает мне ошибку

Input 0 of layer dense_49 is incompatible with the layer: : expected min_ndim=2, found ndim=1. Full shape received: [10]

, которая происходит из той же точки, хотя я и не действительно не знаю, что это значит. Или почему он появляется

Я твердо верю, что вместо этого мне нужно использовать datasetV1Adapter, но не знаю, как это сделать. Заранее спасибо

Правка, я предположил, что ошибка произошла исключительно из-за проблемы адаптера V1 без набора данных.

Я сделал:

train_dataset = tf.data.Dataset.from_tensor_slices((X, y_one_hot))
train_dataset = train_dataset.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)

Давая мне:

<BatchDataset shapes: ((None, 10, 10, 3), (None, 10)), types: (tf.uint8, tf.float32)>

Dimension 0 in both shapes must be equal, but are 100 and 32. Shapes are [100] and [32]. for 'generator_24/concat' (op: 'ConcatV2') with input shapes: [100,256], [32,256], [] and with computed input tensors: input[2] = <-1>.

Я не могу найти место, где я дал 32 в качестве входа. Так что я очень смущен

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