首页 > 解决方案 > 在 pytorch 中可视化张量(视频)

问题描述

在训练我的网络时,我想可视化每个时期的视频。到目前为止,我做了一个函数来获取我的张量(大小:[3, 32, 64,64] - 3 批量大小,32 帧,64X64 分辨率)。我想将一些视频可视化为网格。我试着用

import torch
import torchvision.utils as vutils
import numpy as np
import matplotlib.pyplot as plt
import torchvision.transforms as transforms
import scipy.misc

def show(img):
   npimg = img.numpy()
   plt.imshow(np.transpose(npimg, (1,2,0))interpolation='nearest')

video = torch.randn(3,32,64,64)
grid = vutils.make_grid(video)
show(grid) # here to use save_img func

但它失败了。有谁知道该怎么做?谢谢!

标签: deep-learningpytorch

解决方案


这对我有用:

def show(img):
   npimg = img.numpy()
   plt.imshow(np.transpose(npimg, (1,2,0)), interpolation='nearest')

video = torch.randn(32,3,64,64)
grid = vutils.make_grid(video)
show(grid) # here to use save_img func 

您忘记了分隔 plt.imshow() 参数的逗号。我交换框架和通道尺寸。我认为视频可以表示为形状 [#of_frames, #of_channels, hight, width] 的张量。


推荐阅读