问题描述
我创建了一个闪电模块,该模块对于单个验证数据集工作正常,但是在使用多个验证数据集时引发以下错误:
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 (将#修改为@)