首页 > 解决方案 > tensorflow image_dataset_from_directory 中的 class_names 似乎是矩阵而不是向量

问题描述

我尝试将自定义图像数据输入到我的图像分类器中tensorflow.keras.preprocessing.image_dataset_from_directory(),以根据子目录的名称自动进行图像标记。代码执行成功,但后来发现图像被标记为 [batch_size, 3] 矩阵,我也不确定数字 3 来自哪里(可能是通道?)。它影响了我的形象,无法通过这种方式进行标记。

这是我的代码:

import tensorflow.keras as tfk
datadir = '/content/rockpaperscissors'

train_ds = tfk.preprocessing.image_dataset_from_directory(
    datadir,
    labels =  'inferred',
    label_mode = 'categorical',
    batch_size = 10,
    image_size = (150, 150),
    shuffle = True,
    seed = 123,
    validation_split = 0.3,
    subset = 'training'
)

val_ds = tfk.preprocessing.image_dataset_from_directory(
    datadir,
    labels = 'inferred',
    label_mode = 'categorical',
    batch_size = 10,
    image_size = (150, 150),
    shuffle = True,
    seed = 123,
    validation_split = 0.3,
    subset = 'validation'
)

然后我检查了每批图像和标签数量的一致性

for image_batch, labels_batch in train_ds:
  print(image_batch.shape)
  print(labels_batch.shape)
  break

它输出

(10, 150, 150, 3)
(10, 3)

有人知道如何解决这个问题吗?提前致谢

标签: pythontensorflowkeras

解决方案


推荐阅读