torch.nn.Conv2d

【PyTorch】nn.Conv2d函数详解 阅读详情

class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

参数:Conv2d(

           输入channels,

           输出channels,

           kernel_size,)

备注:在定义了相应的卷积层后,会在model的state_dict中自动生成相关参数的state描述.

     每定义一个卷积层,会在model的state_dict中自动生成两个tensor参数:

         1)conv2d.weight     shape=[输出channels,输入channels,kernel_size,kernel_size]

         2)conv2d.bias   shape=[输出channels]

举例:

#定义一个卷积层 conv1
conv1 = torch.nn.Conv2d(5,10,3)
# 则在model的state_dict中会自动保存以下参数
conv1.weight    (torch.Size=[10, 5, 3, 3])
conv1.bias      (torch.Size()=[10])

示例2:

#-*-coding:utf-8-*-
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim



# define model
class TheModelClass(nn.Module):
    def __init__(self):
        super(TheModelClass,self).__init__()
        self.conv1 = nn.Conv2d(3,6,5)
        self.pool = nn.MaxPool2d(2,2)
        self.conv2 = nn.Conv2d(6,16,5)
        self.fc1 = nn.Linear(16*5*5,120)
        self.fc2 = nn.Linear(120,84)
        self.fc3 = nn.Linear(84,10)

    def forward(self,x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1,16*5*5)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

# initial model
model = TheModelClass()

#initialize the optimizer
optimizer = optim.SGD(model.parameters(),lr=0.001,momentum=0.9)

# print the model's state_dict
print("model's state_dict:")
for param_tensor in model.state_dict():
    print(param_tensor,'\t',model.state_dict()[param_tensor].size())

print("\noptimizer's state_dict")
for var_name in optimizer.state_dict():
    print(var_name,'\t',optimizer.state_dict()[var_name])

print("\nprint particular param")
print('\n',model.conv1.weight.size())
print('\n',model.conv1.weight)

输出:

model's state_dict:
conv1.weight 	 torch.Size([6, 3, 5, 5])
conv1.bias 	 torch.Size([6])
conv2.weight 	 torch.Size([16, 6, 5, 5])
conv2.bias 	 torch.Size([16])
fc1.weight 	 torch.Size([120, 400])
fc1.bias 	 torch.Size([120])
fc2.weight 	 torch.Size([84, 120])
fc2.bias 	 torch.Size([84])
fc3.weight 	 torch.Size([10, 84])
fc3.bias 	 torch.Size([10])

optimizer's state_dict
state 	 {}
param_groups 	 [{'lr': 0.001, 'momentum': 0.9, 'dampening': 0, 'weight_decay': 0, 'nesterov': False, 'params': [139985995931368, 139984655959456, 139984655959600, 139984655959672, 139984655959744, 139984655959816, 139984655959888, 139984655959960, 139984655960032, 139984655960104]}]

print particular param

 torch.Size([6, 3, 5, 5])

 Parameter containing:
