首页天道酬勤pytorch线性回归(pytorch反卷积)

pytorch线性回归(pytorch反卷积)

admin 12-08 04:18 267次浏览

Conv2D基本原理与相关函数

常见的图像卷积是二维卷积,而深度学习中Conv2D卷积是三维卷积,图示如下:

Pytroch中的Conv2D是构建卷积神经网络常用的函数,支持的输入数据是四维的张量对象,格式为NCHW,其中普通表示样本数目、丙表示通道数目彩色图像为3,灰度图像为1、氢跟W分别表示图像高与宽。它们的计算方法可以图示如下:

Conv2D在pytorch中有两个相关的应用程序接口函数,分别如下:

torch.nn.Conv2d(

in_channels,//输入通道数

out_channels,//输出通道数

kernel_size,//卷积核大小

stride=1,//步长

填充=0,//填充

膨胀=1,//空洞卷积支持

groups=1,//分组卷积支持

偏差=真,//偏置

padding _ mode=' zero '//填0

)

torch.nn.functional.conv2d(

输入,//输入数据

重量,//卷积核

偏差=无,//偏置

stride=1,//步长

填充=0,//填充

膨胀=1,//空洞

组=1/分组

)其中torch.nn.Conv2d主要是在各种组合的时序中使用,构建美国有线电视新闻网模型torch.nn.functional.conv2d更多是在各种自定义中使用,需要明确指出输入与权重过滤参数。

Pytorch图像卷积处理

下面的代码演示如何使用torch.nn.functional.conv2d实现图像的模糊、梯度、拉普拉斯等常见的图像卷积处理,代码实现与运行演示分别如下:

图像模糊(左侧为原图):

图像梯度(左侧为原图):

图像拉普拉斯(左侧为原图):

边缘提取(左侧为原图):

皮托奇也可以像OpenCV一样随意完成各种常规的图像卷积功能了!上面几个演示的源码如下所示:

进口火炬

进口火炬。nn。功能as f

importcv2ascv

importnumpayasnp

defimage_blur():

图像=cv。imread(' d :/images/1024。巴布亚新几内亚,cv .IMREAD _ GRADE)

h,w=图像。形状

打印(高、低)

cv.imshow('输入,图像)

img=NP。resform(图像,(1,1,h,w))

img=np.float32(img)

k=火炬。one((1,1,7,7),dtype=torch.float)/49.0

z=f . conv 2d(火炬。from _ numpy(img),k,padding=3)

结果=z.numpy()

打印(结果。形状)

结果=NP。resform(结果,(h,w))

简历。imshow(')模糊,np.uint8(结果))

cv.waitKey(0)

cv.destroyAllWindows()

defimage_gradient():

图像=cv。imread(' d :/images/1024。巴布亚新几内亚,cv .IMREAD _ GRADE)

h,w=图像。形状

打印(高、低)

cv.imshow('输入,图像)

img=NP。resform(图像,(1,1,h,w))

img=np.float32(img)

k=torch.tensor([-1,-2,-1,0,0,0,1,2,2],dtype=torch.float)

k=k.view(1,1,3,3)

打印(k.size(),k)

z=f . conv 2d(火炬。from _ numpy(img),k,padding=1)

结果=z.numpy()

打印(结果。形状)

结果=NP。resform(结果,(h,w))

简历归一化(结果,结果,0,1.0,cv .NORM _ MINMAX)

简历。imshow(' gradient ',np.uint8(结果*255))

cv.waitKey(0)

cv.destroyAllWindows()

defimage_laplian():

图像=cv。imread(' d :/images/1024。巴布亚新几内亚,cv .IMREAD _ GRADE)

h,w=图像。形状

打印(高、低)

cv.imshow('输入,图像)

img=NP。resform(图像,(1,1,h,w))

img=np.float32(img)

k=torch.tensor([-1,-1,-1,-1,8,-1,-1,-1,-1],dtype=torch.float)

k=k.view(1,1,3,3)

打印(k.size(),k)

z=f . conv 2d(火炬。from _ numpy(img),k,padding=1)

结果=z.numpy()

打印(结果。形状)

结果=NP。resform(结果,(h,w))

简历归一化(结果,结果,0,1.0,cv .NORM _ MINMAX)

cv.imshow('重塑,np.uint8(结果*255))

cv.waitKey(0)

cv.destroyAllWindows()

defimage_edge():

图像=cv。imread(' d :/images/1024。巴布亚新几内亚,cv .IMREAD _ GRADE)

h,w=图像。形状

打印(高、低)

cv.imshow('输入,图像)

img=NP。resform(图像,(1,1,h,w))

img=np.float32(img)

k=torch.tensor([-1,0,0,1],dtype=torch.float)

k=k.view(1,1,2,2)

打印(k.size(),k)

z=f . conv 2d(火炬。from _ numpy(img),k,padding=0)

结果=z.numpy()

打印(结果。形状)

结果=NP。resform(结果(h-1,w-1))

cv.imshow('重塑,np.uint8(abs(结果)))

cv.waitKey(0)

cv.destroyAllWindows()

if__name__=='__main__':

image_edge()

Semaphore以及CyclicBarrieriOS项目中的version和build详解Java设计模式之装饰模式是什么及怎么实现怎么使用Python对疫情数据进行可视化分析linux下运行文件的命令是什么-linux运维雷士灯具管理系统
word拐弯箭头符号怎么打(表格里的小箭头) ()
相关内容