#24 ValueError: For 'initializer', the shape of the 'init' argument should be same as the argument 'shape', but got the 'init' shape [40000, 2560] and the 'shape' [1024, 2560]

Open
created 9 months ago by rickyzhu · 1 comments
## 问题 使用[鹏城·盘古α-2.6B-NPU](https://openi.pcl.ac.cn/PCL-Platform.Intelligence/pcl_pangu/modelmanage/model_readme_tmpl?name=%E9%B9%8F%E5%9F%8E%C2%B7%E7%9B%98%E5%8F%A4%CE%B1-2.6B-NPU)环境尝试跑通MindSpore版的pangu 2B6。下载后所有模型文件放在`/home/ma-user/work/model`目录下,将文件前缀`盘古α_2.6B_`全部去掉,在ipython运行一下代码 ```python (MindSpore) [ma-user work]$ipythonPython 3.7.6 | packaged by conda-forge | (default, Jun 1 2020, 18:15:32) Type 'copyright', 'credits' or 'license' for more information IPython 7.29.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: from pcl_pangu.context import set_context ...: from pcl_pangu.model import alpha, evolution, mPangu ...: ...: set_context(backend='mindspore') ...: config = alpha.model_config_npu(model='2B6',load='./model') ...: alpha.inference(config,input='四川的省会是?') ``` 报错如下: ```python --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-1-fa31d81797ff> in <module> 4 set_context(backend='mindspore') 5 config = alpha.model_config_npu(model='2B6',load='./model') ----> 6 alpha.inference(config,input='四川的省会是?') ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/alpha/alpha.py in inference(config, top_k, top_p, input, input_file, generate_max_tokens, output_file, oneCardInference) 96 config_dict['output_file'] = output_file 97 config_dict['generate_max_tokens'] = generate_max_tokens ---> 98 run_ms_inference(config_dict) 99 100 elif 'onnx-' in backend_context: ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/alpha/alpha.py in run_ms_inference(config_dict) 160 from inference_alpha_ms13 import opt, setup_args, main 161 new_opt = setup_args(opt, config_dict) --> 162 main(new_opt) 163 164 def run_ms_finetune_merge_OpenI(config_dict): ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/panguAlpha_mindspore/inference_alpha_ms13.py in main(opt) 316 """Main process for predict or export model""" 317 --> 318 model_predict, config = load_model(opt) 319 if opt.export: 320 export_mindir(model_predict, config) ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/panguAlpha_mindspore/inference_alpha_ms13.py in load_model(args_opt) 134 ckpt_name = args_opt.load_ckpt_name 135 # Define network --> 136 pangu_alpha = PanguAlpha(config) 137 ################################ 138 eval_net = EvalNet(pangu_alpha) ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/panguAlpha_mindspore/src/pangu_alpha.py in __init__(self, config) 1068 self.vocab_size = config.vocab_size 1069 self.embedding_size = config.embedding_size -> 1070 self.backbone = PanguAlpha_Model(config) 1071 if config.stage_num > 1: 1072 ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/panguAlpha_mindspore/src/pangu_alpha.py in __init__(self, config) 929 def __init__(self, config): 930 super(PanguAlpha_Model, self).__init__() --> 931 self.embedding = PanguAlphaEmbedding(config) 932 self.blocks = nn.CellList() 933 self.use_past = config.use_past ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/panguAlpha_mindspore/src/pangu_alpha.py in __init__(self, config) 898 def __init__(self, config): 899 super(PanguAlphaEmbedding, self).__init__() --> 900 self.embedding = Embedding(config) 901 if config.stage_num > 1: 902 self.embedding.pipeline_stage = 0 ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/pcl_pangu/model/panguAlpha_mindspore/src/pangu_alpha.py in __init__(self, config) 683 config.seq_length, 684 config.embedding_size, --> 685 embedding_table=position_table_param).set_comm_fusion(1) 686 self.position_embedding.embedding_table.parallel_optimizer = False 687 self.position_embedding.gather.shard(((1, 1), (config.dp,))) ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/mindspore/nn/layer/embedding.py in __init__(self, vocab_size, embedding_size, use_one_hot, embedding_table, dtype, padding_idx) 107 self.dtype = dtype 108 print(vocab_size, embedding_size) --> 109 self.init_tensor = initializer(embedding_table, [vocab_size, embedding_size]) 110 self.padding_idx = padding_idx 111 if padding_idx is not None: ~/anaconda3/envs/MindSpore/lib/python3.7/site-packages/mindspore/common/initializer.py in initializer(init, shape, dtype) 731 raise ValueError("For 'initializer', the shape of the 'init' argument should be same as " 732 "the argument 'shape', but got the " --> 733 "'init' shape {} and the 'shape' {}.".format(list(init.shape), shape)) 734 return init 735 ValueError: For 'initializer', the shape of the 'init' argument should be same as the argument 'shape', but got the 'init' shape [40000, 2560] and the 'shape' [1024, 2560]. ``` ## 症结 `pangu_alpha.py`的[第663行](https://openi.pcl.ac.cn/PCL-Platform.Intelligence/pcl_pangu/src/branch/master/pcl_pangu/model/panguAlpha_mindspore/src/pangu_alpha.py#L663)和[第682行](https://openi.pcl.ac.cn/PCL-Platform.Intelligence/pcl_pangu/src/branch/master/pcl_pangu/model/panguAlpha_mindspore/src/pangu_alpha.py#L682)实例化`nn.Embedding`时应当传入`vocab_size`的参数传进了`config.seq_length`。 只要把`config.seq_length`换成`config.vocab_size`即可消除该报错。望早日修复更新。
rickyzhu commented 8 months ago
Poster
......
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.