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

python - 使用 tf.estimator.Estimator 框架进行迁移学习

我正在尝试使用我自己的数据集和类对在 imagenet 上预训练的 Inception-resnet v2 模型进行迁移学习。我的原始代码库是对tf.slim我再也找不到的示例的修改,现在我正在尝试使用该tf.estimator.*框架重写相同的代码。

但是,我遇到了一个问题,即从预训练的检查点只加载一些权重,用它们的默认初始化程序初始化剩余的层。

研究这个问题,我发现了这个 GitHub 问题这个问题,都提到需要tf.train.init_from_checkpoint在我的model_fn. 我试过了,但鉴于两者都没有例子,我想我做错了。

这是我的最小示例:

Tensorflow 的模型存储库中的模型实现inception_resnet_v2在哪里。

如果我运行这个脚本,我会从 获得一堆信息日志init_from_checkpoint,但是,在会话创建时,它似乎试图Logits从检查点加载权重,但由于形状不兼容而失败。这是完整的追溯:

使用时我做错了什么init_from_checkpoint?我们究竟应该如何在我们的“使用”它model_fnLogits当我明确告诉它不要时,为什么估计器试图从检查点加载' 权重?

更新:

在评论中的建议之后,我尝试了其他方法来调用tf.train.init_from_checkpoint.

使用{v.name: v.name}

如果按照评论中的建议,我将调用替换为{v.name:v.name for v in variables_to_restore},我会收到此错误:

使用{v.name: v}

相反,如果我尝试使用name:variable映射,则会收到以下错误:

该错误继续列出我认为是检查点中的所有变量名称(或者它可能是范围?)。

更新 (2)

在检查了上面的最新错误后,我看到它InceptionResnetV2/Conv2d_2a_3x3/weights 检查点变量列表中。问题是:0最后! 我现在将验证这是否确实解决了问题,如果是这样,我会发布答案。

0 投票
1 回答
624 浏览

python - tf.estimator.DNNClassifier 不可用

我正在尝试使用 tensorflow,但 tf.estimator 不提供 DNNClassifier(和其他估计器)。

我在 Windows 10 上的 Anaconda 中运行 Python 3.6。我使用 conda install tensorflow 来加载和导入 tensorflow 作为 tf 来导入包。

当我尝试使用 DNNClassifier 时,我收到错误消息:

有没有其他人有这个问题?

0 投票
1 回答
1518 浏览

tensorflow - Tensorflow:Keras、Estimators 和自定义输入函数

TF1.4 使 Keras 成为不可或缺的一部分。当尝试使用适当的输入函数(即,不使用 tf.estimator.inputs.numpy_input_fn)从 Keras 模型创建估计器时,由于 Tensorflow 无法将模型与输入函数融合,因此无法正常工作。

我正在使用 tf.keras.estimator.model_to_estimator

我收到以下错误消息:

我在这里找到了这个主题的一些参考资料(奇怪的是它隐藏在主分支的 TF 文档中 - 与比较)

如果您有同样的问题 - 请参阅下面的答案。可能会为您节省几个小时。

0 投票
1 回答
665 浏览

tensorflow - tf.estimator 的 gRPC 错误

我正在运行通过在 OpenStack 上运行的 Ubuntu 16.04 上1.4安装的 TensorFlow。我按照此处pip的 TensorFlow 线性模型教程运行了一个简单的逻辑回归模型。在本地运行一切正常。我正在按照此处的文档在小型集群上运行模型。据我了解,分发罐装估算器只是设置适当的 JSON 环境变量的问题。我这样做如下:RunConfig()

然后,我从masteras:python tf_dist_example.py 0 chief和另一个窗口中调用脚本:并python tf_dist_example.py 0 psworker-1as:上调用脚本python tf_dist_example.py 0 worker

chief实例抛出错误:tensorflow.python.framework.errors_impl.UnknownError: Could not start gRPC server设置后export GRPC_VERBOSITY=DEBUG,报错gRPC

错误似乎很明显:gRPC 尝试连接的端口已在使用中。但是,我验证netstat -tulpn没有其他进程正在使用这些端口中的任何一个,所以我不明白为什么 gRPC 抱怨它们已经在使用中。此外,如果我创建一个更底层的示例来手动创建一个ClusterSpecand Server,那么 master 和 worker 可以正常通信并且一切都按预期工作。任何人都可以提供有关如何进一步调试或指出我哪里出错的任何建议吗?我相信对于发生的事情有一个简单的解释。gRPC如果有帮助,我可以包含更多消息。

0 投票
2 回答
1349 浏览

tensorflow - How to control amount of checkpoint kept by tensorflow estimator?

