问题标签 [tensorflow-estimator]

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

tensorflow - `estimator.train` 与 Tensorflow 中的 num_steps

我在Tensorflow 1.4中制作了一个自定义估算器。在函数中,我看到了一个参数,我将其用作停止训练然后对我的验证数据集进行评估的一种方式。estimator.trainsteps

之后,我在验证数据集num_steps上运行评估。我观察到的是,在完成评估之后, AUC/损失函数(通常是所有指标)的图中会有一个混蛋。num_steps

附图在此处输入图像描述

我无法理解为什么会这样。

这不是定期评估metrics的正确方法吗validation dataset

链接到代码

0 投票
1 回答
2390 浏览

tensorflow - 使用 tf.estimator.train_and_evaluate 时如何有效地洗牌一个大的 tf.data.Dataset?

tf.estimator.train_and_evaluate文档清楚地表明,必须正确打乱输入数据集,以便训练查看所有示例:

过拟合:为了避免过拟合,建议设置训练 input_fn 来适当地打乱训练数据。还建议在执行评估之前对模型进行更长时间的训练,比如多个 epoch,因为每次训练的输入管道都是从头开始的。这对于当地的培训和评估尤为重要。

在我的应用程序中,我想从tf.data.Dataset具有任意评估频率和shuffle()缓冲区大小的完整示例中统一采样。否则,训练最多只能看到第一个:

元素,有效地丢弃其余部分。有没有一种有效的方法来解决这个问题,而无需在系统内存中加载完整的数据集?

我考虑过根据缓冲区大小对数据集进行分片,但如果评估不频繁发生,它将在同一个分片上迭代多次(arepeat()关闭管道)。理想情况下,我想在对数据集进行完整迭代后移动到另一个分片,这可能吗?

感谢您的任何指点!

0 投票
2 回答
6337 浏览

tensorflow - tf.data.Dataset 是否支持生成字典结构?

