如何解决AttributeError:'dict'对象没有属性'get_epoch_log_metrics'Pytorch Lightning
我创建了一个闪电模块,该模块对于单个验证数据集工作正常,但是在使用多个验证数据集时引发以下错误:self._log_on_evaluation_epoch_end_metrics(epoch_logs)
File "/home/ubuntu/anaconda3/envs/pytorch_latest_p36/lib/python3.6/site-packages/pytorch_lightning/trainer/connectors/logger_connector.py",line 186,in _log_on_evaluation_epoch_end_metrics
logger_metrics = reduced_epoch_metrics.get_epoch_log_metrics()
AttributeError: 'dict' object has no attribute 'get_epoch_log_metrics'
这是我的validation_step
方法。为了支持单个以及多个验证数据集,我保留了dataset_idx = 0
def validation_step(self,batch,batch_idx,dataset_idx=0):
qa_pairs,labels = batch
# labels = labels.type(torch.LongTensor)
labels = labels.long()#(torch.LongTensor)
# run the model for the inputs
outputs = self(qa_pairs)
# compute the loss
if self.loss.lower() == "cross_entropy":
loss = F.cross_entropy(outputs,labels)
self.valid_acc(outputs,labels)
self.log('val_loss',loss,on_step=True)
self.log('val_acc',self.valid_acc,on_step=True,on_epoch=True,prog_bar=True)
系统:
火炬:1.6 ubuntu 18.04
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。