Hi All I have data from a dataloader which I pass to my model for prediction. I am trying to normalize my prediction within a certain range using T.tonumpy_denormalize
, however I get this error RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead
. I have tried to use .detach().numpy()
on my prediction tensor but I get this error afterwards AttributeError: 'numpy.ndarray' object has no attribute 'cpu'
. Initially I wasn’t getting any of these error but I changed my code structure and started getting this error, even though its the same code as before. Below is my sample code for demonstration:
val = "./data.txt"
val_data = torch.load(val)
dataloader = torch.utils.data.DataLoader(val_data, batch_size=1, shuffle=True)
def evaluate(model):
label_min = 1500
label_max = 4500
model.eval()
data, label = iter(dataloader).next()
pred = model(data)
pred_np = T.tonumpy_denormalize(pred, label_min, label_max, exp=False) # I get the error on this line. #
# previously wasn't getting this error, I just changed the code structure by moving some parts upwards and got this error. #
# full error is below #
pred_np = T.tonumpy_denormalize(pred, label_min, label_max, exp=False)
File "/home/pi/Desktop/exp/fcnvmb/transforms.py", line 97, in tonumpy_denormalize
vid = minmax_denormalize(vid.cpu().numpy(), vmin, vmax, scale)
RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.