Я пытаюсь реализовать cDCGAN. В моем наборе данных 2350 классов num_classes, batch_size равно 100, размер изображения 64 (строки = 64, столбцы = 64, каналы = 1), z_shape равен 100. Мои заполнители для значений имеют следующий вид.
self.phX = tf.placeholder(tf.float32, [None, self.rows, self.cols, self.channels])
self.phZ = tf.placeholder(tf.float32, [None, self.z_shape])
self.phY_g = tf.placeholder(tf.float32, [None, self.num_classes])
self.phY_d = tf.placeholder(tf.float32, shape=(None, self.rows, self.cols, self.num_classes))
Я загружаю серию изображений, noise_Z и меток (одна с горячим кодированием) для phY_g и phY_d в цикле обучения, как показано ниже.
# Get a random batch of images and labels. This gives 100 images of shape [100,4096] and 100 labels of shape [100,2350]
train_images, train_labels = self.sess.run([self.image_batch, self.label_batch])
# Real image input for Real Discriminator,
# Reshape images to pass to D
batch_X = train_images.reshape((self.batch_size, self.rows, self.cols, self.channels))
batch_X = batch_X * 2 - 1
# Z noise for Generator
batch_Z = np.random.uniform(-1, 1, (self.batch_size, self.z_shape)) # Shape is [?, 100]
# Label input for Generator
batch_Y_g = train_labels
batch_Y_g = batch_Y_g.reshape([self.batch_size, self.num_classes])
# Label input for Discriminator
batch_Y_d = train_labels
batch_Y_d = batch_Y_d.reshape([self.batch_size, self.rows, self.cols, self.num_classes])
Все работает хорошо, но для batch_Y_d я получаю сообщение об ошибке "ValueError: невозможно преобразовать массив размером 235000 в форму (100,64,64,2350)"
Как я могу изменить его в соответствии с моей формой заполнителя?