TensorFlow as build это хороший способ хранения данных. Это, например, используется для хранения данных MNIST в следующем примере:
>>> mnist
<tensorflow.examples.tutorials.mnist.input_data.read_data_sets.<locals>.DataSets object at 0x10f930630>
Предположим, что у вас есть входной и выходной массивы.
>>> x = np.random.normal(0,1, (100, 10))
>>> y = np.random.randint(0, 2, 100)
Как я могу преобразовать их в набор данных tf
?
Я хочу использовать такие функции, как next_batch
3 ответа
Объект Dataset является только частью учебника MNIST, а не основной библиотекой TensorFlow.
Вы можете увидеть, где это определено здесь:
Конструктор принимает аргумент изображения и метки, так что, вероятно, вы можете передать туда свои собственные значения.
Недавно Tensorflow добавил функцию в свой набор данных API для использования массива NumPy. Подробнее см. здесь.
Вот фрагмент, который я скопировал оттуда:
# Load the training data into two NumPy arrays, for example using `np.load()`.
with np.load("/var/data/training_data.npy") as data:
features = data["features"]
labels = data["labels"]
# Assume that each row of `features` corresponds to the same row as `labels`.
assert features.shape[0] == labels.shape[0]
features_placeholder = tf.placeholder(features.dtype, features.shape)
labels_placeholder = tf.placeholder(labels.dtype, labels.shape)
dataset = tf.data.Dataset.from_tensor_slices((features_placeholder, labels_placeholder))
# [Other transformations on `dataset`...]
dataset = ...
iterator = dataset.make_initializable_iterator()
sess.run(iterator.initializer, feed_dict={features_placeholder: features,
labels_placeholder: labels})
В качестве альтернативы вы можете использовать функцию tf.train.batch()
для создания пакета ваших данных и в то же время исключить использование tf.placeholder
. Обратитесь к документации для получения более подробной информации.
>>> images = tf.constant(X, dtype=tf.float32) # X is a np.array
>>> labels = tf.constant(y, dtype=tf.int32) # y is a np.array
>>> batch_images, batch_labels = tf.train.batch([images, labels], batch_size=32, capacity=300, enqueue_many=True)
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.