tensor([[[[-0.0080, -0.0503,  0.0092, -0.1068, -0.0789],
          [-0.1028, -0.0067, -0.1015, -0.0660,  0.1107],
          [ 0.0733,  0.0195, -0.0236,  0.0244,  0.0168],
          [-0.0310, -0.0915,  0.0267, -0.0465, -0.0112],
          [-0.0876, -0.0579, -0.0689, -0.0397, -0.1020]],

         [[ 0.0148, -0.0605, -0.0428, -0.0280, -0.0038],
          [-0.0452,  0.0938,  0.0793, -0.0857,  0.0700],
          [-0.0463, -0.0326, -0.0130,  0.0460,  0.0138],
          [ 0.1144,  0.0173, -0.0178, -0.0745,  0.0625],
          [ 0.0713,  0.0400, -0.0596, -0.0878, -0.0773]],

         [[ 0.0782,  0.0849, -0.0777,  0.0770, -0.0115],
          [-0.0918, -0.0262,  0.0067,  0.0481,  0.0812],
          [ 0.0411, -0.1067,  0.0187,  0.0250,  0.0964],
          [ 0.0076,  0.0715, -0.0559,  0.0888, -0.0787],
          [-0.0894,  0.0258,  0.1001, -0.0621, -0.0245]]],


        [[[-0.0464, -0.0124, -0.0204, -0.0179,  0.0263],
          [ 0.1148,  0.0955, -0.0630,  0.0382, -0.0889],
          [ 0.1114,  0.0027, -0.0478, -0.0857, -0.0735],
          [ 0.0446,  0.0893, -0.0671,  0.0066, -0.0356],
          [-0.1027,  0.0593, -0.0410, -0.0647,  0.0377]],

         [[-0.0145,  0.0259, -0.0488, -0.1128, -0.0441],
          [-0.0269, -0.0213,  0.0958, -0.0159, -0.1011],
          [ 0.0614, -0.0445, -0.0642, -0.0092,  0.0317],
          [ 0.0399, -0.0608, -0.0156,  0.1112,  0.0865],
          [ 0.0679, -0.0030,  0.0948,  0.0804, -0.0644]],

         [[ 0.0625,  0.0002, -0.0690,  0.0803, -0.0091],
          [ 0.0073,  0.1063,  0.0663,  0.0094, -0.0997],
          [-0.0938,  0.0973, -0.0571, -0.0281, -0.0008],
          [ 0.0502, -0.0266, -0.0459, -0.0831,  0.0589],
          [ 0.1062,  0.0144,  0.0318,  0.0814,  0.0641]]],


        [[[ 0.0706,  0.0121, -0.0918,  0.0571, -0.0780],
          [ 0.0068,  0.0786, -0.0118,  0.0070,  0.0367],
          [-0.0983, -0.0742,  0.0878,  0.1115, -0.0342],
          [ 0.0682, -0.1151,  0.0689, -0.1039, -0.0854],
          [-0.0185,  0.0474, -0.0282, -0.0707, -0.0105]],

         [[-0.0562,  0.0887,  0.0002,  0.0974,  0.1088],
          [-0.0568,  0.0291,  0.0522, -0.0791, -0.0136],
          [ 0.0480,  0.0764,  0.1015,  0.0315, -0.0715],
          [ 0.0078,  0.1052,  0.0647, -0.0707, -0.0269],
          [-0.0742,  0.1057,  0.0410,  0.0867, -0.0098]],

         [[-0.0847,  0.0005,  0.0210,  0.1104, -0.0865],
          [ 0.0424, -0.0321, -0.0856,  0.0761, -0.1053],
          [-0.0995,  0.0792,  0.0428,  0.0239,  0.0532],
          [-0.0705,  0.0683, -0.0691,  0.0287, -0.0657],
          [-0.0518, -0.0395,  0.0270,  0.0997, -0.0581]]],


        [[[ 0.0071,  0.1119,  0.0198,  0.0697,  0.0853],
          [-0.0718, -0.0216, -0.0026,  0.0939,  0.0791],
          [ 0.0584, -0.0262,  0.0226,  0.0166, -0.0898],
          [ 0.1004, -0.0992,  0.0630,  0.0591,  0.0152],
          [-0.0731, -0.0343,  0.0821,  0.0518, -0.0257]],

         [[-0.0847,  0.1124, -0.0815, -0.0989,  0.0975],
          [ 0.0750, -0.0998, -0.0341,  0.0603,  0.0299],
          [ 0.0504, -0.0782, -0.0870,  0.0940, -0.0717],
          [-0.0387,  0.1046, -0.0216,  0.0870, -0.0550],
          [-0.0772,  0.0888,  0.0341,  0.0018,  0.0923]],

         [[-0.0257, -0.0024, -0.0461,  0.0309, -0.0204],
          [ 0.0782, -0.1152, -0.1073, -0.0128, -0.1088],
          [ 0.0238,  0.0951, -0.1048,  0.1055,  0.1090],
          [ 0.0984, -0.0634,  0.0864,  0.1067, -0.1024],
          [-0.0499,  0.1054,  0.0025, -0.0640, -0.0089]]],


        [[[-0.0263,  0.0849, -0.0872, -0.0457, -0.1010],
          [-0.0327,  0.0176, -0.0301,  0.0329,  0.0561],
          [-0.0325,  0.0409, -0.0862,  0.0603, -0.0904],
          [-0.0352,  0.0723,  0.0955, -0.0478, -0.1055],
          [-0.0711, -0.0076, -0.0725, -0.0856,  0.0413]],

         [[ 0.0999, -0.0613, -0.0390, -0.1126,  0.0182],
          [ 0.0302,  0.0699,  0.0263,  0.0594,  0.0965],
          [-0.0062,  0.0779,  0.0010,  0.0617,  0.0596],
          [ 0.0058, -0.0344,  0.0266, -0.0754, -0.0667],
          [ 0.0120,  0.1121, -0.0693,  0.0516,  0.0863]],

         [[-0.0897, -0.0838, -0.0126,  0.0938,  0.0570],
          [ 0.0729,  0.0482,  0.0066,  0.0559, -0.0951],
          [ 0.0750,  0.0592,  0.0550,  0.0671,  0.0661],
          [-0.1132, -0.0496, -0.0931,  0.0659, -0.0453],
          [ 0.0177,  0.0018,  0.0622,  0.0571,  0.1092]]],


        [[[ 0.0697,  0.0629,  0.0071,  0.0266,  0.0199],
          [-0.1087,  0.1084,  0.0488, -0.0162,  0.1147],
          [-0.0944, -0.1005, -0.0494,  0.0163, -0.0477],
          [ 0.0199, -0.0245,  0.0768, -0.0319, -0.0087],
          [ 0.0823,  0.1125, -0.0000, -0.0238, -0.0647]],

         [[ 0.0107, -0.0313, -0.0060,  0.0010,  0.0102],
          [-0.0748,  0.0240, -0.0658, -0.0524,  0.0908],
          [-0.0921, -0.1004, -0.0492,  0.0021,  0.0020],
          [-0.1136,  0.0122,  0.0324,  0.0125,  0.0843],
          [-0.0888,  0.0573,  0.0286,  0.0672,  0.0266]],

         [[-0.0215, -0.0275, -0.0994,  0.1052,  0.1087],
          [ 0.0008, -0.1082, -0.0890,  0.0155,  0.0612],
          [ 0.0211,  0.0042, -0.0483,  0.0919, -0.1100],
          [-0.0703, -0.0263, -0.0256, -0.0122, -0.0594],
          [-0.0150, -0.0508, -0.0393, -0.1073,  0.0849]]]],
       requires_grad=True)

