问题标签 [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.
tensorflow - 如何在不保存检查点的情况下运行 estimator.train
我正在寻找一种实现学习率搜索的方法,如下所述:https ://arxiv.org/pdf/1506.01186.pdf 。
我的网络是使用估计器 api 实现的,我想坚持这一点,但不幸的是,我无法强制估计器跳过保存检查点。您知道一种无需保存检查点即可简单地运行一个 epoch o 训练的方法吗?
tensorflow - 如何使用 Tensorflow Estimator api 获得一个时期的总训练集损失
我正在寻找一种实现学习率搜索的方法,如下所述:https ://arxiv.org/pdf/1506.01186.pdf 。
为了实现这一点,我需要有一种方法可以在单个 epoch 中获得多个学习率的损失。我正在考虑创建一个 SessionRunHook 并简单地从每个步骤的损失中取平均值,这并不准确,因为最后一步很可能没有元素的 batch_size 但它应该足够好。
您是否实施过这样的 SessionRunHook 或知道如何在训练期间访问损失或/和批量大小。
tensorflow - Tensorflow Estimator API:如何从输入函数传递参数
我正在尝试将类权重添加为模型的超参数,但是要计算权重,我需要读取输入数据,这发生在 input_fn 内部,然后传递给estimator.fit()
. 的输出input_fn
只有特征,标签应该具有相同的形状 num_examples * num_features。我的问题 - 有没有办法将数据从 input_fn 传播到 model_fn 的超参数图?或者作为替代方案-也许有一个用于 input_fn 数据集的包装器,它允许对少数/欠采样的多数以及批处理进行过采样-在这种情况下,我不需要任何参数来传播。
python - estimator.predict 引发“ValueError:不支持无值”
所以我基本上复制粘贴了适用于这个模型的 tensorflow 教程中的代码:
它试图对神经网络进行建模以识别“楼梯”形状,如下所示:
(来源:gormanalysis.com)
问题是,当我尝试预测一个显然应该是楼梯的图形时:[255., 1., 255., 255.] 我得到一个“ValueError: None values not supported.”。训练效果很好(除了它发现的权重与此处的权重不太相似的事实:http ://blog.kaggle.com/2017/11/27/introduction-to-neural-networks/ )。但是预测方法不起作用。这段代码肯定只是 tensorflow 示例的副本,适用于 x 的四维向量。
python - 找到张量流模型的准确性
在用 sigmoid 函数训练这个简单的线性模型后,我试图找到准确性:
但是字典没有“准确性”键。我如何找到它?另外,如何在每一步之后使用 tensorboard 来跟踪准确性?
提前谢谢你,tensorflow教程解释得很糟糕。
tensorflow - 使用张量板查找 DNNRegressor 的准确性
有没有办法在张量板的每次迭代后显示这个 DNNRegression 模型的准确性?我看到的唯一方法是使用“会话”方法,而不是使用 tf.estimator。此外,有没有一种方法可以找到模型的最终精度,而无需手动操作?我尝试了评估方法,但它返回的字典没有“准确性”键。
tensorflow - DNN 在 TensorFlow Estimator.DNNClassifier 中是什么意思?
我猜DNN
在意思上使用的TensorFlow
意思是“深度神经网络”。但我发现这非常令人困惑,因为“深度”神经网络的概念似乎在其他地方被广泛使用,以表示通常具有多个卷积和/或相关层(ReLU、池化、dropout 等)的网络。
相比之下,很多人会遇到这个术语的第一个实例(在tfEstimator Quickstart 示例代码中)我们发现:
这听起来很肤浅,甚至更像是老式多层感知器 ( MLP ) 网络。但是,没有提及DNN
作为该接近确定来源的替代术语。那么DNN
TensorFlowtf.estimator
上下文中的 a 实际上是 aMLP
吗?有关参数的文档hidden_units
表明是这种情况:
- hidden_units:每层隐藏单元数的可迭代。所有层都是完全连接的。前任。[64, 32] 表示第一层有 64 个节点,第二层有 32 个。
上面写满了 MLP。这种理解正确吗?因此是DNN
用词不当,如果是这样,DNNClassifier
理想情况下应该弃用MLPClassifier
吗?还是代表深度神经网络DNN
以外的东西?
python - 在 Tensorflow 中使用 tf.estimator.DNNClassifier 时如何正确使用 weight_column(或者如何制作有偏差的成本函数)?
我正在使用https://www.tensorflow.org/api_docs/python/tf/estimator/DNNClassifier
假设我有一个分类问题。试图对 2 件事进行分类。Class1是Happy Face,Class2不是Happy Face。在这个特定的场景中,每天查看 1,000 多个样本时,我只想抓住前 10 个快乐面孔。所以说真的,我只是想非常有信心,前 10 个面孔是快乐面孔。因此,如果它将一张快乐的脸归类为一张不快乐的脸,我可以接受。它可能会错过一些(或者说实话,它会在每天审查的 1000 多个中的 100 个)。但是,如果它错误地将一张不开心的脸归类为开心的脸……我不会对结果感到满意。
几乎,我可以忍受偶尔的 FN(假阴性)。但我真的不想要 FP(误报)
我有兴趣使用权重列来“减重”一个类的所有内容,并“增重”另一个类。
最后,我想要某种有偏的损失/成本函数。训练时,FP 应该“花费”更多,FN 应该仍然花费,但要少一些。查看 DNNClassifier,似乎 weight_column 可能是答案。
训练时,我可以将所有 Happy Faces 的权重设置为 1.5+(或其他东西,需要进行实验)。我可以将所有 Not Happy Faces 设置为 0.5(或其他值)。
所以,归结为几个问题:
这就是重量列的用途吗?
我看到权重列应该是一个特征/输入。在这种情况下,我不希望将权重列用作特征,因为我假设模型会了解权重与分类的相关性,并严重依赖该输入作为预测变量。那么,tensorflow 是否使用权重列作为输入?我希望它不会。
假设/希望 TF 不使用权重列作为输入,在预测/评估时,我应该为权重列传入什么?1?
如果 weight_column 不是答案,那么处理这种情况的推荐解决方案是什么(一个特定类的有偏成本函数)?我不需要模型在所有分类上都是 100% 准确的。但是对于一个类,当它说它是一张快乐的脸时,我希望它非常自信地认为它是一张快乐的脸。如果它漏掉了几张Happy Faces,它就会认为它们不是Happy Faces。没关系。只要我每天得到我的前 10 个“最快乐”的面孔,我就很高兴 :)
谢谢你的帮助。我很感激。
tensorflow - 使用比 Ram 更多数据的 TensorFlow 数据集和估计器
我最近将我的建模框架切换为使用自定义 Tensorflow Estimators和Datasets,并且总体上对这个工作流程非常满意。
但是,我刚刚注意到我的 dataset_input_fn 如何从 tfrecords 加载数据的问题。我的输入函数是根据 Tensorflow 文档中的示例建模的。当我的示例超出 RAM 容量时,就会出现问题。如果我有 1e6 个示例,并将我的 shuffle buffer_size 设置为 1e5,则选择一次 1e5 个示例的子集,打乱,然后迭代。这意味着我的模型只在我整个数据集的 10% 上进行了训练。我设置此行为的代码完全是从Tensorflow 文档示例代码中借用的:
我的问题:是否可以在我训练时用初始 1e5 之外的新示例填充 shuffle 缓冲区?one_shot_iterator 是否支持这种类型的功能?我需要使用可初始化的迭代器吗?
谢谢!
tensorflow - Tensorflow 1.4.1 estimator not getting next value from input_fn
I'm adapting code that I used in TF 1.2 using estimator API with TFRecords. But the input_fn
is always returning just the first batch, and thus never finishes (or progresses).
My TFRecord only has 5 items in it, so doing dataset.batch(2)
along with dataset.repeat(1)
should make it so the model finishes after 3 steps. Furthermore, I'm logging the features
being provided to my model_fn
at each step into Tensorboard. The values being logged are always the same.