概述
此处mark一下图像处理中常见的Conv和BatchNorm操作,提供参考链接!!
(一)Conv1D和Conv2D实现
实现代码和相应卷积的数据输入格式要求
import os
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.utils.data
class myCNN(torch.nn.Module):
def __init__(self):
super(myCNN, self).__init__()
#nn.Model.__init__(self)
self.conv1 = nn.Conv2d(1, 6, 5) # 输入通道数为1,输出通道数为6
self.conv2 = nn.Conv2d(6, 16, 5) # 输入通道数为6,输出通道数为16
self.fc1 = nn.Linear(5 * 5 * 16, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self,x):
# 输入x -> conv1 -> relu -> 2x2窗口的最大池化
x = self.conv1(x)
x = F.relu(x)
x = F.max_pool2d(x, 2)
print(x.size())
# 输入x -> conv2 -> relu -> 2x2窗口的最大池化
x = self.conv2(x)
x = F.relu(x)
x = F.max_pool2d(x, 2)
print(x.size())
# view函数将张量x变形成一维向量形式,总特征数不变,为全连接层做准备
x = x.view(x.size()[0], -1)
print(x.size())
x = F.relu(self.fc1(x))
print(x.size())
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
if __name__ == "__main__":
cnnmy = myCNN()
input = torch.randn((1,1,32, 32))
out = cnnmy.forward(input)
总结:
特别注意--#Pytorch处理图片(二维卷积)的输入维度应为四维【batch,channel,height,width】;向量(一维卷积)要求是【batch,channel,时序长度】!!!
(二)BatchNorm1d、BatchNorm2d
点滴分享,福泽你我!Add oil!
转载本文请联系原作者获取授权,同时请注明本文来自张伟科学网博客。
链接地址:http://blog.sciencenet.cn/blog-3428464-1255308.html
上一篇:轻松理解局部连接和权值共享
下一篇:Matlab中计算函数运行时间的三种方法及判断新建文件夹
最后
以上就是生动战斗机为你收集整理的batchnorm2d参数 torch_科学网—Pytorch中nn.Conv1d、Conv2D与BatchNorm1d、BatchNorm2d函数 - 张伟的博文...的全部内容,希望文章能够帮你解决batchnorm2d参数 torch_科学网—Pytorch中nn.Conv1d、Conv2D与BatchNorm1d、BatchNorm2d函数 - 张伟的博文...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复