新闻详情

新闻详情

首页 / 资讯中心 / 详情

卷积神经网络详解(CNN)

发布时间:2026/9/26 20:04:14来源:尧图网络
卷积神经网络详解(CNN)
卷积神经网络是一种稀疏连接的神经网络虽然由于稀疏连接较全连接神经网络失去了一些拟合能力但以此换来的对训练成本的降低却是极高的。在CNN发展史上一些经典模型有LeNet-5、AlexNet、VGG、ResNet等。1、conv2dimport torch import torch.nn as nn torch.nn.Conv2d(in_channels,out_channels,kernel_size,strade,padding,dilation,groups,bias,padding_modezeros)1、in_channels输入通道数即输入的特征图数量2、out_channels输出通道数即卷积核数量在groups参数为1的情况下每个卷积核会逐一与输入特征图交互3、kernel_size卷积核大小4、stride步长即卷积核单次移动步数5、padding填充即在特征图四周填充的0的层数6、dilation空洞率正常情况下为1大于等于2的情况下卷积核会间隔dilation-1个像素7、groups分组卷积输入通道和输出通道必须能被groups整除8、bias类似于axb中的b值是一个可学习参数9、padding_mode默认zeors2、示例代码import torch import torch.nn as nn from torchvision import transforms,datasets import torch.utils.data as Data torch.cuda.empty_cache() devicetorch.device(cuda:0 if torch.cuda.is_available() else cpu) BATCH_SIZE50 transformtransforms.Compose([ transforms.Resize((224,224)), transforms.ToTensor(), transforms.Normalize((0.1307,),( 0.3081,)) ]) train_datadatasets.MNIST( rootD:/mypython/MNISTdataset, trainTrue, downloadTrue, transformtransform ) #print(train_data.train_data.size()) #print(train_data.train_labels.size()) train_loaderData.DataLoader(datasettrain_data,batch_sizeBATCH_SIZE,shuffleTrue) traintest,labeltestnext(iter(train_loader)) #print(traintest.shape) #print(labeltest.shape) test_datadatasets.MNIST( rootD:/mypython/MNISTdataset, trainFalse, transformtransform ) test_loaderData.DataLoader(datasettest_data,batch_size50,shuffleFalse) test_x,test_ynext(iter(test_loader)) #print(test_x.size()) #print(test_y.size()) class CNN(nn.Module): def __init__(self): super(CNN, self).__init__() self.conv1nn.Conv2d(in_channels1,out_channels32,kernel_size2,stride2,padding0) self.relu1nn.ReLU() self.pool1nn.AvgPool2d(kernel_size2,stride2) self.fc1nn.Linear(32*56*56, 128) self.relu2nn.ReLU() self.fc2nn.Linear(128,10) def forward(self,x): xself.pool1(self.relu1(self.conv1(x))) xx.view(-1,32*56*56) xself.fc2(self.relu2(self.fc1(x))) return x modelCNN() modelmodel.to(devicedevice) optimizertorch.optim.Adam(model.parameters(),lr0.01) loss_functorch.nn.CrossEntropyLoss() for step,(x,y) in enumerate(train_loader): b_xx.to(devicedevice) b_yy.to(devicedevice) outputmodel(b_x) lossloss_func(output,b_y) optimizer.zero_grad() loss.backward() if step % 100 0: t_xtest_x.to(devicedevice) t_ytest_y.to(devicedevice) test_outputmodel(t_x) pred_ytorch.max(test_output,1)[1].data.squeeze() accuracy(pred_yt_y).sum().item()/float(test_y.size(0)) print(train loss%.4f %loss.data,|test accuracy:%.2f %accuracy)
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

CliffCompaction:面向长周期编码智能体的悬崖式状态压缩框架 2026/9/26 20:53:08

CliffCompaction:面向长周期编码智能体的悬崖式状态压缩框架

1. 项目概述:为什么长周期编码智能体需要一种“悬崖式”压缩策略? CliffCompaction 这个名字乍看有点突兀——它既不像传统数据库里的 compaction(合并压缩),也不像模型训练里的 quantization(量化&#x…

阅读更多 →
从Cursor到Claude Code:重度用户迁移记与避坑指南 2026/9/26 20:53:08

从Cursor到Claude Code:重度用户迁移记与避坑指南

Cursor 我用了小一年,中间有一段时间真的觉得自己回不去了:写前端顺手,改后端逻辑也快,连数据库脚本、批量重命名、跨文件重构都交给它,它几乎成了我每天打开电脑后唯一会长时间停留的窗口。我甚至和身边人说过&#x…

阅读更多 →
UML活动图Final Nodes建模规范:Activity Final与Flow Final详解 2026/9/26 20:53:08

UML活动图Final Nodes建模规范:Activity Final与Flow Final详解

之前参与过的不少项目评审里,UML活动图都是必交的建模交付物。图一摊开,业务流程顺不顺、异常分支考虑得周不周全、并发处理有没有漏洞,一眼就能看个七八分。可我发现一个有意思的现象:整张图里最容易被随手画错的,反而…

阅读更多 →
AI编程工具迁移:从Cursor到Claude Code的深度对比与复盘 2026/9/26 20:53:08

AI编程工具迁移:从Cursor到Claude Code的深度对比与复盘

过去一年里,我的主力编程工具经历了一次彻底换血。曾经我几乎在所有编码场景都依赖Cursor,从个人项目到团队协作,甚至写技术方案时都会下意识打开它。但现在,我的日常开发工作已经基本迁移到了Claude Code上。这个过程不是一蹴而就…

阅读更多 →
数据库读写分离避坑指南:主从延迟与一致性实战解析 2026/9/26 20:53:08

数据库读写分离避坑指南:主从延迟与一致性实战解析

数据库读写分离这个坑,你应该踩过吧?做后端开发这些年,读写分离几乎是我见过最“看似简单、实则暗坑无数”的架构改造。很多团队在业务量涨上来之后,第一反应就是“上读写分离”,觉得主库扛写、从库扛读,加…

阅读更多 →
WiFi安全与性能优化:协议、信道与双频协同硬核指南 2026/9/26 20:52:49

WiFi安全与性能优化:协议、信道与双频协同硬核指南

1. 这不是“改个密码”那么简单:WIFI安全与性能的底层逻辑你搜“路由器WIFI密码怎么设置”,点开一堆“三步搞定”“手把手教学”的视频,结果照着操作完,网速没变快,手机连上还是卡顿,甚至隔天发现邻居能蹭你…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