PaddleHub icon indicating copy to clipboard operation
PaddleHub copied to clipboard

hub.Module加载预训练模型报错

Open suntao2015005848 opened this issue 1 year ago • 2 comments

paddlehub 2.0.0rc0 paddlenlp 2.0.7 paddlepaddle-gpu 2.0.2.post101 在运行官方的:PaddleHub2.0——使用动态图版预训练模型ERNIE实现快递单时候,执行到 model = hub.Module(name='ernie', task='token-cls', label_map=label_map) 报一下错误: [2023-03-23 17:06:29,394] [ WARNING] - The _initialize method in HubModule will soon be deprecated, you can use the __init__() to handle the initialization of the object ---------------------------------------------------------------------------TypeError Traceback (most recent call last)/tmp/ipykernel_1093/3000876241.py in <module> 1 # 选择所需要的模型 ----> 2 model = hub.Module(name='ernie', task='token-cls', label_map=label_map) /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/module/module.py in __new__(cls, name, directory, version, source, update, branch, **kwargs) 170 if name: 171 module = cls.init_with_name( --> 172 name=name, version=version, source=source, update=update, branch=branch, **kwargs) 173 CacheUpdater("update_cache", module=name, version=version).start() 174 elif directory: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/module/module.py in init_with_name(cls, name, version, source, update, branch, **kwargs) 272 ) 273 user_module = user_module_cls(directory=directory) --> 274 user_module._initialize(**kwargs) 275 return user_module 276 /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/compat/paddle_utils.py in runner(*args, **kwargs) 218 def runner(*args, **kwargs): 219 with static_mode_guard(): --> 220 return func(*args, **kwargs) 221 222 return runner TypeError: _initialize() got an unexpected keyword argument 'task' 并在多次跟换hub版本任然报次错误。如何解决。

suntao2015005848 avatar Mar 23 '23 09:03 suntao2015005848

我跑的这个文本分类,https://aistudio.baidu.com/aistudio/projectdetail/5794735?forkThirdPart=1 在AIstudio的环境里都跑不起来

trainer.train(train_dataset, epochs=10, batch_size=32, eval_dataset=dev_dataset, save_interval=1) # 配置训练参数,启动训练,并指定验证集 ---------------------------------------------------------------------------AttributeError Traceback (most recent call last)/tmp/ipykernel_2719/2900980602.py in ----> 1 trainer.train(train_dataset, epochs=10, batch_size=32, eval_dataset=dev_dataset, save_interval=1) # 配置训练参数,启动训练,并指定验证集 /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/finetune/trainer.py in train(self, train_dataset, epochs, batch_size, num_workers, eval_dataset, log_interval, save_interval, collate_fn) 210 211 for batch_idx, batch in enumerate(loader): --> 212 loss, metrics = self.training_step(batch, batch_idx) 213 self.optimizer_step(self.current_epoch, batch_idx, self.optimizer, loss) 214 self.optimizer_zero_grad(self.current_epoch, batch_idx, self.optimizer) /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/finetune/trainer.py in training_step(self, batch, batch_idx) 350 result = self.model._layers.training_step(batch, batch_idx) 351 else: --> 352 result = self.model.training_step(batch, batch_idx) 353 354 # process result /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/module/nlp_module.py in training_step(self, batch, batch_idx) 507 predictions, avg_loss, metric = self(query_input_ids=batch[0], query_token_type_ids=batch[1],
508 title_input_ids=batch[2], title_token_type_ids=batch[3], labels=batch[4]) --> 509 self.metric.reset() 510 return {'loss': avg_loss, 'metrics': metric} 511 /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py in getattr(self, name) 1048 if name in _buffers: 1049 return _buffers[name] -> 1050 return object.getattribute(self, name) 1051 1052 def setattr(self, name, value): AttributeError: 'Ernie' object has no attribute 'metric'

smartparrot avatar Mar 24 '23 10:03 smartparrot

@smartparrot 我这个解决了,是预训练模型ernie的版本问

suntao2015005848 avatar Mar 31 '23 07:03 suntao2015005848