问题标签 [elmo]
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 - ELMo - 如何训练可训练参数
我是 tensorflow-hub 的新手,遇到了 ELMo 模型(https://www.tensorflow.org/hub/modules/google/elmo/2)。
根据原始论文,ELMo 表示是隐藏状态激活的加权平均值,并且这些权重可以根据手头的任务(即特定任务)进行训练。正如预期的那样,当我使用 tf.trainable_variables() 时,我可以看到 4 个可训练参数。如何在 tensorflow 中准确训练这些变量?
他们只是提到这些权重是可训练的。但谁应该训练它?Me 还是 ELMo 模型本身训练呢?论文似乎建议我应该训练它。如果是这样,我如何在张量流中训练它?
python - 使用 ELMo 嵌入段落
我试图了解如何为 ELMo 矢量化准备段落。
该文档仅显示了如何同时嵌入多个句子/单词。
例如。
据我了解,这将返回 2 个向量,每个向量代表一个给定的句子。我将如何准备输入数据以矢量化包含多个句子的整个段落。请注意,我想使用我自己的预处理。
可以这样做吗?
或者可能是这样?
python - 了解 ELMo 的演示数量
我正在尝试使用 ELMo,只是将它用作更大的 PyTorch 模型的一部分。这里给出了一个基本的例子。
这是一个 torch.nn.Module 子类,它计算任意数量的 ELMo 表示并为每个表示引入可训练的标量权重。例如,此代码片段计算两层表示(如我们论文中的 SNLI 和 SQuAD 模型):
我的问题涉及“陈述”。你能将它们与普通的 word2vec 输出层进行比较吗?您可以选择返回多少个 ELMo(增加第 n 个维度),但是这些生成的表示之间有什么区别,它们的典型用途是什么?
给你一个想法,对于上面的代码,embeddings['elmo_representations']
返回两个项目(两个表示层)的列表,但它们是相同的。
简而言之,如何定义 ELMo 中的“表示”?
tensorflow - elmo 预训练模型的输出
我正在做情绪分析。我正在使用 elmo 方法来获取词嵌入。但我对这种方法给出的输出感到困惑。考虑张量流网站中给出的代码:
特定句子的嵌入向量根据您提供的字符串数量而有所不同。详细解释让
所以x1[0]
不会等于z1[0]
。这会随着您更改字符串的输入列表而改变。为什么一个句子的输出取决于另一个。我没有训练数据。我只使用现有的预训练模型。在这种情况下,我很困惑如何将我的评论文本转换为嵌入并用于情绪分析。请解释。
注意:要获取嵌入向量,我使用以下代码:
python - 将 Elmo 与 tf.Keras 一起使用会引发 ValueError:无法将字符串转换为浮点数
我正在尝试将 Elmo 与tf.keras
. 然而,呼吁model.fit
原因ValueError: could not convert string to float
- 张量流版本:1.13.1
- numpy 版本:1.14.6
这是完整的代码:
colab 链接在这里:https ://colab.research.google.com/drive/1SvGOEtCYHJkpBVAOU0qRtwR8IPE_b2Lw
完整的错误代码:
keras - 如何在预训练的 ELMO 嵌入中获得相似的单词?
如何在预训练的 ELMO 嵌入中获得给定单词的相似词?例如:在 Glove 中,我们有 glove_model.most_similar() 来查找最相似的词及其对任何给定词的嵌入。同样,我们在 ELMO 中有什么东西吗?
tensorflow - 我的 ELMo 训练模型提供的输出字典具有与 tf.hub 模型不同的字段
使用预训练的 ElMo 模型时,我得到的输出字典与已发布的tf.hub 模型中解释的输出字典不同 我的输出字典的签名是
而来自的输出字典tf hub
包含:
- word_emb:形状为 [batch_size, max_length, 512] 的基于字符的词表示。
- lstm_outputs1:第一个 LSTM 隐藏状态,形状为 [batch_size, max_length, 1024]
- lstm_outputs2:形状为 [batch_size, max_length, 1024] 的第二个 LSTM 隐藏状态。
- elmo:3 层的加权和,其中权重是可训练的。这个张量的形状为 [batch_size, max_length, 1024]
- 默认值:具有形状 [batch_size, 1024] 的所有上下文化单词表示的固定均值池。
如何访问word_emb, lstm_outputs1, lstm_outputs2 ..
输出字典中的字段?我正在按照使用示例从这个链接缓存数据集
tensorflow - 在简单的 colab 教程中使用 ELMo 交换 gnews
我正在研究这个 colab 笔记本:
我想用 ELMo 嵌入替换 gnews 旋转嵌入。
所以,更换
和:
这里有一连串的变化,比如需要
但我不了解成功进行此替换所需的图形形状。具体来说,我看到了。
生产
这似乎很好。但:
然后这给出:
图表尺寸还有什么变化,我该如何解决?
keras - 字符串数据类型的 keras pad_sequence
我有一个句子列表。我想为它们添加填充;但是当我像这样使用 keras pad_sequence 时:
结果是:
为什么它不能正常工作?
我想将此结果用作 ELMO 嵌入的输入,并且我需要字符串句子而不是整数编码。
python - 无法安装 Bert Serving 服务器。“找不到满足要求 bert-serving-server 的版本”
我正在尝试在我的办公机器上设置 bert-as-service,但我一直收到同样的错误。
我在我的 Conda 环境中有 Python 3.6.8 :: Anaconda, Inc. 和 Tensorflow 1.10.0,在我的本地机器(CMD)(Windows 10)上有 Python 3.7.2。
我的本地机器上没有 tensorflow,因为我在尝试安装 bert-as-service 时不断收到相同的错误。
- 我可以在 Conda 环境中安装 bert-as-service 吗?如果是,有人可以告诉我如何解决以下问题吗?
- 如果没有,我如何在我的系统上安装 tensorflow,然后再安装 bert-as-service?
错误 1 - 尽管有必要条件,但无法在 Conda 中安装 bert-as-service:
Error2 - 无法在我的本地机器上安装 tensorflow: