【发布时间】:2020-03-20 01:18:21
【问题描述】:
我正在尝试从 numpy 数组开始在 tensorflow 1.14 中创建一个 Dataset 对象(我有一些我无法为这个特定项目更改的遗留代码),但每次我尝试时,我都会在我的图表上复制所有内容并用于因此,当我创建一个事件日志文件时,它会很大(在这种情况下为 719 MB)。
最初我尝试使用此函数“tf.data.Dataset.from_tensor_slices()”,但它不起作用,然后我读到这是一个常见问题,有人建议我尝试使用生成器,因此我尝试了以下代码,但我又得到了一个巨大的事件文件(又是 719 MB)
def fetch_batch(x, y, batch):
i = 0
while i < batch:
yield (x[i,:,:,:], y[i])
i +=1
train, test = tf.keras.datasets.fashion_mnist.load_data()
images, labels = train
images = images/255
training_dataset = tf.data.Dataset.from_generator(fetch_batch,
args=[images, np.int32(labels), batch_size], output_types=(tf.float32, tf.int32),
output_shapes=(tf.TensorShape(features_shape), tf.TensorShape(labels_shape)))
file_writer = tf.summary.FileWriter("/content", graph=tf.get_default_graph())
我知道在这种情况下我可以使用 tensorflow_datasets API,它会更容易,但这是一个更普遍的问题,它通常涉及如何创建数据集,而不仅仅是使用 mnist 。 你能向我解释我做错了什么吗?谢谢你
【问题讨论】:
-
您能否更详细地解释一下是什么导致您的事件文件如此之大?它是在创建重复的子图吗?
-
您能解释一下
from_tensor_slices的问题吗?
标签: python tensorflow tensorflow-datasets