问题标签 [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 投票
0 回答
69 浏览

python - Tensoflow tf.data.Dataset.from_tensor_slices 无法生成适合线性模型的简单数据集

只是想自己生成一个数据集,但它得到了错误。这让我很困惑。任何帮助将不胜感激!

这是代码:

错误是: Traceback(最近一次调用最后一次):..... ValueError:层顺序的输入 0 与层不兼容:输入形状的预期轴 -1 具有值 2,但接收到形状为 (2, 1 )

但是如果你切换到最后一个注释行,模型就可以被正确训练。

谢谢,汤姆

0 投票
0 回答
154 浏览

tensorflow2.0 - 获取“ValueError:找不到匹配的函数来调用从 SavedModel 加载的函数。” 关于训练模型

我在 tf-hub 上使用 Tensorflow 2 和 LaBSE 预训练模型(两者都不太熟悉)。(https://tfhub.dev/google/LaBSE/2)。我正在尝试使用自定义文本数据集训练多类分类器。我也在 BERT 分类器(https://www.tensorflow.org/text/tutorials/classify_text_with_bert)上关注这个例子,以了解模型是如何构建的。这是为了检查只有我可以训练和运行模型。我正在为从 csv 数据获得的输入文本使用数据集对象,如下所示,

我像往常一样把它们分成 X, y 组。但是,在尝试训练模型时出现上述错误。下面是我的代码,

这些数据集对象的规格是,<TensorSliceDataset 形状:((),()),类型:(tf.string,tf.int32)>

最后一步给出了错误;

我认为这是提供给输入的数据集对象规范的问题,但不了解如何修复它或确切原因。即使我的数据集对象具有“tf.string”类型,我也不明白为什么它与预期的输入不兼容。我查看了现有的答案,由于我对 TF 不太熟悉,我想知道原因是什么以及如何解决这个问题。

0 投票
1 回答
81 浏览

tensorflow - 输入形状轴 0 必须等于 4,在 tensorflow 数据集管道中尝试裁剪图像批次时得到形状 [5]

当我尝试在tf.data.Dataset管道中裁剪一批图像时出现以下错误:

InvalidArgumentError:输入形状轴 0 必须等于 4,得到形状 [5] [[{{node crop_to_bounding_box/unstack}}]] [Op:IteratorGetNext]

但是当我尝试运行以下 for 循环时,我得到了提到的错误:

请注意,管道在没有函数tf.image.crop_to_bounding_box内部的情况下crop工作(直接使用cropped_image = img_batch)。

您知道如何在 tf.data.Dataset 管道中正确裁剪一批图像吗?

0 投票
0 回答
36 浏览

python - TensorFlow 2.0:无法在图形模式下训练具有自定义拟合的子类模型

下面的代码片段是 TensorFlow 模型的 vanila 实现,我在其中使用子类模型和自定义拟合函数(通过train_step和实现test_step)。该代码在急切执行模式(TF2.0 中的默认执行模式)下工作正常,但在图形模式下失败。

该代码在急切模式下运行良好,但在图形模式下会引发以下错误。我使用禁用了急切执行tf.compat.v1.disable_eager_execution()

0 投票
0 回答
149 浏览

python - Assign class label based on parent folder name when using Tf.data

I have prepared a dataset the way I used to when using Datagenerator.flow_from_directory from Keras. So basically, I have three folders "Train" "Valid" and "Test" and inside each one, I have folders named after the class they represent. However, instead of images, I have saved my data in those subfolders as compressed numpy files .npz. I found that it is possible to create an input data pipeline to read .npz files using Tf.data, however, the example in the documentation only shows how load a dataset that has labels saved in the .npz files as follows:

And there is no explanation of how to generate a dataset and automatically assign labels to the data based on its parent folder (the way it is done in flow_from_directory).

Is there a way to achieve that or should I manually import data from each folder and assign a hot-encoded label to each subset? Thank youu !!

0 投票
0 回答
34 浏览

python - 在 tf.data 管道中包装 image_data_generator.flow_from_dataframe .. 我应该采取什么步骤?

我正在尝试包装image_data_generator.flow_from_dataframe使用tf.data,但我发现困难,我真的很感激一些帮助吗?

0 投票
1 回答
36 浏览

python - 如何将大型字符串数据数组从文件转换为具有浮点数据类型的 np.array

我的任务是指导一组潜在的大量元素来训练神经网络。我正在尝试使用 tf.data.experimental.CsvDataset 和 tf.data.experimental.make_csv_dataset 但我一直卡住。

我的数据集是一个文本文件,其中包含用“;”分隔的数字字符串。这是它的外观:

每行包含 2500 个数字,彼此分开。我尝试使用此代码

但是我得到一个错误,比如行中的元素比我在 record_defaults 中指定的要多。我也尝试使用这个:

但我得到错误:

我的任务是使用这个数据集,以便它可以进入以类似方式构建的神经网络的输入:

0 投票
0 回答
123 浏览

tensorflow - 使用特殊标记的字符级标记化

我正在将我的不和谐服务器消息输入 RNN,以便我可以基于这些消息创建一个聊天机器人。我知道 tensorflowtf.keras.preprocessing.text.Tokenizer可以在字符级别进行标记,但我想包含特殊标记,因为我希望机器人模拟一个人在不和谐的情况下编写多条消息,并为每个短语多次按 enter。一个句子的例子是,带有特殊标记: '<START> im a riot <ENTER> ok <ENTER> lets see here <END> '

在这种情况下,如何包含这样的特殊标记?到目前为止,我发现的唯一方法是使用正则表达式方法来re.findall分隔字符和特殊标记(re.findall(r'(?:(?:<[\w]+?>)|(?:[\w.,?!:]))在 tf.data 数据集上。

0 投票
0 回答
19 浏览

python - 如何根据令牌数量批处理 tf 数据集?

我正在尝试使用 tensorflow复制名为“Attention is al you need”( https://arxiv.org/pdf/1706.03762.pdf )的论文的结果。大部分代码都在这里完成:https : //www.tensorflow.org/text/tutorials/transformer 但有一些小细节没有正确实现。其中之一是批处理操作。对于这种模型,批次是由令牌组成的数组。在论文中指出,批次由 25k 个令牌组成,无论批次大小。怎么做到呢?

作为一个例子,让我们以这个列表列表 [[1, 2], [1], [1, 2, 3], [1], [1], [1]] 考虑每个批次 3 个令牌的令牌目标大小正确的解决方案是: [[[1, 2], [1]], [[1, 2, 3]], [[1], [1], [1]]]

0 投票
2 回答
478 浏览

tensorflow - 如何在 tf.data.Dataset 中使用稀疏张量列表?

我正在尝试构建一个以稀疏张量列表作为输入的模型。(列表长度等于批量大小)

我使用稀疏张量的原因是我必须将邻接矩阵传递给我的 GNN 模型,而且它非常稀疏。(~99%)

我熟悉使用 pytorch,将稀疏张量输入网络非常容易。

但是我发现我必须使用 tf.data.Dataset 或 keras.utils.Sequence 在 tensorflow 中制作数据集。

但是当我使用稀疏张量列表作为输入时,这些方法会向我抛出错误。

例如,下面的代码使 TypeError

我知道如果我将列表中的所有稀疏张量连接为一个巨大的张量,它将起作用。但是,这不是我的选择,因为我以后必须对稀疏张量使用索引。(如果我将 2D 稀疏张量连接成 3D 稀疏张量,我不能使用如下索引)

此外,这将花费更多时间,因为我必须对 3D 张量进行切片,以便与其他密集网络进行矩阵乘法。

此外,我知道如果我通过索引创建稀疏张量,每批的值会很好,但是每批会花费太多时间。

因此,由于索引、时间问题,我想让 tf.data.Dataset 能够从稀疏张量列表中生成批处理。

有谁能够帮我?:)


长话短说,

我所拥有的:稀疏张量列表(例如 1000000 长度列表)

我需要做的:稀疏张量的批处理列表(例如 1024 长度列表,而不是稀疏连接)