Lua/Torch重新构造表

我已经加载了一张 200x200 的 RGB 图像,并通过重新塑造成一个 1x(200x200x3) 向量来将其通过神经网络传递

img1=torch.reshape(img,1,image_size*image_size*3)

我得到的输出也是一个 1x(200x200x3) 向量。如何将其重新塑形为大小为 200x200 的 RGB 图像,以便我可以打印它?

点赞
用户6076729
用户6076729

你可以试着使用函数permute(x, y, z)将图像转换为3x200x200的形状,然后可以使用itorch.image(your_image)来打印它。字母x, y, z是你的张量中列的索引。下面是一个例子。

x = torch.Tensor(3,4,2,5)
> x:size()
 3
 4
 2
 5
[torch.LongStorage of size 4]

y = x:permute(2,3,1,4) -- equivalent to y = x:transpose(1,3):transpose(1,2)
> y:size()
 4
 2
 3
 5
[torch.LongStorage of size 4]

此步骤完成后,执行与之前相同的步骤。假设我们的img_size为5。

th> t = torch.Tensor(5,5,3)

[0.0001s]
th> t = t:permute(3,1,2)
                                                                          [0.0001s]
th> t:size()
 3
 5
 5
[torch.LongStorage of size 3]
                                                                      [0.0001s]
th> t[{2}]:fill(2)
 2  2  2  2  2
 2  2  2  2  2
 2  2  2  2  2
 2  2  2  2  2
 2  2  2  2  2
[torch.DoubleTensor of size 5x5]

                                                                      [0.0003s]
th> t[{3}]:fill(3)
 3  3  3  3  3
 3  3  3  3  3
 3  3  3  3  3
 3  3  3  3  3
 3  3  3  3  3
[torch.DoubleTensor of size 5x5]

                                                                      [0.0004s]
th> w = t:reshape(1,t:size(2)*t:size(3)*3)
                                                                      [0.0001s]
th> w
Columns 1 to 26
 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  2

Columns 27 to 52
 2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  3  3

Columns 53 to 75
 3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3
[torch.DoubleTensor of size 1x75]

th> x = w:reshape(3,5,5)
                                                                      [0.0001s]
th> x
(1,.,.) =
  0  0  0  0  0
  0  0  0  0  0
  0  0  0  0  0
  0  0  0  0  0
  0  0  0  0  0

(2,.,.) =
  2  2  2  2  2
  2  2  2  2  2
  2  2  2  2  2
  2  2  2  2  2
  2  2  2  2  2

(3,.,.) =
  3  3  3  3  3
  3  3  3  3  3
  3  3  3  3  3
  3  3  3  3  3
  3  3  3  3  3
[torch.DoubleTensor of size 3x5x5]
2016-07-21 14:38:56