为什么在使用张量流图函数并将其转换为 numpy 数组时,我没有以正确的顺序获得 tf.data.dataset 的标签?

Why am I not getting labels of my tf.data.dataset in the correct order when using the tensor flow map function and turning it to a numpy array?

提问人:Ivan González 提问时间:10/27/2023 最后编辑:desertnautIvan González 更新时间:10/27/2023 访问量:23

问:

因此,我正在使用 image_dataset_from_directory 方法创建一个张量流数据集。问题是,我想将这个函数返回的 tf.data.dataset 拆分为输入数据 (trainX) 和标签 (trainY) 的两个 numpy 数组。为此,我使用两个简单的函数来获取数据,并在稍后使用 tensorflow map 函数调用它们。另外,我将 map 函数给出的 tf.data.dataset 转换为一个 numpy 数组。所有提到的都在下面的代码中:

def get_inputs(inputs, labels):
    return inputs
def get_labels(inputs, labels):
    return labels

trainX = np.concatenate(list(train_ds.map(get_inputs)))
trainY = np.concatenate(list(train_ds.map(get_labels)))

然后,我使用以下代码绘制图像:

def view_image(trainX, trainY):
    image = trainX
    label = trainY
    
    
    fig = plt.figure(figsize=(10, 10))
    
    for i in range(8): #9
        ax = plt.subplot(4, 4, i + 1)
        plt.imshow(image[i].astype("uint8"))
        plt.title(int(label[i]))
        plt.axis("off")

view_image(trainX,trainY)

我期待这个结果:

在此处输入图像描述

相反,我得到了这个:

在此处输入图像描述

1 和 0 是我的标签。我的问题是:为什么在绘图时我没有正确标记我的输入?(我敢肯定最初标签是按正确的顺序分配的)

python numpy tensorflow tensorflow-datasets

评论


答: 暂无答案