Как разделить объект набора данных Tensorflow в элементах и ​​метках - PullRequest
0 голосов
/ 12 февраля 2020

Моя цель состоит в том, чтобы передать в модель Keras Autencoder только (наборы) функций из объекта tf.data.Dataset.

Я загружаю набор данных, форматирую изображения и создаю партии, как это :

#load dataset
(raw_train, raw_validation, raw_test), metadata = tfds.load(
    'cats_vs_dogs',
    split=[
    tfds.Split.TRAIN.subsplit(tfds.percent[:80]),
    tfds.Split.TRAIN.subsplit(tfds.percent[80:90]),
    tfds.Split.TRAIN.subsplit(tfds.percent[90:])],
    with_info=True,
    as_supervised=True, 
    )

#normalize and resize images
IMG_SIZE = 160
def format_example(self, image, label):
    image = tf.cast(image, tf.float32)
    image = (image/255.0) 
    image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))
    return image, label
train = raw_train.map(format_example)
validation = raw_validation.map(format_example)
test = raw_test.map(format_example)

#create batches
SHUFFLE_BUFFER_SIZE = 1000
BATCH_SIZE = 32
train_batches = train.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)
validation_batches = validation.batch(BATCH_SIZE)
test_batches = test.batch(BATCH_SIZE)

И на этом этапе я хотел бы разделить пакеты по функциям и меткам, примерно так:

train_x_batches, train_y_batches = train_batches

Но я получаю эту ошибку:

`ValueError                                Traceback (most recent call last)
 in 
----> 1 train_x_batches, train_y_batches = train_batches

ValueError: too many values to unpack (expected 2)`

1 Ответ

1 голос
/ 12 февраля 2020

Если вам нужны только функции для вашего автоэнкодера, вы можете нарезать их с помощью map:

train_x_batches = train_batches.map(lambda x: x[0]) 

Конечно, вы можете сделать то же самое для ваших меток:

train_y_batches = train_batches.map(lambda x: x[1]) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...