Python Pytorch聊天机器人教程问题:如何解决列表索引超出范围的问题
我是pytorch的新手,一直在学习许多可用的教程。 但是,当我做这件事的时候,那不是工作 如下图所示Python Pytorch聊天机器人教程问题:如何解决列表索引超出范围的问题,python,nlp,pytorch,chatbot,Python,Nlp,Pytorch,Chatbot,我是pytorch的新手,一直在学习许多可用的教程。 但是,当我做这件事的时候,那不是工作 如下图所示 我该怎么办?是什么原因造成的?您正在运行Windows吗?目前大多数Pytorch教程都需要Pytorch 1.0,这在Windows上是不可用的,我正在另一个操作系统中尝试 我会在Ubuntu 18上运行后立即编辑答案 def filter_pair(self, p): try: return len(p[0].split(' ')) < self.MAX_LE
我该怎么办?是什么原因造成的?您正在运行Windows吗?目前大多数Pytorch教程都需要Pytorch 1.0,这在Windows上是不可用的,我正在另一个操作系统中尝试 我会在Ubuntu 18上运行后立即编辑答案
def filter_pair(self, p):
try:
return len(p[0].split(' ')) < self.MAX_LENGTH and len(p[1].split(' '))<\ self.MAX_LENGTH
except:
return False
这是因为一些对是空列表我认为问题在于读取行的方式导致了空行。通过过滤掉空行,你可以相当粗略地解决这个问题。这是readVocs例程中的原始解决方案
# Read query/response pairs and return a voc object
def readVocs(datafile, corpus_name):
print("Reading lines...")
# Read the file and split into lines
lines = open(datafile, encoding='utf-8').\
read().strip().split('\n')
#Now on windows you seem to get alternate blank lines so filter them out.
lines2=[]
for l in lines:
if len(l)>0:
lines2.append(l)
#And as a check just print the first 10
for index, line in enumerate(lines2[:10]):
print(index,' - ',line)
# Split every line into pairs and normalize
pairs = [[normalizeString(s) for s in l.split('\t')] for l in lines2]
voc = Voc(corpus_name)
return voc, pair
有点晚了,但在同一个教程中,我在这一行遇到了同样的错误。我也在Windows上运行3.6,在加载PyTorch或运行CUDA时没有任何问题。对我来说,问题在于数据
这是因为源数据中的某个地方有一个空行,所以当它为该函数拆分列表中的单词时,抛出了此错误-没有要拆分的单词。请不要将错误消息放在图像中,而是将文本粘贴到实际的帖子中。谢谢,但语料库是康奈尔大学电影对话语料库。语料库<是电影角色对话的丰富数据集:10292对电影角色之间的220579次对话617部电影中的9035个角色304713次总话语我不理解培训数据中的空列表,但它显示了我们开始准备训练数据。。。阅读台词。。。阅读442563句是的,我在windows上运行它,但我毫无疑问地导入了torch。python 3.6 软件包:pip,CUDA:9.0似乎有些数据处理有问题。因为错误消息显示:indexer错误:列表索引超出范围,我正在另一个操作系统中尝试。我会在Ubuntu 18上运行后立即编辑答案。啊,太令人兴奋了,我会尽快尝试的。错误似乎发生在:def filterPairp:def filterPairspairs:我对此感到非常困惑。我用上面提到的教程尝试了上述内容,它在Windows上运行得非常愉快,Torch版本为0.4.1欢迎使用Stackoverflow!您可以提供您看到的具体错误,并举例说明如何更正该问题,从而帮助改进您的帖子?