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.