问题标签 [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.
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
)不是同一个图表的一部分。
谢谢
tensorflow - 用tensorflow读取tfrecord的问题
现在我的问题是关于阅读 tfrecords。例如,假设我有两个图像,每个框都有它的边界框来包含对象。
数据已成功写入 tfrecord 文件,现在我的工作是读取它。
当我加载它时,我发现数据不匹配。例如它可能是
我尝试使用 opencv2 绘制它并发现这个问题。
我读取 tfrecord 的代码如下:
performance - TensorFlow Api 数据集:性能指南?
我对在 TensorFlow 中使用 Dataset API 的性能指南有疑问。我有以下代码:
我的问题是读取数据的速度很慢,每批大约需要 0.2 秒,这使得 GPU 的利用率很低。我想加快速度,这就是我创建 TfRecords 的原因。它比普通加载器运行得更快,但我仍然无法始终获得 >60% 的利用率。
如何加快数据加载速度?也许有一些性能指南?我很好奇设置num_parallel_calls
不同的map
功能是否对最终速度有任何影响(我尝试了几个版本,当前版本似乎是最快的)。
此外,为了创建 TfRecord,我使用编码为 JPEG 和 PNG 的图像,但没有使用tf.image.encode_jpeg
,tf.image.encode_png
因为我在使用它们时存在内存问题(这个过程占用了所有 16GB,但是当PIL
用于编码图像时,内存使用是正确的),有什么提示吗?这是我使用 TF 创建 TfRecords 的代码。
编辑:我在创建 TfRecord 时解决了内存问题,但不会增加图形(并运行eval
完成)。tf.encode
使用功能时,我会在得到阅读速度的结果后通知。Edit2:正如我所料,这不会减少读取数据的时间(但 TfRecord 的大小更小)。
python - DataSet 规范化输入值的范围
我正在 TensorFlow 中使用神经网络进行一些实验。最新版本的发行说明说 DataSet 是今后推荐的用于提供输入数据的 API。
一般来说,从外界取数值时,需要对取值范围进行归一化处理;如果您插入长度、质量、速度、日期或时间等原始数字,则产生的问题将是病态的;有必要检查值的动态范围并标准化为范围(0,1)
或(-1,1)
.
这当然可以在原始 Python 中完成。但是,DataSet 提供了许多数据转换功能并鼓励使用它们,其理论是生成的代码不仅更易于维护,而且运行速度更快。这表明还应该有一个内置的标准化功能。
但是,查看https://www.tensorflow.org/programmers_guide/datasets上的文档,我没有看到任何提及。我错过了什么吗?推荐的方法是什么?
python - Tensorflow 数据集 API 中的过采样功能
我想问一下当前的数据集API是否允许实现过采样算法?我处理高度不平衡的班级问题。我在想,在数据集解析(即在线生成)期间对特定类进行过度采样会很好。我已经看到了rejection_resample 函数的实现,但是这会删除样本而不是复制它们,并且它会减慢批量生成(当目标分布与初始分布有很大不同时)。我想要实现的是:举个例子,看看它的类概率决定是否重复它。然后调用dataset.shuffle(...)
dataset.batch(...)
并获取迭代器。最好的(在我看来)方法是对低概率类进行过采样,并对最可能的类进行二次抽样。我想在网上做,因为它更灵活。
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.
我究竟做错了什么?
这是完整的代码
(注意:事物的命名与这个问题不同)
这是堆栈跟踪:
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 模型。
谢谢!!
tensorflow - 通过 tensorflow 使用 tf.data 或 queues CNN 文本分类
我在这个 github 链接https://github.com/dennybritz/cnn-text-classification-tf上使用了 CNN-Text 分类,虽然我的数据集太大,有 10000 个文档(大小:120M)。
为了获得高效的性能,我想更改评估集以使用我的数据的较小子集,或者使用 Tensorflow 队列或 tf.data 顺序读取数据。现在我不知道我该如何解决这个问题?这个包中的女巫.py项目必须更改吗?
谢谢。
tensorflow - 将文本文档转换为 TensorFlow 中的 tf.data 以便顺序读取
在一个文本语料库中,有 50 个文本文档,每个文档大约有 80 行左右。我想将我的语料库作为输入提供给 tensorflow,但是我想在系统读取每个文档时对每个文档进行批处理?实际上与用于图像的 TfRecord 相同,我想通过使用 Tf.Data 批量处理我的语料库中的每个文档以按顺序读取它?
我该如何解决这个问题?