我是靠谱客的博主 生动战斗机,最近开发中收集的这篇文章主要介绍batchnorm2d参数 torch_科学网—Pytorch中nn.Conv1d、Conv2D与BatchNorm1d、BatchNorm2d函数 - 张伟的博文...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

此处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函数 - 张伟的博文...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部