ELMo 嵌入中的`Highway.forward:输入必须存在`?

问题描述

我使用 Elmo Embeddings 来完成我的 NLP 任务。 pretrain 是来自 this git 的印度尼西亚语。使用语法导入库

export const LOGIN_CHECK = ' LOGIN_CHECK'; export const logoUT_CHECK = 'logoUT_CHECK'; export const logoutClickevent = () => { console.log('logoutaction'); return { type: logoUT_CHECK,}; }; export const loginCheck = () => { return { type: LOGIN_CHECK,}; }; case LOGIN_CHECK: draft.logInDone = true; break; case logoUT_CHECK: draft.logInDone = false; break; default: return state;

导致以下错误

from elmoformanylangs import Embedder

请帮助我理解错误消息的含义。

解决方法

不确定这是否有帮助,但这指的是 torch.nn.Module 中未实现的超类方法 (forward)。此类具有以下定义。

forward: Callable[...,Any] = _forward_unimplemented

如果向下滚动一点,您将看到 _forward_unimplemented 的定义:

def _forward_unimplemented(self,*input: Any) -> None:

Highway forward 定义也必须匹配这个签名,因此你也需要一个 *input 参数。 我的匈牙利语版本使用以下签名和第一行,可能这也可以帮助您。

    def forward(self,*input: torch.Tensor) -> type(None): #pylint: disable=arguments-differ
    current_input = input[0]

我刚刚在 python 环境的 site-packages 下编辑了我的 \elmoformanylangs\modules\highway.py 文件,并使其正常工作。