I've noticed that the new Estimator API automatically saves checkpoints during the training and automatically restart from the last checkpoint when training was interrupted. Unfortunately it seems it only keeps last 5 check points.

Do you know how to control the number of checkpoints that are kept during the training?

0 投票
0 回答
218 浏览

python - 用于概率分布评分向量的自定义 Estimator Head

我正在使用 TensorFlow 1.4 和 Estimator 框架。

我想tf.contrib.estimator.multi_head用来创建一个头(在具有另一个头的模型中)总结 N 的结果softmax_cross_entropy_with_logits。N 个概率分布均定义在同一组类上,但它们是独立分布。我想计算的总损失分数只是 softmax 交叉熵损失的平方和。

如果我伪造一个包含 N 个零的向量,我几乎可以使用 atf.contrib.estimator.regression_head来计算摘要labels,因为零向量的均方误差相当于对 softmax 损失的平方求和。但这似乎很笨拙,我想要一种更直接的方法。

看来我将需要创建自己的在中_Head实现的子类tensorflow.python.estimator.canned.head,并且必须实现create_loss记录为供框架开发人员使用的方法。

在我开始走这条路之前,我想知道是否有我应该考虑的替代方法。

我最初是用 Keras 开始开发的,曾经有一个使用功能 API 的多头模型。我想知道我是否应该重新使用 Keras,然后model_fn使用tf.keras.estimator.model_to_estimator. 在所有条件相同的情况下,我更愿意使用纯 Tensorflow 成语进行编码,但也许 Keras 是最简单的前进道路。

0 投票
2 回答
5471 浏览

tensorflow - 如何在 Tensorflow Estimator 的每个全局步骤中获取训练损失并评估损失?

我可以在全球每一步都得到训练损失。但我确实想在张量板的图表“lossxx”中添加评估损失。怎么做?

在此处输入图像描述

0 投票
1 回答
2226 浏览

tensorflow - TensorFlow Custom Estimator - 在 model_fn 发生微小变化后恢复模型

tf.estimator.Estimator用于开发我的模型,

我写了一个model_fn并训练了 50,000 次迭代,现在我想对我model_fn的 .

我不想从头开始训练,我想从 50,000 检查点恢复所有旧变量,并从这一点继续训练。当我尝试这样做时,我得到一个NotFoundError

如何做到这一点tf.estimator.Estimator

0 投票
2 回答
6038 浏览

tensorflow - 使用 Estimators API 结合 tf.data.Dataset 时如何加快批量准备

我想加快使用 Estimator API 和 input_fn 编写的训练例程tf.data.Dataset

我的实现需要 2 秒来准备一批数据,然后在 GPU 上运行 1 秒训练,然后重新开始准备一批数据。这真的是低效的。

我正在寻找一种方法来异步准备批次并将它们上传到 GPU 以加快训练速度。或者,另一种方法是在调用之间缓存数据集input_fn(这dataset.cache()似乎不是一个好的选择,因为必须在每次 input_fn 调用时重新创建数据集)。

这是我的代码的简化版本:

我注意到 Estimator API 正在积极开发中,并且在 tensorflow 的主分支中 input_fn 已经可以返回数据集,所以也许我问得太早了,这个功能还没有准备好。但如果是这样,请提供可以跟踪此实施的票证。

0 投票
1 回答
1176 浏览

python - 使用创建的 tensorflow 模型进行预测

我正在查看这篇 Tensorflow 文章的源代码,该文章讨论了如何创建一个广泛而深入的学习模型。https://www.tensorflow.org/versions/r1.3/tutorials/wide_and_deep

这是python源代码的链接:https ://github.com/tensorflow/tensorflow/blob/r1.3/tensorflow/examples/learn/wide_n_deep_tutorial.py

它的目标是训练一个模型,根据人口普查信息中的数据,该模型将预测某人的年收入是否超过或低于 50ka 美元。

按照指示,我正在运行此命令来执行:

我得到的结果如下:

在我在网上看到的各种文章中,它谈到了加载.ckpt文件。当我查看我的模型目录时,我看到了这些文件:

我猜我会使用的是model.ckpt-1.meta,对吗?

但我也对如何使用和提供这个模型数据感到困惑。我在 Tensorflow 的网站上看过这篇文章:https ://www.tensorflow.org/versions/r1.3/programmers_guide/saved_model

上面写着“请注意,Estimators 会自动保存和恢复变量(在 model_dir 中)。” (不确定在这种情况下这意味着什么)

我如何生成人口普查数据格式的信息,除了工资,因为这是我们应该预测的?对我来说,如何使用两篇 Tensorflow 文章以便能够使用经过训练的模型进行预测并不明显。