data2vecでtextをベクトルに変換したい(試行錯誤)
Data2VecTextModel.from_pretrained
code:python
$ python -i models/data2vec_text.py
>> model = Data2VecTextModel.from_pretrained(".", "nlp_base.pt")
>> type(model)
<class 'fairseq.hub_utils.GeneratorHubInterface'>
__call__は実装されていない
code:python
>> model("Hello world!")
NotImplementedError
strを渡してencodeを呼ぶと未知語扱い
code:python
>> model.encode("Hello world!")
>> model.decode(torch.tensor(3, 3, 2)) '<unk> <unk>'
READMEに、robertaのREADME参照と書かれているので、robertaを参考にしてみる
robertaのモデル定義に「adapt data2vec models」とコメントあり
RobertaModel.from_pretrained
pip install requests
code: python
$ python
>> from fairseq.models.roberta import RobertaModel
>> model = RobertaModel.from_pretrained(".", "nlp_base.pt")
>> model.eval()
__call__は実装されていない
code:python
>> model("Hello world!")
NotImplementedError
strを渡してencodeを呼ぶとLongTensorが返る
code:python
>> model.encode("Hello world!")
>> model.encode("Hello world") # !は328とわかる
>> import torch
'Hello world!'