jiesutd / LatticeLSTM

Chinese NER using Lattice LSTM. Code for ACL 2018 paper.
1.8k stars 453 forks source link

TypeError: mul() received an invalid combination of arguments - got (list), but expected one of: #3

Closed qichaotang closed 6 years ago

qichaotang commented 6 years ago

image Hi, run_main.sh by using ResumeNER, but error, I rarely use Pytorch .And I alone run torch.Tensor([1]*seqlen) is success. So I need your help!!!

jiesutd commented 6 years ago

Which PyTorch version do you use?

qichaotang commented 6 years ago

pip Install 0.4

jiesutd commented 6 years ago

Ok, you should read the readme file first. ThIs code need to be run under PyTorch 0.3

qichaotang commented 6 years ago

PyTorch 0.4 can not use PyTorch 0.3 's code...I see different the PyTorch 0.4 and PyTorch 0.3, so I try to run by PyTorch 0.3, Thanks

qichaotang commented 6 years ago

@jiesutd image Hi, see Comments, I am confused, batch_size = 1, but total_batch is large, cost time is large. So where to accumulate?

jiesutd commented 6 years ago

Don’t understand your question.You can write your questions in Chinese.

qichaotang commented 6 years ago

@jiesutd 好吧!那就直接用中文了,这里为啥设置 batch_size = 1, 这样的话,对于每个 Epoch , 都是一个样本一个样本的训练,这样速度很慢吧!而看你的注释, 最近只支持 batch_size = 1 . 还有我跑完了 resume_ner 的结果,为啥是100个 Epoch 都跑完了?不应该是在中途满足某个结果,就中途退出的嘛(如果最好的值在100个Epoch以内的话)还有最终都跑完了,我怎样看是那个 Epoch 结果最好?感谢

jiesutd commented 6 years ago

第一个问题你已经看到了,目前不支持多batch 的训练。 第二个问题,现在的数据集一般都是有开发集 dev set, 然后最终结果是选择开发集最好的那次epoch. 但是MSRA没有,所以只能直接选择最好的测试集结果了。“中途满足结果就退出”,说的是early stop, 不是必须的,只是有的框架选择用有的没有用。我的这个就没有用early stop, 当然如果你想自己加进去其实也很简单。在MSRA 上一般就是在一定迭代次数内选test data的效果最高的作为最终结果(因为没有dev) 。迭代次数的选择50-100都差不多,因为后面基本也不涨了。

qichaotang commented 6 years ago

@jiesutd 对于第一个问题,请问为什么会导致不支持多 batch 训练, 将 batch 设置过大, 会出现效果有问题么?对于第二个问题,我是先使用的你提供的 ResumeNER 数据进行训练的, 既然你提到了MSRA数据,那训练此份数据的话,--dev 和 --test 参数对应的词典都是 测试集 路径了,还有一点,选择效果最高的指标,是看 F1 值么?

jiesutd commented 6 years ago

第一个问题,看这个issue https://github.com/jiesutd/LatticeLSTM/issues/4 第二个问题,是看F1的值。

qichaotang commented 6 years ago

好的,感谢,对于第二个问题再问下, image 对于训练 msra 的数据的话,只有 train 和 test , 于是你就这样训练么?

jiesutd commented 6 years ago

是的

qichaotang commented 6 years ago

好的,感谢!也会关注你的NCRFpp, 话说啥时候更新稳定,看一直在更新呀

jiesutd commented 6 years ago

现在就是稳定可用的,有空会一直更新的。

Roshanson commented 6 years ago

你好 我也遇到了这个 TypeError: mul() received an invalid combination of arguments - got (list)的问题 ,也是在pytorch0.4.0下运行的 请问你后来在 0.4.0下跑通了吗? @qichaotang

wangruicn commented 6 years ago

@Roshanson pytorch 0.4相比0.3变化很大,这份代码在0.4上跑需要修改很多细节