我有以下代码:
imagepaths = tf.convert_to_tensor(imagepaths, dtype=tf.string)
labels = tf.convert_to_tensor(labels, dtype=tf.int32)
# Build a TF Queue, shuffle data
image, label = tf.data.Dataset.from_tensor_slices((imagepaths, labels))
我得到以下错误:
image, label = tf.data.Dataset.from_tensor_slices((imagepaths, labels))
ValueError: too many values to unpack (expected 2)
Dataset.from_tensor_slices不应该把它看作张量的长度,而不是输入的数量吗?如何更有效地解决此问题或将数据张量组合到同一变量中?仅供参考:有1800个图像路径和1800个标签彼此对应。需要明确的是,imagepath是指向jpgs图像所在文件的路径。在这之后,我的目标是打乱数据集并建立神经网络模型。
代码就在这里:#从磁盘读取图像image=tf.read_file(image(image=tf.image.decode_jpeg(图像,通道=通道(
# Resize images to a common size
image = tf.image.resize_images(image, [IMG_HEIGHT, IMG_WIDTH])
# Normalize
image = image * 1.0/127.5 - 1.0
# Create batches
X, Y = tf.train.batch([image, label], batch_size=batch_size,
capacity=batch_size * 8,
num_threads=4)
尝试这样做:
def transform(entry):
img = entry[0]
lbl = entry[1]
return img, lbl
raw_data = list(zip(imagepaths, labels))
dataset = tf.data.Dataset.from_tensor_slices(raw_data)
dataset = dataset.map(transform)
如果你想看看你的数据集,你可以这样做:
for e in dataset.take(1):
print(e)
您可以添加多个映射函数,然后可以在数据集上使用shuffle和batch为训练做准备;(