简体   繁体   中英

How to find r2score of my PyTorch model for regression

I have a UNet model. I'm trying for a regression model since, in my output, I have different floating values for each pixel. In order to check the r2score, I tried to put the below code in the model class , training_step, validation_step, and test_step.

from pytorch_lightning.metrics.functional import r2score

r2 = r2score(pred, y)

self.log('r2:',r2)

But it's giving the following error

ValueError: Expected both prediction and target to be 1D or 2D tensors, but recevied tensors with dimension torch.Size([50, 1, 32, 32])

How can I check my model fit?

The issue is that the function accepts 1D or 2D tensors, but your tensor is 4D (B x C x H x W). So to use the function you should reshape it:

r2 = r2score(pred.view(pred.shape[1], -1), y.view(y.shape[1], -1))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM