有很多如何创建和使用TensorFlow数据集的示例,例如
dataset = tf.data.Dataset.from_tensor_slices((images, labels))
我的问题是如何以numpy的形式从TF数据集中取回数据/标签?换句话说,want将是上面这行的反向操作,即我有一个TF数据集,并希望从其中获取图像和标签。
发布于 2020-07-10 04:30:14
如果您的tf.data.Dataset
是批处理的,下面的代码将检索所有y标签:
y = np.concatenate([y for x, y in ds], axis=0)
发布于 2019-05-21 03:22:52
我认为我们在这里得到了一个很好的例子:
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
import tensorflow_datasets as tfds
# where mnsit train is a tf dataset
mnist_train = tfds.load(name="mnist", split=tfds.Split.TRAIN)
assert isinstance(mnist_train, tf.data.Dataset)
mnist_example, = mnist_train.take(1)
image, label = mnist_example["image"], mnist_example["label"]
plt.imshow(image.numpy()[:, :, 0].astype(np.float32), cmap=plt.get_cmap("gray"))
print("Label: %d" % label.numpy())
因此,可以像访问字典一样访问数据集的每个单独组件。假设不同的数据集有不同的字段名称(波士顿住房不会有image和value,但可能有‘feature’和'target‘或'price':
cnn = tfds.load(name="cnn_dailymail", split=tfds.Split.TRAIN)
assert isinstance(cnn, tf.data.Dataset)
cnn_ex, = cnn.take(1)
print(cnn_ex)
返回一个dict(),里面有键'article','highlight‘,里面有numpy字符串。
发布于 2020-12-30 06:06:13
如果您可以将图像和标签保留为tf.Tensor
,您可以这样做
images, labels = tuple(zip(*dataset))
将数据集的效果想象为zip(images, labels)
。当我们想要找回图像和标签时,我们可以简单地unzip它。
如果需要numpy数组版本,请使用np.array()
对其进行转换
images = np.array(images)
labels = np.array(labels)
https://stackoverflow.com/questions/56226621
复制相似问题