问题标签 [tensor2tensor]
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 - 在张量流中恢复模型挂起
我有一个使用 tensor2tensor 用 tensorflow 编写的中等复杂度的模型。(如果相关,它使用 RNN。)模型保存到磁盘的速度相对较快(约 30 秒),但是当我尝试恢复它时,它似乎永远挂起。我给了它半个小时,它永远不会完成。
有趣的是,它能够在作业刚开始时相对有效地恢复模型。当我使用 top 检查正在运行的进程时,成功加载会占用 300% 的 cpu,而不成功的加载会占用大约 30% 的 cpu,而且只是偶尔。
我试图确保我使用的是 protobuf 的 C++ 实现,因为这可能是导致加载缓慢的原因之一。但是,不完全确定如何验证我正在使用它。
tensorflow - 如何使用tensor2tensor对文本进行分类?
我只想使用 tensor2tensor 进行二进制文本分类,只需要注意,没有 LSTM 或 CNN 预处理层。我认为transformer_encoder模型对我来说是最好的,但是我找不到任何需要的预定义Problem或Hparams。谁能给我一个使用 tensor2tensor 或其他建议的文本分类示例?
python - 如何在没有会话的情况下创建 TensorFlow 检查点?
我想加速一个平均多个 TensorFlow 检查点的工具,但为了简单起见,假设我只需要加载一个检查点,可能修改一些变量并将其保存回磁盘。
当前实现将所有变量加载到numpy数组(3秒),tf.get_variable()
为每个变量准备tf变量(),占位符和assign_ops(20秒),执行初始化所有变量的会话(16秒),运行所有赋值(81秒),最后它将检查点存储到磁盘(24 秒)。总时间为144 秒。
我的替代实现使用tf.get_variable(name, shape=numpy_array.shape, initializer=tf.constant_initializer(numpy_array))
and no placeholders 也没有 assign_ops,因此它将总时间减少到57 seconds。但是,该*.meta
文件还存储了所有常量初始化程序(因此它与主检查点数据文件一样大,这不是我想要的),当我将其应用于更大的检查点时,由于2GB tf 限制而失败。
如果加载所有变量需要 3 秒,我相信存储它们的时间应该远少于 141 秒,甚至少于 54 秒。{var_name1: numpy_array1,...}
有没有办法在不需要运行 tf 会话的情况下将dict写入 tf 检查点文件(从另一个检查点重用元图)?我试图按照相关问题中的链接进行操作,但没有成功。
python - 有没有 tpu_trainer_lib 的替代品?
我一直在尝试在本地运行谷歌的 tensor2tensor ( https://github.com/tensorflow/tensor2tensor ),但是当它到达这一点时它会窒息:
这是有道理的,因为我的 Mac 中没有 TPU。有没有替代该功能的方法?
这是错误消息
tensor2tensor - AttributeError:“HParams”对象没有属性“get”
我们在使用tensor2tensor解码的时候,就遇到过这个问题。
错误是: AttributeError: 'HParams' 对象没有属性 'get'
google-compute-engine - OutOfRangeError 扩展 Tensor2Tensor Transformer TPU 教程
我按照 T2T Transformer“训练语言模型”示例进行了 10 个训练步骤。但是,当扩展到 250,000 步时,我会收到 OutOfRange 错误(如下)。这是解析问题还是其他问题?
google-cloud-ml - 基于 TPU 的 CloudML 调优
分布式超参数搜索是否支持 TPU?我正在使用该tensor2tensor
库,它支持 CloudML进行超参数搜索,即以下对我来说可以在 GPU 上对语言模型进行超参数搜索:
但是,当我尝试使用 TPU 时,如下所示:
我得到错误:
tensorflow - 在 Flask 中导入多个自定义 tensor2tensor 问题
在 flask_restplus API 中,我试图从在一台服务器上提供的两个 tensor2tensor 模型进行推断。这两个模型都是自定义的,所以我将 t2t_usr_dir 提供给 tensor2tensor 的服务函数,以便可以找到自定义问题。
在推断一个自定义问题时,一切都很好,结果也符合预期。但是,当我想推断第二个模型时,程序在
带一个LookupError: my_custom_problem_2 not in the set of supported problems
。
当我切换回第一个模型(my_custom_problem_1)时,一切都很好,日志告诉我存在一个对象。我仔细检查了所有用户和数据目录是否正确。感觉就像是烧瓶的东西或problem = registry.problem(problem)
东西,好像一旦加载了自定义问题,第二个用户目录注册就不会被拾取。
有任何想法吗?提前致谢!
python - 通过 mixin 模式覆盖方法不能按预期工作
我正在尝试为一个问题引入一个 mod/mixin 。特别是,我在这里重点关注SpeechRecognitionProblem
. 我打算修改此问题,因此我寻求执行以下操作:
所以这个做的不多。它hparams()
从基类调用函数,然后更改一些值。
现在,已经有一些现成的问题,例如 Libri Speech:
但是,为了应用我的修改,我这样做:
如果我没记错的话,这应该覆盖其中的所有内容(具有相同的签名)Librispeech
,而是调用SpeechRecognitionProblemMod
.
由于我能够使用此代码训练模型,因此我假设它到目前为止按预期工作。
现在我的问题来了:
训练后我想序列化模型。这通常有效。但是,它不适用于我的 mod,我实际上知道为什么:
在某个时刻hparams()
被调用。调试到这一点将向我显示以下内容:
self.hparams
应该是<bound method SpeechRecognitionProblemMod.hparams of ..>
!似乎由于某种原因直接hparams()
被SpeechRecognitionProblem
调用而不是SpeechRecognitionProblemMod
. 但请注意,它是正确的类型feature_encoders()
!
问题是我知道这在训练期间有效。我可以看到超参数(hparams)被相应地应用,因为模型的图形节点名称通过我的修改而改变。
我需要指出一个专业。tensor2tensor
允许动态加载 a t2t_usr_dir
,这是由 . 加载的附加 python 模块import_usr_dir
。我也在我的序列化脚本中使用了该函数:
这可能是我目前能看到的唯一罪魁祸首,尽管我无法说出为什么这可能会导致问题。
如果有人看到我没有看到的东西,我很乐意在这里得到提示我做错了什么。
那么你得到的错误是什么?
为了完整起见,这是hparams()
调用错误方法的结果:
symbol_modality_256_256
是错的。它应该是symbol_modality_<vocab-size>_256
在哪里<vocab-size>
设置的词汇量SpeechRecognitionProblemMod.hparams
。
tensorflow - 如何使用 tensor2tensor 的蒸馏.py 将知识从教师网络提炼到学生网络?
顶级问题
我想使用教师网络并将其性能/知识从其功能的一小部分提炼到另一个更简单的模型
尝试的解决方案
我正在尝试开始使用 T2T 蒸馏代码。 https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/distillation.py
尝试解决的问题
我正在努力了解如何为我的老师和我的学生使用它。有没有什么例子可以说明我可以先运行它是如何工作的?如何让它在 T2T 中的现有模型上工作?如何让它在 Keras 中定义的模型上工作?
我理解这个块是我应该用来在 T2T 中注册我的模型的。但是我该如何开始训练呢?我在 github 上搜索distill_resnet_32_to_15_cifar20x5
,唯一的命中是 T2T 回购的重复分叉,没有如何使用它的示例。
完整代码:distillation.py