以下是 [ https://www.tensorflow.org/programmers_guide/datasets]中的一段代码。在这个例子中,map函数是一个用户定义的函数来读取数据。在map函数中,我们需要设置输出类型为[tf.uint8, label.dtype].

我的问题是,如果我们想_read_py_function()输出一个 Python 字典,那么我们如何设置输出类型呢?是否有继承数据类型,例如tf.dict?例如:

那么,我们如何设计dataset.map()功能呢?

0 投票
0 回答
868 浏览

python - 将 tf.estimator.Estimator 与 save_checkpoint_steps 一起使用会导致 Tensorboard 警告

tf.estimator.train_and_evaluate(...)tf.estimator.Estimator配置为 的 一起使用时tf.contrib.learn.RunConfig(save_checkpoints_steps=10, ...)CheckpointSaverHook将自动创建一个。这CheckpointSaverHook将在每次触发时将图形和 graph_def 保存到摘要编写器(请参阅CheckpointSaverHook.before_run)。

基本代码示例:

在书面摘要上启动 Tensorboard 时,由于摘要中有多个图形定义,它会输出数百个警告,我猜这会在启动时减慢它的速度:

我发现使用多个图表时可能会出现问题,但是对于单个图表,这似乎不切实际。我们是否在这里正确使用了估计器,并且这种行为是有意的吗?我们是否需要编写一个自定义钩子来防止这种情况发生?

谢谢你的建议!

编辑:由于评论的建议,现在有一个问题: https ://github.com/tensorflow/tensorflow/issues/17272

0 投票
1 回答
1471 浏览

python - TensorFlow:tf.Estimator 模型的输入节点是什么

我基本上按照 tensorflow.org 上的教程,使用预制的 Estimator 类 ( DNNLinearCombinedClassifier ) 训练了 Wide & Deep 模型。

我想做推理/服务,但不使用 tensorflow-serving。这基本上归结为将一些测试数据提供给正确的输入张量并检索输出张量。

但是,我不确定输入节点/层应该是什么。在张量流图(graph.pbtxt)中,以下节点似乎相关。但它们也与主要在训练期间使用的输入队列有关,但不一定是推理(我一次只能发送一个实例)。

有人知道答案吗?提前致谢!

0 投票
1 回答
169 浏览

time-series - Tensorflow:外生特征键在 StructuralEnsembleRegressor 预测调用上引发 KeyError

我有一个用于时间序列预测的 tensorflow 实现。我的数据包含外生特征,我在我的训练输入中提供它们并评估输入。在预测步骤predict_continuation_input_fn中,我的外生特征列会引发 KeyError。这是我的代码的简化版本:

此时我得到错误KeyError: 'ex_0'。错误很明显,因为结果evaluation变量不包含我的外生特征。predict_continuation_input_fn有论据来获取 exogenous_features 但是我找不到任何有关如何将评估中的外生数据提供给该论点的文档。

我应该如何将这些功能提供给预测?我的实施有缺陷吗?建议非常受欢迎。

0 投票
2 回答
1153 浏览

tensorflow - 如何使用估计器实现的官方 resnet 模型进行预测

我使用来自:https ://github.com/tensorflow/models/blob/master/official/resnet/imagenet_main.py 的代码通过修改类的数量来进行二进制分类。该模型经过训练没有问题,并提供了良好的准确性。

在下一步中,我想恢复经过训练的模型进行预测。我遵循了 TensorFlow 的“保存和恢复”教程。但是,我必须以标准SavedModel格式导出我的模型(而不是自动保存的模型tf.estimator.Estimator)。我serving_input_reciever_fn在代码中添加了这个:

model_fn我添加了这个来声明导出输出:

在主要功能中,我在训练和验证步骤之后添加了这一行:

经过培训和验证,我得到了这个错误:

当然,预期的标准模型还没有输出。我想从那里的任何事情serving_input_receiver_fn都是错误的。可能输入类型与 的输入类型不匹配model_fn。我该如何定义这个函数?


更新:我尝试使用 'tf.estimator.export.build_raw_serving_input_receiver_fn' 为模型提供预处理的原始数据。main函数中的代码:

然后我得到了这个错误:

0 投票
1 回答
4739 浏览

tensorflow - 如何在 tensorflow tfrecords 中增加数据?

我使用 tfrecords 存储数据,并使用 API 将它们作为张量读取Dataset,然后使用EstimatorAPI 执行训练。现在,我想对数据集中的每个项目进行在线数据增强,但尝试了一段时间后,我找不到出路。我想要随机翻转、随机旋转等机械手。

我正在按照教程中给出的说明使用自定义估计器,这是我的 CNN,但我不确定数据增强步骤发生在哪里。

0 投票
1 回答
59 浏览

tensorflow - 关于tensorflow入门教程的问题

所以我正在阅读tensorflow 入门教程,我发现它很难遵循。关于每个功能以及为什么需要(或不需要)它们都缺少很多解释。

  1. 在 tf.estimator 部分中,“ x_eval ”和“ y_eval ”数组的含义或它们应该是什么?x_train和y_train数组为给定的x坐标提供所需的输出(即对应的y坐标)。但是x_evaly_eval值不正确:对于x=5,y 应该是 -4,而不是 -4.1。这些价值观从何而来?x_evaly_eval是什么意思?他们有必要吗?他们是如何选择这些价值观的?

  2. input_fn ”(“fn”甚至是什么意思?)和“ train_input_fn ”之间的区别。我看到唯一的区别是一个有

num_epochs=None, shuffle=True num_epochs=1000, shuffle=False

但我不明白“input_fn”或“train_input_fn”是/做什么,或者两者之间有什么区别,或者两者都是必要的。

3.在

estimator.train(input_fn=input_fn, steps=1000)

一段代码,我不明白“steps”和“num_epochs”之间的区别。每一个的含义是什么?你也可以有num_epochs=1000steps=1000吗?

  1. 最后一个问题是,我如何获得 W 和 b?在以前的方法中(不使用 tf.estimator),他们明确地发现 W=-1 和 b=1。如果我正在做一个更复杂的神经网络,包括偏差和权重,我想我想恢复权重和偏差的实际值。这就是我使用 tensorflow 来查找权重的全部意义所在!那么如何在 tf.estimator 示例中恢复它们呢?

这些只是在阅读“getStarted”教程时困扰我的一些问题。我个人认为它还有很多不足之处,因为目前还不清楚每件事的作用,你最多只能猜到。

0 投票
1 回答
1598 浏览

tensorflow - tensorflow estimator from_generator,如何设置 TensorShape?

我正在尝试使用生成器将数据输入估算器。以下是代码。但是,当尝试运行时,出现以下错误:

Update2:我终于成功了。所以正确的张量形状是 ([], [], [])

更新:我添加了 tensorshape ([None], [None], [None]),然后我将 ds.batch(10) 更改为赋值 ds = ds.batch(10)

但仍然有错误。

所以我的问题是,如何设置 TensorShape?from 生成器采用 TensorShape 的第三个参数,但我找不到任何关于如何设置它的示例/文档。有什么帮助吗?

谢谢,