что означает example,= mnist_train.take(1)?

#python #tensorflow

#python #тензорный поток

Вопрос:

Я не понимаю, что означает оператор,= в этом случае, кто-нибудь может объяснить мне, что это значит?

 mnist_dataset = tfds.load("mnist")
mnist_train = mnist_dataset["train"]

example,= mnist_train.take(1)
  

Ответ №1:

Когда включен режим ожидания или в TF 2.0, example ,= dataset.take(1) возвращает кортеж (данные, метку), в данном случае это один обучающий пример. И example = dataset.take(1) вернет tensorflow.python.data.ops.dataset_ops.DatasetV1Adapter объект.

Ответ №2:

example, распаковывает значение из значения RHS (в данном случае, dataset с одним элементом) в кортеж LHS. Распаковка набора данных эквивалентна повторению над ним: каждое повторенное значение становится элементом результирующего кортежа. В данном случае это работает, потому что набор данных содержит только один элемент ( dataset.take(1) ). Если бы ваш набор данных состоял из трех элементов, кортежу LHS потребовалось бы три элемента, например:

 dataset = tf.data.Dataset.range(3)  # {0, 1, 2}
a, b, c = dataset

# a: tf.Tensor: 0
# b: tf.Tensor: 1
# c: tf.Tensor: 2