答案 0 :(得分:0)
您正在运行Windows吗?当前大多数Pytorch教程都需要Pytorch 1.0,而Windows上目前不提供Pytorch 1.0,我正在其他操作系统中进行尝试。
我将在Ubuntu 18上运行它后立即编辑答案。
答案 1 :(得分:0)
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
这是因为某些对是空列表
答案 2 :(得分:0)
我认为问题在于读取行导致空白行的方式。您可以通过滤除空白行来粗略地解决问题。这是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
答案 3 :(得分:0)
有点晚了,但是在同一教程之前,我在这一行遇到了同样的错误。我也在Windows上的3.6上运行,在加载PyTorch或使用CUDA进行任何操作时都没有问题。对我来说,问题出在数据中。
这是因为源数据中的某处有一个空白行,所以当它为该功能拆分列表中的单词时,就会抛出此错误-没有单词可以拆分。