Как правильно получить набор данных для создания? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть следующий код:

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 меток, соответствующих друг другу. И чтобы было ясно, пути к изображениям - это пути к файлам, в которых находятся изображения 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)

1 Ответ

0 голосов
/ 02 апреля 2020

попробуйте сделать это:

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 для набора данных, чтобы подготовить его к обучению;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...