-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
训练时遇到的问题: AttributeError: 'Vocab' object has no attribute 'itos' #5
Comments
这是TorchText升级后更改了API导致的。有两个办法:
|
谢谢!第二个方法解决了问题(不过现在0.9.1不支持了,我downgrade到了0.6.0)。 |
噢,确实是我改代码时没有改完。 |
诶可是uientry.py这个我已经改了,main的第一句和上面line 88我也去掉了其他的,只保留了modes = [Mode('五言律诗', 'wuyanlvshi_final_model.pt')],可是还是出现了上面的问题。 |
对不起那个testui.py我用jupyter notebook运行就没问题了,谢谢!可是我还是想问下uientry.py的PoetModel' object has no attribute 'generate_square_subsequent_mask 应该怎么解决啊 |
uientry的问题原因是,我在main部分调用了针对transformer模型的交互代码,transformer相比LSTM多了一个遮罩,所以多一个生成遮罩的过程。你运行main.py训练出来的是LSTM模型,直接运行uientry.py时模式对不上,所以会报错。这一段代码本来没打算用在演示中,只用来debug看看模型效果,所以没有改掉。我不确定你现在uientry.py是什么样的,解决方法就是把 我刚刚push了一个版本上去,把uientry.py对应的这一句改了。另外,我写了一个cmdline.py,专门用于通过命令行与训练好的LSTM模型交互,我会推荐你用这个新的代码文件。你只需要把54行(main部分第一句)改成 |
谢谢!已经完全可以运行通了!抱歉我还有个问题就是您推荐运行多少epoch呢?我运行了100个然后如下是我的结果,感觉有些没训练的很好,而且效果和epoch=20的差不多?: |
是的,epoch=50之后就差不多了,而且写出来的都是一些有古诗味但不知所言的诗句。我觉得这不是训练次数的问题,而是这个模型不太适合写诗的任务。具体来说,一是LSTM可能不适合这种创作性的预测任务,更适合比较确定的序列预测;二是这个模型只对诗句做了简单的Embedding,可能没有编码诗句内的语义信息;三是模型训练时用了交叉熵作为损失函数,可能不适合这种创作性的任务。总而言之,目前的效果接近模型上限,调整训练次数应该不会有很大的改观。 |
好的谢谢!非常感谢您的帮助!(原来你也玩原神,官服的话要不要加个好友) |
哈哈哈没事,我现在基本退坑了,一个月只上两天打打深渊那种 |
哦哦哦好的好的,谢谢大佬! |
运行main.py时遇到如下问题:
(base) jihanwang@jihandeMacBook-Air nlp-poet % python main.py Traceback (most recent call last): File "/Users/jihanwang/Desktop/学习/FYP/nlp-poet/main.py", line 20, in <module> dataset = poet_dataset(data_path, train_batch_size, eval_batch_size) File "/Users/jihanwang/Desktop/学习/FYP/nlp-poet/dataloader.py", line 35, in __init__ self.ntoken = len(self.vocab.itos) File "/Users/jihanwang/opt/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1207, in __getattr__ raise AttributeError("'{}' object has no attribute '{}'".format( AttributeError: 'Vocab' object has no attribute 'itos'
The text was updated successfully, but these errors were encountered: