问题标签 [tf.data.dataset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

python - 如何在 .map 函数中访问张量形状?

我有多个长度的音频数据集,我想在 5 秒的窗口中裁剪所有音频(这意味着 240000 个元素和 48000 个采样率)。因此,在加载 .tfrecord 后,我正在执行以下操作:

它返回一个具有音频长度的张量。如果这个长度小于 240000,我想重复音频内容,直到它是 240000。所以我正在处理所有音频,具有以下tf.data.Dataset.map()功能:

因为这就是将我最短的音频填充到所需长度的方法。

但是为了提高效率,我只想对需要它的元素进行操作:

但我无法访问 shape 属性,因为它是动态的并且在音频中有所不同。我试过使用tf.shape(audio), audio.shape, audio.get_shape(),但我得到None了像形状这样的值,这不允许我进行比较。

是否有可能做到这一点?

0 投票
1 回答
694 浏览

python - 在转换期间从 tensorflow 对象中提取 numpy 值

我正在尝试使用 tensorflow 获取词嵌入,并且我已经使用我的语料库创建了相邻的工作列表。

我的词汇中唯一单词的数量为 8000,相邻单词列表的数量约为 160 万

单词列表示例照片

由于数据非常大,我正在尝试将单词列表批量写入 TFRecords 文件。

定义批次

##############################

0 投票
1 回答
1458 浏览

tensorflow - 如何在 tf.data.Dataset 对象上使用序列/生成器将部分数据放入内存?

我正在 Google Colab 上使用 Keras 进行图像分类。我使用 tf.keras.preprocessing.image_dataset_from_directory() 函数(https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory)加载图像,该函数返回一个 tf.data.Dataset 对象:

我发现当数据包含数千张图像时,model.fit() 将在训练多个批次后使用所有内存(我使用的是 Google Colab,并且可以看到 RAM 使用量在第一个 epoch 期间增长)。然后我尝试使用 Keras 序列,这是将部分数据加载到 RAM 中的建议解决方案(https://www.tensorflow.org/api_docs/python/tf/keras/utils/Sequence):

我用以下方法训练模型:

history = model.fit(DatasetGenerator(train_ds), ...)

问题是getitem ()必须返回一批带索引的数据。但是,我使用的 list() 函数必须将整个数据集放入 RAM,因此当 DatasetGenerator 对象实例化时会达到内存限制(tf.data.Dataset 对象不支持使用 [] 进行索引)。

我的问题:

  1. 有没有办法实现getitem () (从数据集对象中获取特定批次)而不将整个对象放入内存?
  2. 如果第 1 项是不可能的,是否有任何解决方法?

提前致谢!

0 投票
0 回答
389 浏览

tensorflow2.0 - Tensorflow 2 - AttributeError:'_NestedVariant'对象没有属性'batch'

在“Hands on machine learning with scikit-learn and tensorflow 2.0”一书的第 17 章中,他们使用 tf.data.Dataset 和 window() 方法将顺序数据集拆分为多个窗口:

要将顺序数据集切割成多个窗口,他们使用以下方法:

但是当我执行上面的那一行时,我收到以下错误:

为什么会这样?请帮忙。你可以在这里找到对应的笔记本

0 投票
1 回答
95 浏览

google-cloud-platform - kedro 支持 tfrecord 吗?

为了使用 Docker 容器在 AI 平台上训练 tensorflow keras 模型,我们将存储在 GCS 上的原始图像转换为使用tf.data.Dataset. 因此,数据永远不会存储在本地。相反,原始图像直接转换为 tfrecords 到另一个存储桶。是否可以将kedro与 tfrecord 数据集和流式传输功能一起使用tf.data.Dataset?根据文档kedro 似乎不支持 tfrecord 数据集。

0 投票
2 回答
503 浏览

tensorflow - 如何在地图函数中访问张量形状

我需要访问图像形状以执行增强管道,尽管通过访问时image.shape[0] and image.shape[1]我无法执行增强,因为它输出我的张量具有形状 None。

相关问题:如何访问 .map 中的张量形状?

感谢是否有人可以提供帮助。

映射函数

0 投票
1 回答
141 浏览

python - 如何通过 tf.data.Dataset API 为生成的批次添加时间步长维度

我想为我的批处理生成添加时间步长维度。

目前我正在做

并获得批量大小(32, feature_vector_length)

我想将 time_step_dimention 添加到我的批次中(batch_size,time_stemp,feature_vector_length)

如何使用圆顶tf.data

0 投票
1 回答
156 浏览

generator - 你能交错来自多个文件的 tf.data 数据集吗?

我目前有一个数据集,该数据集分为三种不同的 npy 文件类型:一种包含所有作为浮点数的 x var,一种包含所有作为 int 的 x var,另一种包含所有 y 标签。

为了遍历所有文件,我从像这样的生成器创建了一个 tf.data 数据集

我的问题是如果交错这个过程是否会更快,如果是这样,我可以用这三个单独的文件来做到这一点,还是必须将它们全部附加到一个文件中?需要注意的一点是,每个 npy 文件都可以加载到内存中,但是会有超过 10,000 个 npy 文件,所以我无法将所有文件加载到内存中。

提前感谢您的任何想法!

0 投票
1 回答
309 浏览

tensorflow - tf.data WindowDataset flat_map 给出 'dict' 对象没有属性 'batch' 错误

我正在尝试批量类型(batch_size, time_steps, my_data)

为什么在flat_map一步我得到 AttributeError: 'dict' object has no attribute 'batch'

知道是什么问题吗?以及如何解决?

0 投票
1 回答
184 浏览

tensorflow - tf.keras.backend.function 用于转换 tf.data.dataset 中的嵌入

我正在尝试使用神经网络的输出来转换 tf.data.dataset 中的数据。具体来说,我正在使用Delta-Encoder来操作 tf.data 管道内的嵌入。但是,在这样做时,我收到以下错误:

我已经搜索了数据集管道页面和堆栈溢出,但我找不到可以解决我的问题的东西。在下面的代码中,我使用了自动编码器,因为它会产生相同的错误,并且代码更简洁。

有问题的部分似乎在 [[x,]] = tf.py_function(Auto_Func, [x], [tf.float32]) 里面 tf_auto_transform

上面的代码产生以下错误:

我试图通过运行 tf_auto_transform 函数的注释掉部分来消除错误,但错误仍然存​​在。

旁注:虽然 Delta 编码器论文确实有代码,但它是用 tf 1.x 编写的。我正在尝试将 tf 2.x 与 tf 功能 API 一起使用。谢谢您的帮助!