当前位置: 首页 > news >正文

残差突破的机缘巧合(五,cudnn残差类层改正)

残差有实线和虚线区分,我们先搞定简单的残差实线部分!

实线就是残差层类输入输出一样!比如:输入nchw(32*32*32*32)-输出也是nchw(32*32*32*32)

参考了yolo v3的shortcut:

原来的残差类的反向传播主要动作为:

mul << <blocks, threads >> >(grad备用, input2, d_residual, NN);

residual_backprop_kernel << <blocks, threads >> >(grad, grad_input, d_residual, NN);

这两个函数主要完成:d_residual=grad备用*ds(input2)以及

grad_input=grad+d_residual;

标红的部分是惊出一身冷汗的地方!使用yolo v3 shortcut代替,测试正常,改动如下:

mul << <blocks, threads >> >(grad备用, input2, d_residual, NN);

shortcut_gpu(batch, _w, _h, _c, d_residual, _w, _h, _c, grad);

simple_copy_kernel << <blocks, threads >> >(NN,grad, grad_input);

上面的函数前几节已经出现,这里不重复,仅说明:

__global__ void simple_copy_kernel(int size, float *src, float *dst)//这个看上去比较简单,很像图像操作
{
int index = blockIdx.x*blockDim.x + threadIdx.x;
if (index < size)
dst[index] = src[index];
}

用yolo v3 的shortcut改正后,其实并未有什么不同,甚至训练160次,测试成绩反而下降了2分,由73滑落到71!(即有错误的版本跑160训练,test=73,很神奇的事情!)

受到shortcut的启示,我那个cpu的代码立马改成gpu形式,跑了160轮,cifar10测试成绩达到73.62(比73提高了0.62分)!这是我训练cifar以来最好成绩了,当然全部自己写,不算别人说的pytorch下那种80,90的那种!

自己改进残差类代码如下:

mulext << <blocks, threads >> >(NN, _w, _h, _c, batch, _w, _h, _c, input2, _c, grad备用);

residual_backprop_kernel << <blocks, threads >> >(grad, grad_input, grad备用, NN);

第一句话完成乘法 :grad备用*=ds(input2),第二句话完成加法:grad_input=grad+grad备用

__global__ voidmulext(int size, int minw, int minh, int minc, int batch, int w1, int h1, int c1, float *add, int c2, float *out)
{
int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
if (id >= size) return;
int i = id % minw;
id /= minw;
int j = id % minh;
id /= minh;
int k = id % minc;
id /= minc;
int b = id % batch;

int out_index =0+ i + w1*(0+j + h1*(k + c2*b));
int add_index = 0+ i + w1*(0 + j + h1*(k + c1*b));
/*out[out_index] += add[add_index];*/
out[out_index] *= (add[add_index] > 0.0 ? 1.0 : 0.01);
}

自己的东西,不敢说万无一失,还得继续考察,失败是成功之母!

http://www.jsqmd.com/news/436747/

相关文章:

  • 【2026最新】Balabolka下载汉化版:最强文本转语音工具(附安装包+图文安装步骤) - xiema
  • 2026年3月C型斗式提升机厂家最新推荐,大流量平稳输送实力厂家 - 品牌鉴赏师
  • Ubuntu 22.04 安装与更新 OpenSpec 教程(含 nvm / Node.js)
  • 想考成人大专不知怎么选?2026十家高通过率机构学费与学制对比 - 速递信息
  • 前端接私活必看:XinServer 提速到底有多夸张?
  • goGorm不更新0值?
  • C++游戏开发之旅 23
  • gorm save 修改时非空字段不保存!
  • P12742 [POI 2016 R3] 信使 Messenger
  • 从0到1吃透Agent、MCP、Skills的关系!
  • 京东e卡回收新思路,解锁变现新姿势 - 京顺回收
  • ComPDF的产品升级:从工具包到PDF服务 - 实践
  • 2026年3月连斗式提升机厂家最新推荐,连续上料效率更高 - 品牌鉴赏师
  • 2026年3月仿大理石板材设备厂家推荐,行业权威盘点与品质红榜发布 - 品牌鉴赏师
  • 第一类斯特林数列
  • 2026年工程铺路钢板出租,优质厂家助力项目,工地施工钢板出租/临时道路钢板出租,工程铺路钢板出租厂家哪个好 - 品牌推荐师
  • 2026年中国露点仪市场白皮书:知名厂家推荐与高精度监测技术深度对标
  • 2026年3月管道涂塑设备厂家推荐,行业测评与采购选择指南 - 品牌鉴赏师
  • 2026年3月钢管粉末喷涂设备厂家最新推荐,粉末涂装技术实力优选 - 品牌鉴赏师
  • 2025年12月GESP真题及题解(C++七级): 选择题和判断题(题解)
  • 站内Geo优化SOP:专家于磊“两大核心+四轮驱动”实战指南
  • 大模型(LLMs)从入门到精通:涵盖基础、进阶、微调、LangChain及参数高效微调全解析!
  • 2026年3月太原优质搬家公司口碑推荐榜:搬厂、居民搬家、单位搬家、长短途搬家选择指南,老兵搬家深耕太原本土,守护每段搬迁路 - 海棠依旧大
  • 大模型横评:GPT、Claude、Gemini、Llama及国产模型优劣与选型指南!
  • 2026年3月PVC管材设备厂家推荐,行业权威盘点与品质红榜发布 - 品牌鉴赏师
  • 为什么链表排序要使用归并排序?
  • 深耕太原本土!2026年3月太原搬家公司口碑榜:搬厂、居民搬家、单位搬家、长短途搬家选择指南,老兵搬家一站式服务破解搬迁难题 - 海棠依旧大
  • 2026年3月混凝土增强纤维丝拉丝机厂家推荐,行业权威盘点与品质红榜发布 - 品牌鉴赏师
  • 用Agentic AI改造智能客服:提示工程架构师的5个实战技巧
  • MAUI库推荐五:Maui.PDFView