Pytorch使用torchvision实现deform_conv2D
文章目录
- 含义
- 操作
- 应用
含义
将feature map当作一个一个网格,其中输出结果y中,点p这个坐标的值,取决于,其中为权重,为论文中引入的modulation scalar factor。而需要根据三个参数之和作为输入,代表的是原坐标,是相对于坐标 的相对位移。例如,一个的卷积核,则,以上都是标准卷积。本文提出Deformable_Conv就在于加入了新的参数,即需要网络去学习的一个learnable offset。根据论文offset=和mask=都需要进行学习。
原文(The modulation scalar lies in the range [0,1], while is a real number with unconstrained range.)就是 是一个0到1的数,这也很容易理解,它是一个模型响应参数,随便取。
原文(the initial values of and are 0 and 0.5, respectively. )初始化。
操作
class net(nn.Module):def __init__(self):super(net, self).__init__()self.conv = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1)def forward(self, x):out = self.relu(self.conv(x))return outclass net(nn.Module):def __init__(self):super(dcn, self).__init__()self.conv = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1) #原卷积self.conv_offset = nn.Conv2d(3, 18, kernel_size=3, stride=1, padding=1)init_offset = torch.Tensor(np.zeros([18, 3, 3, 3]))self.conv_offset.weight = torch.nn.Parameter(init_offset) #初始化为0self.conv_mask = nn.Conv2d(3, 9, kernel_size=3, stride=1, padding=1)init_mask = torch.Tensor(np.zeros([9, 3, 3, 3])+np.array([0.5]))self.conv_mask.weight = torch.nn.Parameter(init_mask) #初始化为0.5def forward(self, x):offset = self.conv_offset(x)mask = torch.sigmoid(self.conv_mask(x)) #保证在0到1之间out = torchvision.ops.deform_conv2d(input=x, offset=offset, weight=self.conv.weight, mask=mask, padding=(1, 1))return out
应用
需要注意的点有deform_conv2d的stride默认为(1, 1),padding默认为(0, 0),dilation默认为(1, 1)。最后,随便用mnist数据集跑跑(训练集和验证集都加入了随机旋转,网络为四层卷积,三层全连接,加入了dropout,参数都一样,没有仔细调整)可以发现不仅收敛的更快,同时精度更高。deform_conv确实发挥了作用。
Pytorch使用torchvision实现deform_conv2D相关推荐
- Pytorch中使用torchvision实现deform_conv2d
论文:Deformable ConvNets v2: More Deformable, Better Results 论文链接:https://arxiv.org/abs/1811.11168 在gi ...
- PyTorch中torchvision介绍
TorchVision包包含流行的数据集.模型架构和用于计算机视觉的图像转换,它是PyTorch项目的一部分.TorchVison最新发布版本为v0.11.1,发布较频繁,它的licens ...
- Anaconda:成功解决利用conda下载pytorch和torchvision时速度超慢的问题
Anaconda:成功解决利用conda下载pytorch和torchvision时速度超慢的问题 目录 解决问题 解决思路 解决方法 解决问题 利用conda 下载pytorch和torchvisi ...
- Jetson AGX Xavier配置PyTorch与TorchVision流程
Jetson AGX Xavier配置PyTorch与TorchVision流程 1 环境 Jetson AGX Xavier,JetPack 4.4 production release (L4T ...
- 自然语言处理包pytorch、torchvision、torchtext安装(亲测有效)
先新建一个环境 可以可视化创建 cmd里进入这个虚拟环境 (base) C:\Users\Administrator>conda env list # conda environments: # ...
- cuda官网下载,本机显卡驱动与cuda、cudnn、pytorch、torchvision安装版本对应表,以及完全卸载CUDA方法
注:如果执行第一步没有找到nvidia-smi指令,重装本机NVIDIA驱动(Linux, Windows 标题中各项版本对应) 重装NVIDIA驱动,选择自己的显卡产品系列和产品编号, 如下图 Ge ...
- NVIDIA Jetson NX配置深度学习环境(Pytorch、torchvision)超级详细,torchvision安装避坑总结
NVIDIA Jetson NX配置深度学习环境 1.准备python环境 2.安装Pytorch 3.torchvision安装 4.torchvision安装报错问题解决 4.1前言 4.2问题描 ...
- centos下安装anaconda、scikit-learn、opencv、pytorch 和torchvision(文件在Windows下载好linux版本,使用xshll传到linux)
一.xshell传文件 在主机里填上centos 主机地址,主机地址不知道的在 Linux下键入 ifconfig-a查看 然后点SFTP选择文件夹,点确定 建立连接 输入rz 跳出选择文件对话框窗口 ...
- 深度学习环境搭建(从卸载CUDA到安装,以及Pytorch与torchvision的安装。你从未见过的全有版本)
深度学习环境搭建(从卸载CUDA到安装,以及Pytorch与torchvision的安装.你从未见过的全有版本) 先来点头疼的:在深度学习的过程中,环境搭建是必须要经过的一个关卡,由于版本对应麻烦,很 ...
最新文章
- 如何爬取知乎中问题的回答以及评论的数据?
- angularJs的学习笔记
- macOs下全局安装npm包的设置问题
- 【Linux】27.Markdown的用法
- 牛客网SQL篇刷题篇(32-37)
- ubuntu下安装golang环境
- 计算区域中有t 个点的 区域有多少个+计算几何 + 叉乘+sort+ 二分 + map poj 2398 Toy Storage...
- 2d shader unity 阴影_【Unity Shader】平面阴影(Planar Shadow)
- 【渝粤题库】陕西师范大学201831 课程论 作业
- 如何测试一个数组是否包含指定的值
- psm倾向得分匹配法举例_倾向得分匹配法的详细解读
- 上海大华条码称代码_上海大华条码秤使用说明书
- 烧光20亿不够续命,快狗打车IPO找钱?
- sikuli和Robotframework集成若干问题(一):TypeError: exists(): 2nd arg can't be coerced to double
- 金仓数据库KingbaseES之libpq通过服务名连接数据库
- defy+me525+android2.3.6官方镜像包,V大DEFY/DEFY+ ME525 ME525+ 2.3.6巅峰优化版0.86(红头)...
- 电脑账户服务器未能登录拒绝访问,win7系统开机提示服务未能登入拒绝访问的解决方法...
- 关于应用RestHighLevelClient操作ElasticSearch出现“远程主机强迫关闭一个现有连接”的问题探究
- 微信小程序图片显示模式
- 全差分运放中CMFB方面的学习
热门文章
- 中国精细化工行业发展模式与十四五投资战略规划研究报告2022-2028年
- 一个软件网络连接异常_飞鸽传书软件下载-飞鸽传书短信平台下载
- Java游戏有易筋经_当年武侠游戏中绝世秘籍易筋经!重置游戏几十次,玩家才终于找到?...
- WDCP虚拟主机管理系统(免费版)
- Google Earth Engine ——Landsat 5 TM_TOA数据集DN值缩放的、校准的传感器辐射度数据集
- HarmonyOS DevEco SDK 无法下载问题的解决方案
- MySQL8.0 InnoDB并行查询特性
- IR-808近红外吲哚类花菁染料IR-808,七甲川花菁染料MHI-148
- win7冒险岛java_冒险岛不兼容win7怎么办|解决win7冒险岛不兼容的方法
- 串口(SerialPort)的使用