В настоящее время я работаю над обучением набора данных, хранящегося как массивы numpy, с использованием
train_dataset=tf.data.Dataset.from_tensor_slices(train_data)
Здесь train_data представляет собой массив данных numpy без соответствующих меток. Модель, которую я использую, была создана для работы с наборами данных как DatasetV1Adapters (MNIST и набор данных для GAN от пикселя к пикселю). Я долго искал документацию для внесения необходимых исправлений (около 4 недель). и этот метод не решил мою проблему.
Для тренировочного процесса я выполнял:
for images in train_dataset:
#images=np.expand_dims(images, axis=0)
disc_loss += train_discriminator(images)
, который дал бы мне ошибку
ValueError: Input 0 of layer conv2d_2 is incompatible with the layer: expected ndim=4, found ndim=3.
Форма массива была [32,32,3], поэтому 100 из числа изображений были потеряны. Я попытался запустить закомментированную строку images = np.expand_dims (images, axis = 0). Таким образом, я получил [1,32,32,3], который соответствовал моей требуемой размерности. Я думал, что моя проблема будет решена, но вместо этого у меня теперь есть следующая ошибка:
ValueError: Input 0 of layer conv2d_4 is incompatible with the layer: expected axis -1 of input shape to have value 1 but received input with shape [1, 32, 32, 3]
, которую я не до конца понимаю. Кажется, что ошибка определенно связана с datasetV1Adapter, так как я получаю ошибку того же типа, что и различные коды. Я попытался загрузить свой набор данных в github, но я не могу загрузить его как папку размером 10 ГБ. Любая помощь будет оценена
РЕДАКТИРОВАТЬ: следовал совету @ Себастьян-Sz (Kind off). Я установил три канала в модели, чтобы они соответствовали RGB вместо градаций серого. Запуск этого кода дал мне
TypeError: Value passed to parameter 'input' has DataType uint8 not in list of allowed values: float16, bfloat16, float32, float64
Поэтому я добавил
train_data = np.asarray(train_data, dtype=np.float)
Теперь я получаю сообщение об ошибке:
Input 0 of layer dense_5 is incompatible with the layer: expected axis -1 of input shape to have value 6272 but received input with shape [1, 8192]
Что не имеет смысла для меня