簡體   English   中英

我怎樣才能正確地創建我的數據集?

[英]How can I properly get my Dataset to create?

我有以下代碼:

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個標簽相互對應。 需要明確的是,圖像路徑是 jpg 圖像所在文件的路徑。 我的目標是打亂數據集並構建神經網絡模型。

該代碼就在這里: # 從磁盤讀取圖像 image = tf.read_file(image) image = tf.image.decode_jpeg(image, channels=CHANNELS)

# 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 和批處理來准備訓練;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM