moon-hotel / transformertranslation Goto Github PK
View Code? Open in Web Editor NEWA Transformer Framework Based Translation Task
A Transformer Framework Based Translation Task
if key_padding_mask is not None: attn_output_weights = attn_output_weights.view(bsz, num_heads, tgt_len, src_len) # 变成 [batch_size, num_heads, tgt_len, src_len]的形状 attn_output_weights = attn_output_weights.masked_fill( key_padding_mask.unsqueeze(1).unsqueeze(2), # 扩展维度,从[batch_size,src_len]变成[batch_size,1,1,src_len] float('-inf')) # attn_output_weights = attn_output_weights.view(bsz * num_heads, tgt_len, src_len) # [batch_size * num_heads, tgt_len, src_len]
中的 attn_output_weights = attn_output_weights.masked_fill(padding_mask.unsqueeze(1).unsqueeze(2), float('-inf'))
是否应该是 attn_output_weights = attn_output_weights.masked_fill(padding_mask.unsqueeze(1).unsqueeze(2) == False, float('-inf'))
??
在使用python train.py的时候 报错
rnatives. (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/torch/csrc/tensor/python_tensor.cpp:453.)
_C._set_default_tensor_type(t)
Traceback (most recent call last):
File "/Users/wangwan/Desktop/TransformerTranslation-main/train.py", line 152, in
train_model(config)
File "/Users/wangwan/Desktop/TransformerTranslation-main/train.py", line 51, in train_model
data_loader = LoadEnglishGermanDataset(config.train_corpus_file_paths,
File "/Users/wangwan/Desktop/TransformerTranslation-main/utils/data_helpers.py", line 43, in init
self.tokenizer = tokenizer()
File "/Users/wangwan/Desktop/TransformerTranslation-main/utils/data_helpers.py", line 13, in my_tokenizer
tokenizer['de'] = get_tokenizer('spacy', language='de_core_news_sm') # 德语
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/torchtext/data/utils.py", line 114, in get_tokenizer
spacy = spacy.load(language)
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/init.py", line 50, in load
return util.load_model(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/util.py", line 324, in load_model
return load_model_from_package(name, **kwargs)
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/util.py", line 357, in load_model_from_package
return cls.load(vocab=vocab, disable=disable, exclude=exclude, config=config)
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/de_core_news_sm/init.py", line 10, in load
return load_model_from_init_py(file, **overrides)
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/util.py", line 517, in load_model_from_init_py
return load_model_from_path(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/util.py", line 392, in load_model_from_path
nlp = load_model_from_config(config, vocab=vocab, disable=disable, exclude=exclude)
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/util.py", line 429, in load_model_from_config
nlp = lang_cls.from_config(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/language.py", line 1672, in from_config
nlp.add_pipe(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/language.py", line 774, in add_pipe
pipe_component = self.create_pipe(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/spacy/language.py", line 660, in create_pipe
resolved = registry.resolve(cfg, validate=validate)
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/thinc/config.py", line 746, in resolve
resolved, _ = cls._make(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/thinc/config.py", line 795, in _make
filled, _, resolved = cls._fill(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/thinc/config.py", line 850, in _fill
filled[key], validation[v_key], final[key] = cls._fill(
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/thinc/config.py", line 849, in _fill
promise_schema = cls.make_promise_schema(value, resolve=resolve)
File "/Users/wangwan/opt/anaconda3/lib/python3.9/site-packages/thinc/config.py", line 1057, in make_promise_schema
return create_model("ArgModel", **sig_args)
File "pydantic/main.py", line 990, in pydantic.main.create_model
File "pydantic/main.py", line 299, in pydantic.main.ModelMetaclass.new
File "pydantic/fields.py", line 411, in pydantic.fields.ModelField.infer
File "pydantic/fields.py", line 342, in pydantic.fields.ModelField.init
File "pydantic/fields.py", line 451, in pydantic.fields.ModelField.prepare
File "pydantic/fields.py", line 550, in pydantic.fields.ModelField._type_analysis
File "/Users/wangwan/opt/anaconda3/lib/python3.9/typing.py", line 852, in subclasscheck
return issubclass(cls, self.origin)
TypeError: issubclass() arg 1 must be a class
下面是翻译结果
德语:Eine Gruppe von Menschen steht vor einem Iglu.
翻译: A group of people standing in front of an outdoor studio .
英语:A group of people are facing an igloo.
德语:Ein Mann in einem blauen Hemd steht auf einer Leiter und putzt ein Fenster.
翻译: A man in a shirt standing on a ladder and cleaning a ladder .
英语:A man in a blue shirt is standing on a ladder cleaning a window.
需要更多的train data吗?
你就不能给个训练结果吗,还要我们自己训练,挺麻烦的
MyTransformer.py的 multi_head_attention_forward()里,这里是不是错了?
attn_output_weights = attn_output_weights.masked_fill(
key_padding_mask.unsqueeze(1).unsqueeze(2),
float('-inf')) #
应该填充的位置是key_padding_mask.unsqueeze(1).unsqueeze(2) == 0的地方吧。 少了一个 == 0
I can't find this in config.please
运行报错了:init() got an unexpected keyword argument 'specials'
看了下好像是utils\data_helpers.py中return Vocab(counter, specials=specials, min_freq=min_freq)这个函数报错。求解答
我是python小白,运行代码说 RuntimeError: Token Eine not found and default index is not set ,但我用print查找过有这个Eine字符, 请问是什么问题?
=======================================================================
49 data_loader.load_train_val_test_data(config.train_corpus_file_paths,
50 config.val_corpus_file_paths,
---> 51 config.test_corpus_file_paths)
52 logging.info("############初始化模型############")
53 translation_model = TranslationModel(src_vocab_size=len(data_loader.de_vocab),
/tmp/ipykernel_27/774184140.py in load_train_val_test_data(self, train_file_paths, val_file_paths, test_file_paths)
42 print('load traning data done')
43
---> 44 val_data = self.data_process(val_file_paths)
45 print('load val data done')
46
/tmp/ipykernel_27/774184140.py in data_process(self, filepaths)
25 for (raw_de, raw_en) in tqdm(zip(raw_de_iter, raw_en_iter),ncols=80):
26 de_tensor_ = torch.tensor([self.de_vocab[token] for token in
---> 27 self.tokenizer'de'], dtype=torch.long)
28 en_tensor_ = torch.tensor([self.en_vocab[token] for token in
29 self.tokenizer'en'], dtype=torch.long)
/tmp/ipykernel_27/774184140.py in (.0)
24 logging.info(f"### 正在将数据集 {filepaths} 转换成 Token ID ")
25 for (raw_de, raw_en) in tqdm(zip(raw_de_iter, raw_en_iter),ncols=80):
---> 26 de_tensor_ = torch.tensor([self.de_vocab[token] for token in
27 self.tokenizer'de'], dtype=torch.long)
28 en_tensor_ = torch.tensor([self.en_vocab[token] for token in
/opt/conda/lib/python3.7/site-packages/torchtext/vocab/vocab.py in getitem(self, token)
62 The index corresponding to the associated token.
63 """
---> 64 return self.vocab[token]
65
66 @torch.jit.export
RuntimeError: Token Eine not found and default index is not set
在这个位置:
loss_fn = torch.nn.CrossEntropyLoss(ignore_index=data_loader.PAD_IDX)
optimizer = torch.optim.Adam(translation_model.parameters(),
lr=0.,
betas=(config.beta1, config.beta2), eps=config.epsilon)
按照 README 配置环境后,执行 python train.py 过程中会报如下这种错误:
de_tensor_ = torch.tensor([self.de_vocab[token] for token in
File "/usr/local/lib/python3.9/site-packages/torchtext/vocab/vocab.py", line 64, in getitem
return self.vocab[token]
RuntimeError: Token Bude not found and default index is not set
请问是有可能是哪一步没弄对吗?
torchtext == [0.12.0]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.