1

我正在使用此代码加载必须传递给卷积变分自动编码器的图像:

import tensorflow as tf

train = tf.keras.preprocessing.image_dataset_from_directory(
  data_dir + 'Train/', label_mode=None,
  image_size=(img_height, img_width),
  batch_size=batch_size)

为了能够将它传递给自动编码器,我必须设置label_mode = None. 此外,解码器接收到的图像将进一步传递到 CNN 进行分类,我需要标签。

我如何才能train在最初为 CNN 时返回标签label_mode=None

4

1 回答 1

1

您可以加载带有标签的图像,然后创建另一个没有标签的数据集。

import tensorflow as tf

train = tf.keras.preprocessing.image_dataset_from_directory(
  data_dir + 'Train/', label_mode='categorical',
  image_size=(img_height, img_width),
  batch_size=batch_size)

X = np.array([])
for x, y in testData:
  if X.size == 0:
    X = x.numpy()
    continue
  X = np.concatenate([X, x.numpy()])
dataset = tf.data.Dataset.from_tensor_slices(X)

于 2020-11-07T14:50:25.230 回答