提问人:Ivan González 提问时间:10/27/2023 最后编辑:desertnautIvan González 更新时间:10/27/2023 访问量:23
为什么在使用张量流图函数并将其转换为 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?
问:
因此,我正在使用 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 是我的标签。我的问题是:为什么在绘图时我没有正确标记我的输入?(我敢肯定最初标签是按正确的顺序分配的)
答: 暂无答案
评论