Score-CAM icon indicating copy to clipboard operation
Score-CAM copied to clipboard

RuntimeError: Output 0 of UnbindBackward is a view and is being modified inplace. This view is the output of a function that returns multiple views. Such functions do not allow the output views to be modified inplace. You should replace the inplace operation by an out-of-place one.

Open scutfrank opened this issue 2 years ago • 4 comments

Traceback (most recent call last): File "D:/1.Study/PycharmProjects/Score-CAM-master/test.py", line 50, in basic_visualize(input_.cpu(), scorecam_map.type(torch.FloatTensor).cpu(), save_path='resnet.png') File "D:\1.Study\PycharmProjects\Score-CAM-master\utils_init_.py", line 299, in basic_visualize input_ = format_for_plotting(denormalize(input_)) File "D:\1.Study\PycharmProjects\Score-CAM-master\utils_init_.py", line 173, in denormalize channel.mul_(std).add_(mean)

scutfrank avatar Oct 09 '22 15:10 scutfrank

me too

scucmpunk avatar Nov 01 '22 03:11 scucmpunk

Could you try it on Colab? I think this is caused by the update in torch.

haofanwang avatar Nov 04 '22 12:11 haofanwang

change to this count = 0 for channel, mean, std in zip(denormalized[0], means, stds): denormalized[0][count] = denormalized[0][count].mul(std) denormalized[0][count] = denormalized[0][count].add(mean) count+=1 the key is change channel.mul_(std).add_(mean) to denormalized[0][count] = denormalized[0][count].mul(std) and denormalized[0][count] = denormalized[0][count].add(mean). Because these are in place. 这里的乘法和加法都是就地操作的,这里不适用,所以要拆开来。按照发的这个代码换一下就可以了。

hayleeXinyi avatar Dec 29 '22 11:12 hayleeXinyi

change to this count = 0 for channel, mean, std in zip(denormalized[0], means, stds): denormalized[0][count] = denormalized[0][count].mul(std) denormalized[0][count] = denormalized[0][count].add(mean) count+=1 the key is change channel.mul_(std).add_(mean) to denormalized[0][count] = denormalized[0][count].mul(std) and denormalized[0][count] = denormalized[0][count].add(mean). Because these are in place. 这里的乘法和加法都是就地操作的,这里不适用,所以要拆开来。按照发的这个代码换一下就可以了。

This solution is useful, thanks!

zhengyuan-xie avatar Feb 28 '23 12:02 zhengyuan-xie