tensor与ndarray转换,torch中topk、squeeze、cpu等API的应用
二分类模型的输出:
torch.tensor(1,2,512,512),cuda=0
print(preds.shape)
print(preds)
首先要转换成cpu()
preds = preds.data.cpu()
print(preds.shape)
print(preds)
对于二分类,可以先把tensor转换成numpy,再调用Softmax
preds = preds.numpy()
print(preds.shape)
print(preds)
或者可以直接使用torch.topk()
最后将第二维合并为一维,但此时还不能直接与label进行比对(此处指测试的时候,而非训练时,测试时label往往是二维的(512*512)),经topk之后,输出变为了(1,1,512,512)。可以用笨方法,用a[0][0]取出来,但是有更优雅的方法,a.squeeze()可以去除所有=1的维度。
暂时这样,之后整理,发表于2019平安夜