Code Monkey home page Code Monkey logo

transformertranslation's People

Contributors

moon-hotel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

transformertranslation's Issues

MyMultiheadAttention 中的 padding 操作

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吗?

key_padding_mask 处理bug?

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

train.py报错

运行报错了:init() got an unexpected keyword argument 'specials'
看了下好像是utils\data_helpers.py中return Vocab(counter, specials=specials, min_freq=min_freq)这个函数报错。求解答

load_train_val_test_data()出现问题,train数据集Load完,但一到val数据集就有问题

我是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

train.py 报错

按照 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]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.