def get_embedding(self, x):
# x.shape: (64,3,320,240)
img = x[3]
img = torchvision.utils.make_grid(img).cpu().numpy()
plt.imshow(np.transpose(img, (1, 2, 0)))
plt.show()
plt.imsave('visualize.png', np.transpose(img, (1, 2, 0)))
例如,get_embedding()是网络中的一个函数,其shape为(64,3,320,240),取第四张图片,即x[3]
其他参考https://blog.csdn.net/xiongchengluo1129/article/details/79078478中的方式二
注意,torchvision.utils.make_grid(img).cpu().numpy(),切记要转为cpu上
以上即可查看。
去归一化
def convert_image_np(inp):
"""Convert a Tensor to numpy image."""
inp = inp.cpu().data.numpy().transpose((1, 2, 0))
mean = np.array([0.485, 0.456, 0.406])
std = np.array([0.229, 0.224, 0.225])
inp = std * inp + mean
inp = np.clip(inp, 0, 1)
return inp
img = convert_image_np(x[1])
plt.imshow(img)
plt.show()
cm = (dist - dist.min()) / (dist.max() - dist.min())
cmap=plt.cm.Blues
plt.imshow(cm.cpu().detach().numpy(), interpolation='nearest', cmap=cmap)
plt.show()