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

tensorflow - 用 tf.estimator 初始化 tf.contrib.data.Iterator

tf.contrib.data.Iterator如果tf.estimator.Estimator也被使用,应该如何初始化?

问题之一是输入图(tf 图处理输入的部分)应该定义在intput_fn()- 因为 tf.estimator 创建单独的图。

这个要求使得很难访问迭代器init ops并传递它们to tf.estimator(传递操作可以train/evaluate/predict在以钩子形式调用时完成)。

0 投票
1 回答
2325 浏览

tensorflow - tf.train.MonitoredTrainingSession 和来自数据集的可重新初始化迭代器

似乎 MonitoredTrainingSession 在第一次调用 .run(..) 之前做了一些操作(记录?),这意味着当我这样做时:

这会产生错误:

因此,它看起来好像 MonitoredTrainingSession 在运行我提供的操作之前正在执行一些操作,因此无法与 Dataset 中的可重新初始化迭代器一起使用。

我确定我错过了一些东西,很想听听 :-)

0 投票
4 回答
15014 浏览

python - 如何使用 DataSet API 在 Tensorflow 中为 tf.train.SequenceExample 数据创建填充批次?

为了在Tensorflow中训练LSTM 模型,我将数据结构化为tf.train.SequenceExample格式,并将其存储到TFRecord 文件中。我现在想使用新的 DataSet API 来生成填充批次进行训练。在文档中有一个使用 padded_batch 的示例,但是对于我的数据,我无法弄清楚padded_shapes的值应该是什么。

为了将 TFrecord 文件分批读取,我编写了以下 Python 代码:

如果我使用该代码效果很好dataset = dataset.batch(1)(在这种情况下不需要填充),但是当我使用该padded_batch变体时,我收到以下错误:

TypeError:如果浅结构是一个序列,输入也必须是一个序列。输入具有类型: 。

你能帮我弄清楚我应该为padded_shapes参数传递什么吗?

(我知道有很多使用线程和队列的示例代码,但我宁愿为这个项目使用新的 DataSet API)

0 投票
3 回答
3500 浏览

tensorflow - 如何使用来自 Tensorflow Dataset API 的 feedable 迭代器和 MonitoredTrainingSession?

Tensorflow 程序员指南建议使用可馈送迭代器在训练和验证数据集之间切换,而无需重新初始化迭代器。主要需要进给手柄才能在它们之间进行选择。

如何搭配使用tf.train.MonitoredTrainingSession

以下方法失败并显示“RuntimeError: Graph is finalized and cannot be modified。” 错误。

如何同时实现 MonitoredTrainingSession 的便利性和迭代训练和验证数据集?

0 投票
1 回答
1443 浏览

tensorflow - 跳过 TFRecordDataset.map() 中的数据集条目

生成 TFRecordDataset 时如何跳过 TFRecord 文件中的条目?

给定一个TFRecord文件和tf.contrib.data.TFRecordDataset对象,我通过mapprotobuf 定义创建一个新数据集。例如,

这让我可以读取数据并进行一些预处理,然后缓存结果并为我的模型批量处理。

我的问题是,如果我想跳过 TFRecord 条目之一(例如,如果数据无效/错误)怎么办?例如,在 中parser(),也许我可以返回None,或者以某种方式tf.cond指示无效条目,或者触发一些断言。

0 投票
3 回答
13434 浏览

python - 如何使用 TF1.3 中的新 Dataset api 映射具有附加参数的函数?

我正在使用Tensorflow v1.3 中的 Dataset API。这很棒。可以使用此处描述的函数映射数据集。我很想知道如何传递具有附加参数的函数,例如arg1

当然,

行不通,因为没有办法通过arg1

0 投票
0 回答
1849 浏览

tensorflow - TensorFlow 的数据集 API:可变大小的输入

我将整个数据集作为元组列表保存在内存中,其中每个元组对应于一批固定大小的 'N' 。IE

(x[i],标签[i],长度[i])

  • x[i]:形状为 [N,W,F] 的 numpy 数组;这里有 N 个例子,每个例子有 W 个时间步长;所有时间步都有固定数量的特征 F
  • label[i] : class: shape [N,] 一个用于批处理中的每个示例
  • 长度[i]:数据中的长度(时间步数):形状[N,]:这是批处理中每个示例的时间步数(W)

主要问题:不同批次的 W 不同。

我正在查看 Dataset API 的以下示例文档,但无法理解如何为我的案例创建 DataSet 对象。API 之类的 Dataset.from_tensor_slices 和 Dataset.from_tensor 似乎无法正常工作(抛出广播错误),因为它们要求张量具有相同的形状,即批次之间的 W 相同。有什么方法可以不用填充我的批次(使用 DataSet.padded_batch)?

0 投票
6 回答
61941 浏览

tensorflow - Dataset.map 、 Dataset.prefetch 和 Dataset.shuffle 中 buffer_size 的含义

根据 TensorFlow文档,类的prefetchmap方法tf.contrib.data.Dataset都有一个名为buffer_size.

对于prefetch方法,参数被称为buffer_size并根据文档:

buffer_size:一个 tf.int64 标量 tf.Tensor,表示预取时将缓冲的最大元素数。

对于该map方法,该参数被称为output_buffer_size并根据文档:

output_buffer_size:(可选。)一个 tf.int64 标量 tf.Tensor,表示将被缓冲的已处理元素的最大数量。

同样对于该shuffle方法,出现相同的数量并且根据文档:

buffer_size:一个 tf.int64 标量 tf.Tensor,表示新数据集将从该数据集中采样的元素数量。

这些参数之间有什么关系?

假设我创建一个Dataset对象如下:

buffer上述代码段中的参数起什么作用?

0 投票
0 回答
97 浏览

python - 基于概率分布将张量流数据集拼接在一起

我有一个以路径长度为键的路径数据集。网络需要接收相同长度的路径并对它们进行批处理。我正在寻找一种方法(使用Dataset API根据路径长度分布选择路径长度(就像 一样简单P(length) = (number of paths for this length) / (total number of paths),然后为这个长度取一批路径。我打算写 tfrecord 文件(我不认为我可以使用将这些路径直接存储在单独目录中的python字典(每个长度)。如何使用Dataset API构造队列,从每个目录返回batch_size tfrecords - 但根据路径长度选择要返回的下一个目录分布?所以我想我可以为每个路径长度构造一个数据集,如下所示:

但是如何从x基于长度分布选择长度的数据集中选择下一个元素的数据集构建一个新数据集?

(编辑:我可能做错了,例如,我可以每个长度有一个 tfrecord 或其他东西,感谢反馈)

EDIT2:在旧 API 中,我可以执行以下操作:

然后从文件名产生一个队列:

我正在寻找一种将其转换为新数据集 API 的方法

0 投票
1 回答
6885 浏览

python - Tensorflow Dataset.from_generator 因 pyfunc 异常而失败

我正在尝试 tensorflow 的 nightly 1.4,因为我需要Dataset.from_generator将一些可变长度的数据集拼接在一起。这个简单的代码(来自这里的想法):

以相当神秘的方式失败:

请注意,生成器可以正常工作:

印刷:

正如预期的那样。

它是一个错误,一个缺失的功能还是我严重误解了什么?