问题标签 [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.
python - 访问 tf.data.Dataset 对象中的图像和标签
我正在关注关于图像分类的keras 教程。我tf.data.Dataset
使用以下方法创建并指定了一个批次.take()
:
检查train_batch
对象,不出所料,我看到它由两个对象组成:图像和标签:
教程状态使用以下代码绘制此批次中的图像:
我的问题是如何for images, labels in train_batch:
设法分别指定图像和标签。除了enumerate
我没有遇到在 for 循环中指定两个变量。这是批量访问图像和标签的唯一方法吗?
python - 如何使用多个 .npy 文件创建 tf.data 管道
我已经研究了有关此问题的其他问题,但找不到确切答案,因此从头开始尝试:
问题
我有多个 .npy 文件(X_train 文件),每个文件都是一个形状数组 (n, 99, 2) - 只有第一个维度不同,而其余两个相同。根据 .npy 文件的名称,我还可以获得相应的标签(y_train 文件)。
每一个这样的文件都可以很容易地加载到内存中(多个文件也是如此),但不是一次全部加载。
我构建了一个生成器,它遍历文件列表并为训练批次聚合给定数量的文件:
在实践中(在 CPU 上)它工作正常,但是如果我试图在 CUDA 上使用 GPU,它会崩溃,给出Failed to call ThenRnnForward with model config:
错误(见:链接)
所以我试图找到另一种方法并使用 tf.data API 来生成数据。但是,我被困住了:
这很好用,但是,我找不到以下方法:
- 混合多个文件(最多一定数量,比如说五个)
- 遍历整个文件列表
我已经阅读了 flat_map 和 interleave,但是,我无法更进一步,任何尝试使用它们的尝试都没有成功。如何制作与代码上部类似的生成器,但使用 tf.data API?
python - tf.data:函数尝试转换为 numpy 数组失败?
我正在尝试建立一个tf.data
管道,最终计算skipgrams,但我得到一个错误
我的管道:
在哪里
部分堆栈跟踪是
我想它不喜欢提取要运行的维度_make_fat_diagonal()
,尽管我不确定我会如何表达这一点。在管道之外,该函数在数据集的各个元素上工作得很好text_ds
。如您所见,我很小心只使用 Tensorflow 方法。
什么是正确的方法?
python - 如何将图像输入 CNN
我是 tensorflow 的新手,正在尝试创建一个用于二进制分类的卷积神经网络,可以区分正常人脸和中风人脸之间的差异。
我的数据集的图像包含在一个名为CNNImages的目录中,并包含两个子目录:RegularFaces和Strokes。在每个子目录中都是我试图输入神经网络的 PNG 图像。
按照本参考资料中建议的方法:https ://towardsdatascience.com/build-your-own-convolution-neural-network-in-5-mins-4217c2cf964f ,我已经成功使用 Spyder 创建了神经网络本身,它与 mnist.load_data() 一起运行时工作。
但是,我无法使用 tf.data.Dataset 将自己的图像上传到神经网络中。当我尝试在我创建的图像数据库上训练我的神经网络时,它返回一个 ValueError 并指出“要解包的值太多(预期为 2)”。我相信我要么错误地调用了我的数据库,要么在创建数据库时搞砸了。
当我调用 ds for(x_train, y_train), (x_test, y_test) = ds
时,我收到 ValueError,它指出“要解包的值太多(预期为 2)”。我把那条线弄乱了吗?还是我设计的 tf 数据集不正确?
tensorflow - 如何将 PostgreSQL 数据库的输出从 TensorFlow IO 馈送到 tf.keras Sequential Model
我试图学习如何使用本教程将 SQL 数据集读入 Tensorflow 。直到最后一步一切正常!
我只记录前 10 条记录。
现在,我y
是co
变量,其余的是自变量。我想为演示目的创建一个非常基本的 DNN 回归模型。
我知道我需要简单地将一个元组(x,y)
输入模型,但这是一个元组字典。我尝试使用以下方法将其映射为分离特征和标签:
并运行
但我收到一个错误:
我不知道如何弄清楚。我感谢所有的帮助!
tensorflow - tf.data.Datasets.repeat(EPOCHS) 与 model.fit epochs=EPOCHS 之间的区别
在训练时,我将 epoch 设置为迭代数据的次数。我想知道tf.data.Datasets.repeat(EPOCHS)
当我已经可以做同样的事情时有什么用model.fit(train_dataset,epochs=EPOCHS)
?
python - 如何有效地将数据输入 TensorFlow 2.x,
我正在查看对大量文本数据的数据预处理任务,并希望将预处理后的数据加载到 TensorFlow 2.x 中。预处理数据包含整数值数组,因为预处理步骤生成:
- 一个热编码数组作为标签列
- 每个数据行的标记化标记列表
- 用于变压器的激活掩码
所以,我一直在想我会使用 pyspark 来预处理数据并将结果转储到JSON
文件中(因为 CSV 无法存储结构化数据)。到目前为止,一切正常。但是我在处理JSON
文件时遇到了麻烦tf.data.Dataset
(或任何其他可以有效扩展并可以与 TensorFlow 2.x 接口的文件)。
我不想使用/安装除 Tensorflow 和 PySpark 之外的其他库(例如 TensorFlowOnSpark),所以我想知道是否可以使用 JSON 文件以有效的方式链接两者,因为似乎没有其他方法可以保存/加载记录包含数据列表(?)。JSON 测试文件如下所示:
因此,label4列已经进行了一次热编码,并且一旦将标记器应用于它,标记化的文本列将看起来相似。所以,我的问题是:JSON
文件可以有效地加载(可能通过生成器函数)tf.data.Dataset
还是我应该为此走一条不同的道路(使用额外的库)?
python - 无效参数:维度 -972891 必须 >= 0
我使用以下代码片段创建了一个使用 tf.data 进行语音识别的数据管道:
这些片段是从https://www.tensorflow.org/tutorials/audio/simple_audio#build_and_train_the_model借来的。
我的模型定义如下:
当我开始训练过程时,这个错误会在几次迭代后出现:
tensorflow - tf.data.Dataset.interleave() 与 map() 和 flat_map() 究竟有何不同?
我目前的理解是:
不同的 map_func:两者都 interleave
期望flat_map
“将数据集元素映射到数据集的函数”。相反,map
期望“将数据集元素映射到另一个数据集元素的函数”。
参数:两者都interleave
提供map
参数 num_parallel_calls,而flat_map
没有。此外,interleave 提供了这些神奇的参数 block_length 和 cycle_length。对于 cycle_length=1,文档说明 interleave 和 flat_map 的输出是相等的。
最后,我看到了没有 interleave 的数据加载管道以及带有 interleave 的数据加载管道。任何建议何时使用interleave
vs.map
或flat_map
将不胜感激
//编辑:我确实看到交错的价值,如果我们从不同的数据集开始,例如在下面的代码中
但是,在以下场景中使用interleave
over有什么好处吗?map
multidimensional-array - 使用滑动窗口重塑 ndarray 而不使用太多内存的有效方法
我必须通过对其应用两个滑动窗口来将 [17205, 21] 的 ndarray 重塑为 [17011, 96, 100, 21]。
我的解决方案是两次对其应用滑动窗口。然后我两次应用以下方法:
给出 的形状,[17106, 100, 21]
然后再次使用n_step=96
,给出 的形状[17011, 96, 100, 21]
。
缺点:它将整个数据存储在内存中,这会产生错误:
一个可能的解决方案:
但是,它并没有给我想要的输出,因为“它会生成嵌套窗口的数据集”,正如这里所说的那样。
任何想法?谢谢