问题标签 [tensorflow-datasets]

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 回答
7846 浏览

python - tensorflow AttributeError:“模块”对象没有属性“数据”

我尝试导入数据

我尝试加载我创建的 tfrecords 数据集。但我总是得到这个错误。

这是代码:

但是 tf.data... 应该存在吗?谢谢

0 投票
2 回答
714 浏览

tensorflow - 不能使用估计器 + 数据集并训练不到一个时期

TensorFlow 1.4 将 TF 数据集移至核心 ( tf.data.Dataset) 和文档/教程建议用于tf.estimator训练模型。

但是,按照本页末尾的建议,必须在函数内部实例化 Dataset 对象及其迭代器input_fn。这意味着通过数据集的迭代将在每次调用时重新开始estimator.train(input_fn, steps)。因此,调用步骤 < epoch 中的样本数,将导致在数据集的子集上训练模型。

因此我的问题。是否可以使用 Estimator + Dataset 实现类似的功能:

无需在每次调用时从头开始训练样本迭代estimator.train(input_fn=train_input_fn, steps=valid_freq)

例如,与此处不同,在外部实例化 Dataset 及其迭代器input_fn?我试过了,但它不起作用,因为输入(来自数据集迭代器)和模型(来自估计器model_fn)不是同一个图表的一部分。

谢谢

相关的 GitHub 问题

0 投票
1 回答
134 浏览

tensorflow - 用tensorflow读取tfrecord的问题

现在我的问题是关于阅读 tfrecords。例如,假设我有两个图像,每个框都有它的边界框来包含对象。

数据已成功写入 tfrecord 文件,现在我的工作是读取它。

当我加载它时,我发现数据不匹配。例如它可能是

我尝试使用 opencv2 绘制它并发现这个问题。

我读取 tfrecord 的代码如下:

0 投票
0 回答
337 浏览

performance - TensorFlow Api 数据集:性能指南?

我对在 TensorFlow 中使用 Dataset API 的性能指南有疑问。我有以下代码:

我的问题是读取数据的速度很慢,每批大约需要 0.2 秒,这使得 GPU 的利用率很低。我想加快速度,这就是我创建 TfRecords 的原因。它比普通加载器运行得更快,但我仍然无法始终获得 >60% 的利用率。

如何加快数据加载速度?也许有一些性能指南?我很好奇设置num_parallel_calls不同的map功能是否对最终速度有任何影响(我尝试了几个版本,当前版本似乎是最快的)。

此外,为了创建 TfRecord,我使用编码为 JPEG 和 PNG 的图像,但没有使用tf.image.encode_jpegtf.image.encode_png因为我在使用它们时存在内存问题(这个过程占用了所有 16GB,但是当PIL 用于编码图像时,内存使用是正确的),有什么提示吗?这是我使用 TF 创建 TfRecords 的代码。

编辑:我在创建 TfRecord 时解决了内存问题,但不会增加图形(并运行eval完成)。tf.encode使用功能时,我会在得到阅读速度的结果后通知。Edit2:正如我所料,这不会减少读取数据的时间(但 TfRecord 的大小更小)。

0 投票
1 回答
1592 浏览

python - DataSet 规范化输入值的范围

我正在 TensorFlow 中使用神经网络进行一些实验。最新版本的发行说明说 DataSet 是今后推荐的用于提供输入数据的 API。

一般来说,从外界取数值时,需要对取值范围进行归一化处理;如果您插入长度、质量、速度、日期或时间等原始数字,则产生的问题将是病态的;有必要检查值的动态范围并标准化为范围(0,1)(-1,1).

这当然可以在原始 Python 中完成。但是,DataSet 提供了许多数据转换功能并鼓励使用它们,其理论是生成的代码不仅更易于维护,而且运行速度更快。这表明还应该有一个内置的标准化功能。

但是,查看https://www.tensorflow.org/programmers_guide/datasets上的文档,我没有看到任何提及。我错过了什么吗?推荐的方法是什么?

0 投票
3 回答
4216 浏览

python - Tensorflow 数据集 API 中的过采样功能

我想问一下当前的数据集API是否允许实现过采样算法?我处理高度不平衡的班级问题。我在想,在数据集解析(即在线生成)期间对特定类进行过度采样会很好。我已经看到了rejection_resample 函数的实现,但是这会删除样本而不是复制它们,并且它会减慢批量生成(当目标分布与初始分布有很大不同时)。我想要实现的是:举个例子,看看它的类概率决定是否重复它。然后调用dataset.shuffle(...) dataset.batch(...)并获取迭代器。最好的(在我看来)方法是对低概率类进行过采样,并对最可能的类进行二次抽样。我想在网上做,因为它更灵活。

0 投票
1 回答
17636 浏览

python - tensorflow Estimator 出现“TypeError:‘Tensor’对象不可迭代”错误

我有一个程序生成的(无限的)数据源,并试图将其用作高级 Tensorflow 的输入Estimator来训练基于图像的 3D 对象检测器。

我像在 Tensorflor Estimator Quickstart中一样设置了 Dataset ,并且我dataset_input_fn返回了一个 features 和 labels 的元组Tensor,就像Estimator.train函数指定的那样,以及本教程的显示方式,但是在尝试调用 train 函数时出现错误:

TypeError: 'Tensor' object is not iterable.

我究竟做错了什么?


这是完整的代码

(注意:事物的命名与这个问题不同)

这是堆栈跟踪:

0 投票
1 回答
437 浏览

python - 使用 tf.data 或 tf.contrib.datta 的动态批量大小

我可以使用占位符作为 tf.train.batch_join() 的 batch_size (基于队列),因此我可以在训练循环中动态更改批处理大小。

但是当我使用占位符(或不可训练的变量)作为 tf.data.Dataset.batch() 的 batch_size 时,我得到了这个错误,

整个错误堆栈跟踪很长。我在 make_one_shot_iterator() 中将错误追溯到 v1.4 tensorflow/python/data/ops/dataset_ops.py:108

附加了完整的堆栈跟踪。我正在尝试官方的 tf resnet 模型。

谢谢!!

0 投票
0 回答
217 浏览

tensorflow - 通过 tensorflow 使用 tf.data 或 queues CNN 文本分类

我在这个 github 链接https://github.com/dennybritz/cnn-text-classification-tf上使用了 CNN-Text 分类,虽然我的数据集太大,有 10000 个文档(大小:120M)。

为了获得高效的性能,我想更改评估集以使用我的数据的较小子集,或者使用 Tensorflow 队列或 tf.data 顺序读取数据。现在我不知道我该如何解决这个问题?这个包中的女巫.py项目必须更改吗?

谢谢。

0 投票
1 回答
242 浏览

tensorflow - 将文本文档转换为 TensorFlow 中的 tf.data 以便顺序读取

在一个文本语料库中,有 50 个文本文档,每个文档大约有 80 行左右。我想将我的语料库作为输入提供给 tensorflow,但是我想在系统读取每个文档时对每个文档进行批处理?实际上与用于图像的 TfRecord 相同,我想通过使用 Tf.Data 批量处理我的语料库中的每个文档以按顺序读取它?

我该如何解决这个问题?