1. 程式人生 > >Pytorch 之修改Tensor部分值

Pytorch 之修改Tensor部分值

一:背景引入

對於一張圖片,怎樣修改區域性畫素值?

二:利用Tensor方法

比如輸入全零tensor,可認為為黑色圖片

>>> n=torch.FloatTensor(3,3,4).fill_(0)
>>> n
        tensor([[[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., 0., 0., 0.], 
                  [0., 0., 0., 0.],
                  [0., 0., 0., 0.]]])                                       

現在修改部分值:

>>> n[:,0:2,1:3]=1

結果為

>>> n
        tensor([[[0., 1., 1., 0.], 
                 [0., 1., 1., 0.],                                                   
                 [0., 0., 0., 0.]], 
                 
                 [[0., 1., 1., 0.], 
                  [0., 1., 1., 0.],
                  [0., 0., 0., 0.]], 

                 [[0., 1., 1., 0.], 
                  [0., 1., 1., 0.],
                  [0., 0., 0., 0.]]])  

可以看到利用切片的思想可以修改tensor中的部分值。