程序地带

torch.nn.functional.pad()函数的使用



文章目录
函数测试图像示例参考来源链接


函数测试
import torch
import torch.nn.functional as F
import numpy as np
x = torch.from_numpy(np.arange(8).reshape((2,4)))
print(x.shape)
xx = torch.unsqueeze(x, 1)
print('x:' + xx.shape)
xxx = F.pad(xx, [2,2])
print('pad(xx, [2,2]):' + xxx.shape)
xxx = F.pad(xx, [0,0,2,2])
print('pad(xx, [0,0,2,2]):' + xxx.shape)
xxx = F.pad(xx, [0,0,0,0,2,2])
print('pad(xx, [0,0,0,0,2,2]):' + xxx.shape)

输出:


torch.Size([2, 4])
x: torch.Size([2, 1, 4])
pad(xx, [2,2]): torch.Size([2, 1, 8])
pad(xx, [0,0,2,2]): torch.Size([2, 5, 4])
pad(xx, [0,0,0,0,2,2]): torch.Size([6, 1, 4])

要求:


pad的维数必须是2的整数倍,比如,最短应该是[2,2],而不能是[2].pad的输入tensor维数可以是大于等于1的任意维数N,pad的维度最大时N2,乘以2的原因是每个维度方向都可以是前面填充或者后面填充,当是小于N2的偶数时,表示后面的所有默认为0,即pad参数输入是[2,2]时,默认为[2,2,0,0,0,0]等,总长度为N*2;pad参数的顺序和tensor的shape维数顺序相反;填充的方式有3中:(mode=“constant”)表示全部填充0;(mode=“reflect”)表示全部填充平滑拟合值;(mode=“replicate”)表示填充值是复制的相邻值。NotImplementedError: Only 3D, 4D, 5D padding with non-constant padding are supported for now ,目前只有3D以上维度的tensor才支持mode=“reflect”和mode=“replicate”。
图像示例

在这里插入图片描述


import torch.nn.functional as F
import torch
from PIL import Image
import numpy as np
im=Image.open("heibai.jpg",'r')
X=torch.Tensor(np.asarray(im))
print("shape:",X.shape)
dim=(20,20,20,20)
X=F.pad(X,dim,"constant",value=0)
padX=X.data.numpy()
padim=Image.fromarray(padX)
padim=padim.convert("RGB")#这里必须转为RGB不然会
padim.save("padded.jpg","jpeg")
padim.show()
print("shape:",padX.shape)

保存图片: 在这里插入图片描述


参考来源链接

感谢各位博主的分享。 Pytorch之torch.nn.functional.pad函数详解


pytorch 中pad函数toch.nn.functional.pad()的使用


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011913417/article/details/111246249

随机推荐

设计模式之享元模式

概述:在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题。创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈。例如...

万子开发 阅读(620)

java web jsp新生入学报到系统

java web jsp新生入学报到系统

使用该系统能方便的录入校园新闻、学生、班级等信息,并能实现管理员对新生报到的管理,主要角色分为学生,财务处,管理员.实现了宿舍楼管理,学籍建立,辅导员班级管理,宿舍安排,报到流程等模块,...

qq_21503882 阅读(317)

LeetCode 240 搜索二维矩阵 II(中等)

编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵matrix如下&#x...

嗷嗷嗷嗷_ 阅读(515)