当前位置:网站首页>Pytorch实现ResNet
Pytorch实现ResNet
2022-07-31 05:16:00 【王大队长】
目标:用pytorch实现下图所示的网络

代码:
import torch
from torch import nn
import torch.nn.functional as F
class ResBlock(nn.Module): #残差块的实现也是继承nn.module后实现一个类,同样的要实现__init__()方法和forward方法
def __init__(self, n_chans):
super().__init__()
self.conv = nn.Conv2d(n_chans, n_chans, kernel_size=3, padding=1, bias=False)
self.batch_norm = nn.BatchNorm2d(n_chans)
torch.nn.init.kaiming_normal_(self.conv.weight, nonlinearity='relu') #参数初始化
torch.nn.init.constant_(self.batch_norm.weight, 0.5)
torch.nn.init.zeros_(self.batch_norm.bias)
def forward(self,x):
out = self.conv(x)
out = self.batch_norm(out)
out = F.relu(out)
return out + x
class NetResDepp(nn.Module):
def __init__(self, n_chans1=32, num_blocks=100):
super().__init__()
self.n_chans1 = n_chans1
self.num_blocks = num_blocks
self.conv = nn.Conv2d(3, n_chans1, kernel_size=3, padding=1)
self.resblocks = nn.Sequential(*(num_blocks * [*ResBlock(n_chans=n_chans1)])) # 注意这里的100个Resblock是通过先对ResBlock解包放到列表里,再用100乘这个列表就实现了将列表复制100倍,再解包就实现了100个ResBlock
self.fc1 = nn.Linear(8 * 8 * n_chans1, 32)
self.fc2 = nn.Linear(32,2)
def forward(self, x):
out = F.relu(self.conv(x))
out = F.max_pool2d(out, 2)
out = self.resblocks(out)
out = F.max_pool2d(out, 2)
out = out.view(-1, 8 * 8 * self.n_chans1)
out = self.fc1(out)
out = self.fc2(out)
return out
参考资料:
pytorch深度学习实战(伊莱史蒂文斯)
边栏推荐
- This in js points to the prototype object
- 网页截图与反向代理
- 为数学而歌之伯努利家族
- Filter out egrep itself when using ps | egrep
- cocos2d-x-3.2 Physics
- [Cloud native] Simple introduction and use of microservice Nacos
- 360 hardening file path not exists.
- TransactionTemplate transaction programmatic way
- 动态规划(一)| 斐波那契数列和归递
- MySQL高级学习笔记
猜你喜欢

qt:cannot open C:\Users\某某某\AppData\Local\Temp\main.obj.15576.16.jom for write

Nmap的下载与安装

微信小程序源码获取与反编译方式

Understanding of js arrays

Common JVM interview questions and answers

Powershell中UTF-8环境中文乱码解决办法

Error: Cannot find module 'D:\Application\nodejs\node_modules\npm\bin\npm-cli.js'

OpenCV中的图像数据格式CV_8U定义

flutter 混合开发 module 依赖

2021美赛C题M奖思路
随机推荐
多元线性回归方程原理及其推导
一文速学-玩转MySQL获取时间、格式转换各类操作方法详解
ERROR Error: No module factory availabl at Object.PROJECT_CONFIG_JSON_NOT_VALID_OR_NOT_EXIST ‘Error
kotlin 插件更新到1.3.21
微信小程序启动优化
podspec 校验依赖出错问题 pod lib lint ,需要指定源
After unicloud is released, the applet prompts that the connection to the local debugging service failed. Please check whether the client and the host are under the same local area network.
Flutter mixed development module dependencies
[Cloud native] Open source data analysis SPL easily copes with T+0
MySQL高级SQL语句(二)
sql add default constraint
JS写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数JS
qt:cannot open C:\Users\某某某\AppData\Local\Temp\main.obj.15576.16.jom for write
Gradle sync failed: Uninitialized object exists on backward branch 142
VS通过ODBC连接MYSQL(二)
quick-3.5 无法使用模拟器修改
Notes on creating a new virtual machine in Hyper-V
UiBot存在已打开的MicrosoftEdge浏览器,无法执行安装
cocos2d-x-3.2创建项目方法
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案