参考:https://pytorch.org/docs/stable/nn.html#conv2d

        https://pytorch.org/tutorials/beginner/saving_loading_models.html

 

 

 

Pytorch中torch.nn.conv2d和torch.nn.functional.conv2d的区别 你是否和我有同样疑惑,pytorch中怎么会有卷积、激活、池化等操作,虽然不在同一个包下面,那他们的区别究竟是什么,今天我们就来捋一捋这个问题。 区别一 正如我们知道的这些看似相同的卷积、激活、池化等操作,分别在不同的包下面—— torch.nn.xxx 和 torch.nn.functional.xxx包,那么他的作用和完成的方式以及调用的方式当然也不一样。 首先我们来看一下pytorch中文文档 ![在这里插入图片描述](https://img-blog.csdnimg.cn/202011161909 阅读详情

相关推荐

深信服技术认证“SCCA-C”划重点:信服云托管云

该认证包括云数据中心基础、云计算基础、云计算关键技术、云计算交付和运维体系、云计算技术商业应用、信服云托管云、深信服超融合HCI、深信服桌面云aDesk、深信服分布式存储EDS、深信服应用交付AD。学习并获得SCCA-C认证后,可以具备深信服产品功能原理与实践,能够根据业务需求,协助完成云产品方案落地与实施;能够根据业务需求,完成深信服云产品的部署和管理的基本工作。为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。

sangfor_edu的博客 613

pytorch之torch.nn.Conv2d()函数详解

文章目录一、官方文档介绍二、torch.nn.Conv2d()函数详解参数详解参数dilation——扩张卷积(也叫空洞卷积)参数groups——分组卷积三、代码实例 一、官方文档介绍 官网 nn.Conv2d:对由多个输入平面组成的输入信号进行二维卷积 二、torch.nn.Conv2d()函数详解 参数详解 torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=

夏普通 21万+

10.2 在新能源、储能及电网节点的应用实践

构网型变流器技术在电力系统中的应用进展 构网型变流器技术正从理论研究走向规模化工程应用,为新能源并网提供主动支撑能力。该技术在光伏电站采用"部分构网"混合架构,由构网单元实现黑启动和弱网稳定;在风电场利用叶轮动能提供惯量响应。储能系统是理想的构网载体,可提供快速调频和动态电压支撑。在电网节点,构网型STATCOM可增强弱电网电压稳定性,大容量变流器可替代传统调相机。当前面临标准滞后、宽频振荡风险等共性挑战,需在可靠性、经济性间取得平衡。系统级协调控制和精确阻抗建模是应用成功的关键。

技术工作者 1109

pytorch基础(七):卷积层的使用torch.nn.Conv2d和torch.nn.Conv1d

文章目录前言一、前置知识二、torch.nn.Conv2d三、torch.nn.Conv1d 前言   本系列主要是对pytorch基础知识学习的一个记录,尽量保持博客的更新进度和自己的学习进度。本人也处于学习阶段,博客中涉及到的知识可能存在某些问题,希望大家批评指正。另外,本博客中的有些内容基于吴恩达老师深度学习课程,我会尽量说明一下,但不敢保证全面。 一、前置知识   上图就是一个多过滤器(过滤器也被称作为卷积核)卷积层的操作,输入为(6,6,3)的矩阵,输出为(4,4,2)的矩阵。   对于输

一个bug是bug,多个bug能work 4226

从入门到实战:rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控

本文详细介绍了rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控方法。从Rootkit的危害性入手,讲解了rkhunter的安装、配置及实战应用,包括如何建立基准、优化定时任务方案以及智能告警处理。通过多级过滤脚本和系统级联动,帮助运维人员高效识别和应对Rootkit威胁,提升服务器安全性。

weixin_28715953的博客 237

SillyTavern 向量存储配置踩坑记:从卡死到本地部署 Ollama 跑通

用此命令看到镜像就算成功。

qq_62483451的博客 1257

PyTorch学习之torch.nn.Conv2d函数

是 PyTorch 中用于实现二维卷积层的类,这个类可以说是对的进一步封装,使其使用起来更加的傻瓜式。

qq_46396470的博客 3946

《深入 UFS Explorer:自定义 RAID 配置指南》

UFS Explorer支持以虚拟模式组装任何受支持的RAID配置,以便后续访问其内容或恢复丢失数据。启动RAID构建器;向RAID构建器主内容区域的列表中添加RAID组件;为不可用组件插入占位符(需当前RAID级别支持且软件兼容);调整组件的准确顺序;在“虚拟RAID配置”区域设置RAID参数;以虚拟模式组装阵列各部分。程序主窗口“存储设备导航面板”中打开的任何存储设备(包括驱动器、逻辑卷、磁盘镜像、虚拟磁盘及其他复杂存储设备)均可作为RAID组件。

melonbo的专栏 1398

torch.nn.Conv2d详解

首先看一下这个类的定义: class Conv2d(_ConvNd): # 初始化函数,这里主要了解有哪些参数传进来就可以了 def __init__( self, in_channels: int, out_channels: int, kernel_size: _size_2_t, stride: _size_2_t = 1, padding: _size_2_t = 0, d

Medlen 2万+

全网首发:香橙派5MAX安装ubuntu20.04(换了官方桌面)及ros,运行LIVOX-mid360混合固态激光雷达,实际测试fastlio(只能说可以跑,还是有点吃力)

独家发布!!!香橙派5MAX安装ubuntu20.04(换了官方桌面)及ros,运行mid360混合固态激光雷达,测试fastlio(只能说可以跑,还是有点吃力),国货也算崛起了。

2402_82745259的博客 5996

pi-star图形界面安装指南

pi-star图形界面安装指南,MMDVM热点安装,树莓派3B+热点

blueisman的专栏 1908

torch.nn.Conv2d() 用法讲解

本文是深度学习框架 pytorch 的API : torch.nn.Conv2d() 函数的用法。 用法 Conv2d(in_channels, out_channels, kernel_size, stride=1,padding=0, dilation=1, groups=1,bias=True, padding_mode=‘zeros’) 参数 in_channels:输入的...

分享日常的学习,开展的项目,编写的软件,解决的问题等~ 10万+

Anchor graph 对齐文献解读

Align then Fusion: Generalized Large-scale Multi-view Clustering with Anchor Matching Correspondences文献解读

atease0001的博客 1163

torch.nn.Conv2d参数

torch.nn.Conv2d   用于搭建卷积神经网络的卷积层,主要的输入参数有输入通道数、输出通道数、卷积核大小、卷积核移动步长和Padding的值。其中,输入通道数的数据类型是整型,用于确定输入数据的层数;输出通道数的数据类型也是整型,用于确定输出数据的层数;卷积核大小的数据类型是整型,用于确定卷积核的大小;卷积核移动步长的数据类型是整型,用于确定卷积核每次滑动的步长;Paddingde ...

Lison_Zhu's Blog 3360

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

torch.nn.Conv1d,torch.nn.Conv2d和torch.nn.Conv3d的应用和相关计算

1. torch.nn.Conv1d和MaxPool1d Conv1d()函数就是利用指定大小的一维卷积核对输入的多通道一维输入信号进行一维卷积操作的卷积层。 因为卷积神经网络一般用来处理图片数据,常使用torch.nn.Conv2d,所以torch.nn.Conv1d不太常见,但事实上卷积神经网络也是可以处理非图片的一维数据的。 用MaxPool1d只对输入的最后一维进行最大池化,用MaxPool2d会对输入的最后两维都进行最大池化。 ...

comli_cn的博客 2284

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PyTorch基础——torch.nn.Conv2d中groups参数

torch.nn.Conv2d:对输入的二维图像进行卷积运算 # 函数声明: torch.nn.Conv2d( in_channels = in_channels, out_channels = out_channels, kernel_size = kernel_size, stride = 1, padding =

gy笨瓜的博客 2835

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于torch.nn.functional.conv2d实现CNN

在我们之前的实验中,我们一直用torch.nn.Conv2D来实现卷积神经网络,但是torch.nn.Conv2D在实现中是以torch.nn.functional.conv2d为基础的,这两者的区别是什么呢? torch.nn.Conv2D 源码如下: torch.nn.Conv2d CLASS torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=T

starlet_kiss的博客 2089

torch.nn.functional.conv2d的用法

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor 注意:!!! 对F.conv2d一样适用

qq_45171138的博客 5591

Pytorch 中 torch.nn.Conv2d和torch.nn.functional.conv2d的区别

Pytorch 中 torch.nn.Conv2d和torch.nn.functional.conv2d的区别

Z2572862506的博客 632

torch.nn.Conv2d介绍——Pytorch中的二维卷积层

torch.nn.Conv2d介绍——Pytorch中的二维卷积层

weixin_70673823的博客 1996

torch.nn.Conv1d & torch.nn.Conv2d

torch.nn.Conv1d Args: in_channels (int): Number of channels in the input image out_channels (int): Number of channels produced by the convolution kernel_size (int or tuple): Size of the convolving kernel stride (int or tupl

weixin_44109545的博客 246

Pytorch之torch.nn.Conv2d详解

的核心参数是,通过stridepadding控制输出尺寸,dilationgroups实现特殊卷积;输出尺寸可通过公式精准计算,可快速实现输入输出尺寸一致;实际使用中,Conv2d 常与 BatchNorm2d、激活函数组合,且接 BN 时建议关闭偏置以减少冗余参数。

qq_29676069的博客 815

torch.nn.Conv2d()与slim.conv2d()函数参数详解

步长,即卷积核在与图像做卷积的过程中每次移动的距离,一般定义为[1,stride_h,stride_w,1],stride_h与stride_w分别表示在高的方向和宽的方向的移动的步长,第一个1表示在batch上移动的步长,最后一个1表示在通道维度移动的步长,而目前tensorflow规定:strides[0] = strides[3] = 1,即不允许跳过bacth和通道,前面的动态图中的stride_h与stride_w均为1。输入的tensor,被卷积的图像,conv2d要求input必须是四维的。

daijingxin的博客 1431

【PyTorch】torch.nn.Conv2d 类:二维卷积层(2D Convolutional Layer)

torch.nn.Conv2d是PyTorch二维卷积层(2D Convolutional Layer)的实现,主要用于计算机视觉任务(如图像分类、目标检测等),可以提取空间特征并增强模型的表示能力。torch.nn.Conv2d是PyTorch处理图像的核心组件。padding=1保持尺寸,stride=2进行降采样。dilation增大感受野,groups实现分组卷积。适用于CNN、目标检测、语义分割等任务。正确理解Conv2d参数对于优化CNN结构至关重要。

彬彬侠的博客 4829

torch.nn.functional.conv2d 函数详解

形式:torch.nn.functional.conv2d(input,filters,bias,stride,padding,dilation,groups) 返回值:一个Tensor变量 作用:在输入图像input中使用filters做卷积运算 参数的具体意义: input代表输入图像的大小(minibatch,in_channels,H,W),是一个四维tensor filters...

Li7819559的博客 1万+
上一篇: pytorch: torch.Tensor.view ------ reshape
下一篇: torch.nn.Module.eval
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值