簡體   English   中英

TorchText Vocab TypeError: Vocab.__init__() 有一個意外的關鍵字參數 'min_freq'

[英]TorchText Vocab TypeError: Vocab.__init__() got an unexpected keyword argument 'min_freq'

我正在研究 CNN 情感分析機器學習 model,它使用 Torchtext 庫提供的 IMDb 數據集。 在我的一行代碼中

vocab = Vocab(counter, min_freq = 1, specials=('\<unk\>', '\<BOS\>', '\<EOS\>', '\<PAD\>'))

即使我確定它是 function 接受的 arguments 之一,我也收到 min_freq 參數的 TypeError。我也收到 UserWarning Lambda function 不支持 pickle,請改用常規 88276540434904886580 48634 完整代碼

from torchtext.datasets import IMDB
from collections import Counter
from torchtext.data.utils import get_tokenizer
from torchtext.vocab import Vocab
tokenizer = get_tokenizer('basic_english')  
train_iter = IMDB(split='train')
test_iter = IMDB(split='test')
counter = Counter()
for (label, line) in train_iter:
    counter.update(tokenizer(line))
vocab = Vocab(counter, min_freq = 1, specials=('\<unk\>', '\<BOS\>', '\<EOS\>', '\<PAD\>'))

源鏈接towardsdatascience github Legacy to new

我嘗試刪除 min_freq 參數並使用默認函數如下

vocab = Vocab(counter, specials=('\<unk\>', '\<BOS\>', '\<EOS\>', '\<PAD\>'))

但是我最終得到了相同類型的錯誤,但針對的是 specials 參數而不是 min_freq。

任何幫助都感激不盡

謝謝你。

https://github.com/pytorch/text/issues/1445所述,您應該將“Vocab”更改為“vocab”。 我認為他們錯過了舊筆記本到新筆記本的類型。

正確代碼:

from torchtext.datasets import IMDB
from collections import Counter
from torchtext.data.utils import get_tokenizer
from torchtext.vocab import vocab
tokenizer = get_tokenizer('basic_english')  
train_iter = IMDB(split='train')
test_iter = IMDB(split='test')
counter = Counter()
for (label, line) in train_iter:
    counter.update(tokenizer(line))
vocab = vocab(counter, min_freq = 1, specials=('\<unk\>', '\<BOS\>', '\<EOS\>', '\<PAD\>'))

我的環境:

  • python 3.9.12
  • 火炬文本 0.12.0
  • pytorch 1.11.0

您可以嘗試使用 torchtext.legacy.vocab 而不是 torchtext.vocab,這可能會解決問題。 這對我有用:

from torchtext.datasets import IMDB
from collections import Counter
from torchtext.data.utils import get_tokenizer
from torchtext.legacy.vocab import vocab

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM