问题标签 [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.
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_fn
?Logits
当我明确告诉它不要时,为什么估计器试图从检查点加载' 权重?
更新:
在评论中的建议之后,我尝试了其他方法来调用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
最后!
我现在将验证这是否确实解决了问题,如果是这样,我会发布答案。
python - tf.estimator.DNNClassifier 不可用
我正在尝试使用 tensorflow,但 tf.estimator 不提供 DNNClassifier(和其他估计器)。
我在 Windows 10 上的 Anaconda 中运行 Python 3.6。我使用 conda install tensorflow 来加载和导入 tensorflow 作为 tf 来导入包。
当我尝试使用 DNNClassifier 时,我收到错误消息:
有没有其他人有这个问题?
tensorflow - tf.estimator 的 gRPC 错误
我正在运行通过在 OpenStack 上运行的 Ubuntu 16.04 上1.4
安装的 TensorFlow。我按照此处pip
的 TensorFlow 线性模型教程运行了一个简单的逻辑回归模型。在本地运行一切正常。我正在按照此处的文档在小型集群上运行模型。据我了解,分发罐装估算器只是设置适当的 JSON 环境变量的问题。我这样做如下:RunConfig()
然后,我从master
as:python tf_dist_example.py 0 chief
和另一个窗口中调用脚本:并python tf_dist_example.py 0 ps
在worker-1
as:上调用脚本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 抱怨它们已经在使用中。此外,如果我创建一个更底层的示例来手动创建一个ClusterSpec
and Server
,那么 master 和 worker 可以正常通信并且一切都按预期工作。任何人都可以提供有关如何进一步调试或指出我哪里出错的任何建议吗?我相信对于发生的事情有一个简单的解释。gRPC
如果有帮助,我可以包含更多消息。
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?
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 是最简单的前进道路。
tensorflow - TensorFlow Custom Estimator - 在 model_fn 发生微小变化后恢复模型
我tf.estimator.Estimator
用于开发我的模型,
我写了一个model_fn
并训练了 50,000 次迭代,现在我想对我model_fn
的 .
我不想从头开始训练,我想从 50,000 检查点恢复所有旧变量,并从这一点继续训练。当我尝试这样做时,我得到一个NotFoundError
如何做到这一点tf.estimator.Estimator
?
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 已经可以返回数据集,所以也许我问得太早了,这个功能还没有准备好。但如果是这样,请提供可以跟踪此实施的票证。
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 文章以便能够使用经过训练的模型进行预测并不明显。