TypeError Traceback (most recent call last) Cell In[70], line 1 ----> 1 train_iter, src_vocab, tgt_vocab = load_data_nmt(batch_size=2, num_steps=8) 2 for X, X_valid_len, Y, Y_valid_len in train_iter: 3 print('X:', X.type(torch.int32)) Cell In[69], line 5, in load_data_nmt(batch_size, num_steps, num_examples) 3 """返回翻译数据集的迭代器和词表""" 4 text = preprocess_nmt(read_data_nmt()) ----> 5 source, target = tokenize_nmt(text, num_examples) 6 src_vocab = d2l.Vocab(source, min_freq=2, 7 reserved_tokens=['<pad>', '<bos>', '<eos>']) 8 tgt_vocab = d2l.Vocab(target, min_freq=2, 9 reserved_tokens=['<pad>', '<bos>', '<eos>']) Cell In[65], line 11, in tokenize_nmt(lines, token) 9 return [list(line) for line in lines] 10 else: ---> 11 print('错误:未知词元类型:' % token) TypeError: not all arguments converted during string formatting
时间: 2024-03-01 16:53:45 浏览: 104
这个错误是因为在`print`语句中使用了格式化字符串,但是格式化字符串的占位符没有使用正确的格式化方式。建议将`%`符号改为`{}`,并使用`format`方法进行字符串格式化,示例如下:
```python
print('错误:未知词元类型:{}'.format(token))
```
或者使用f-string(Python 3.6及以上版本支持):
```python
print(f'错误:未知词元类型:{token}')
```
相关问题
TypeError Traceback (most recent call last) <ipython-input-21-656cfe61f5bf> in <module>() 5 epochs=2, 6 validation_split=0.2, ----> 7 shuffle=True) 8 9 TypeError: fit() got an unexpected keyword argument 'batch_size'
这是一个关于 Python 代码中 fit() 函数的 TypeError,可能是由于 fit() 函数没有 batch_size 参数导致的。建议检查一下代码中的 fit() 函数,确认是否有输入正确的参数。如果需要更多的帮助,可以提供更详细的代码和错误信息,我会尽力帮忙解决问题。
TypeError Traceback (most recent call last) Cell In[76], line 1 ----> 1 train_iter, src_vocab, tgt_vocab = load_data_nmt(batch_size=2, num_steps=8) 2 for X, X_valid_len, Y, Y_valid_len in train_iter: 3 print('X:', X.type(torch.int32)) Cell In[75], line 5, in load_data_nmt(batch_size, num_steps, num_examples) 3 """返回翻译数据集的迭代器和词表""" 4 text = preprocess_nmt(read_data_nmt()) ----> 5 source, target = tokenize_nmt(text, num_examples) 6 src_vocab = d2l.Vocab(source, min_freq=2, 7 reserved_tokens=['<pad>', '<bos>', '<eos>']) 8 tgt_vocab = d2l.Vocab(target, min_freq=2, 9 reserved_tokens=['<pad>', '<bos>', '<eos>']) TypeError: cannot unpack non-iterable NoneType object
这个错误是因为`tokenize_nmt`函数返回了`None`对象,而在调用`load_data_nmt`函数时,使用了解包操作来获取返回值。这表明`tokenize_nmt`函数在执行过程中出现了错误,导致返回值为空。建议检查`tokenize_nmt`函数的实现,确保它能够正确地返回词元化后的源语言和目标语言序列,并且返回值是一个可以迭代的对象。另外,也可以在`load_data_nmt`函数中添加适当的异常处理代码,以便在出现错误时能够捕获并处理异常。
阅读全文