问题标签 [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.

0 投票
0 回答
724 浏览

python - 在张量流中恢复模型挂起

我有一个使用 tensor2tensor 用 tensorflow 编写的中等复杂度的模型。(如果相关,它使用 RNN。)模型保存到磁盘的速度相对较快(约 30 秒),但是当我尝试恢复它时,它似乎永远挂起。我给了它半个小时,它永远不会完成。

有趣的是,它能够在作业刚开始时相对有效地恢复模型。当我使用 top 检查正在运行的进程时,成功加载会占用 300% 的 cpu,而不成功的加载会占用大约 30% 的 cpu,而且只是偶尔。

我试图确保我使用的是 protobuf 的 C++ 实现,因为这可能是导致加载缓慢的原因之一。但是,不完全确定如何验证我正在使用它。

0 投票
2 回答
1909 浏览

tensorflow - 如何使用tensor2tensor对文本进行分类?

我只想使用 tensor2tensor 进行二进制文本分类,只需要注意,没有 LSTM 或 CNN 预处理层。我认为transformer_encoder模型对我来说是最好的,但是我找不到任何需要的预定义Problem或Hparams。谁能给我一个使用 tensor2tensor 或其他建议的文本分类示例?

0 投票
0 回答
216 浏览

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 检查点文件(从另一个检查点重用元图)?我试图按照相关问题中的链接进行操作,但没有成功。

0 投票
2 回答
85 浏览

python - 有没有 tpu_trainer_lib 的替代品?

我一直在尝试在本地运行谷歌的 tensor2tensor ( https://github.com/tensorflow/tensor2tensor ),但是当它到达这一点时它会窒息:

这是有道理的,因为我的 Mac 中没有 TPU。有没有替代该功能的方法?

这是错误消息

0 投票
1 回答
646 浏览

tensor2tensor - AttributeError:“HParams”对象没有属性“get”

我们在使用tensor2tensor解码的时候,就遇到过这个问题。

错误是: AttributeError: 'HParams' 对象没有属性 'get'

0 投票
2 回答
650 浏览

google-compute-engine - OutOfRangeError 扩展 Tensor2Tensor Transformer TPU 教程

我按照 T2T Transformer“训练语言模型”示例进行了 10 个训练步骤。但是,当扩展到 250,000 步时,我会收到 OutOfRange 错误(如下)。这是解析问题还是其他问题?

0 投票
2 回答
189 浏览

google-cloud-ml - 基于 TPU 的 CloudML 调优

分布式超参数搜索是否支持 TPU?我正在使用该tensor2tensor库,它支持 CloudML进行超参数搜索,即以下对我来说可以在 GPU 上对语言模型进行超参数搜索:

但是,当我尝试使用 TPU 时,如下所示:

我得到错误:

0 投票
1 回答
180 浏览

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)东西,好像一旦加载了自定义问题,第二个用户目录注册就不会被拾取。

有任何想法吗?提前致谢!

0 投票
1 回答
45 浏览

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

0 投票
1 回答
656 浏览

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