Open wanilyer opened 2 years ago
你使用的是哪个版本的fastNLP?是github上的吗,还是直接pip install fastNLP安装的?
根据报错信息,我怀疑可能是下面这行有问题https://github.com/fastnlp/fastNLP/blob/b127963f213226dc796720193965d86dface07d5/fastNLP/modules/decoder/crf.py#L307
修改成,
flip_mask = torch.logical_not(mask)
应该就可以了。这个错误的根源应该类似于https://github.com/pytorch/pytorch/issues/33692 这个,就是booltensor不支持一些运算,导致torchscript在检查转换前和转换后的tensor的时候,会出现结果对不上的问题。
感谢您的回复
我用都是0.5.0的版本,直接pip install fastNLP安装的
soga,那把这一行修改成mask = mask.transpose(0, 1).data.to(torch.bool)
应该就可以。就是所有的bool类型的数据都不要让它做任何比较或者运算。
好像不行,还是报同样的错哈。
另外还有下面这行,会报错
TypeError: tuple expected at most 1 arguments, got 2
我改成
return torch.Size((self.num_embedding, self._embed_size))
这样就没问题了
确实,感觉fastNLP这些代码应该不太适合转成jit,有太多的逻辑判断了,以及cpu操作了。应该需要你自己对照着稍微改一下。因为jit的话,好像出现constant就不行,但是fastNLP中又大量使用了constant来表示一些数字。
疑似使用crf模块会遇到bug,希望大神帮忙看看,应该怎么解决,谢谢!
Describe the bug
描述
torch.save(model, model_path)
报错信息: