Pytorch 之修改Tensor部分值方式

yipeiwu_com6年前Python基础

一:背景引入

对于一张图片,怎样修改局部像素值?

二:利用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中的部分值。这样修改后,黑色图片上就会有白色的小洞洞,因为在tensor中,1代表是白色,RGB中的255。

以上这篇Pytorch 之修改Tensor部分值方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用Python paramiko模块利用多线程实现ssh并发执行操作

1.paramiko概述 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。 有了Pa...

使用python 的matplotlib 画轨道实例

使用python 的matplotlib 画轨道实例

如下所示: import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpa...

Python实现socket非阻塞通讯功能示例

本文实例讲述了Python实现socket非阻塞通讯功能。分享给大家供大家参考,具体如下: 非阻塞需要多线程编程 服务端 方式1: 使用threading库实现多线程 基本方法和单进程基...

Python3连接MySQL(pymysql)模拟转账实现代码

本文实例为大家分享了Python3连接MySQL模拟转账的具体实现代码,供大家参考,具体内容如下 # coding:utf8 import sys import pymysql...

python 打印对象的所有属性值的方法

如下所示: def prn_obj(obj): print '\n'.join(['%s:%s' % item for item in obj.__dict__.items()...