cifar10训练突破80分(三,摸到pytorch尾灯!)

昨天,终于迎来转折点,可喜可贺!

突然想起当年写机器视觉软件追赶visionpro的感觉!(一点一点的突破)

16:22 2026/7/28

rb均值: 0.5299172997,rb方差:5.616769313812

rb均值: 0.8221317530,rb方差:5.748197555542

rb均值: 1.8689491749,rb方差:21.491924285889

时间: 14686.394531 ms

train Classification result: 96.88% ok (used 49984 images)

时间: 1241.422974 ms

Test Classification result:80.03% ok (used 9984 images)

learn rate:1e-05

轮次:22

rb均值: 0.5264742970,rb方差:5.625975131989

rb均值: 0.8160899878,rb方差:5.764341354370

rb均值: 1.8772314787,rb方差:21.502000808716

时间: 14667.544922 ms

train Classification result: 97.09% ok (used 49984 images)

时间: 1248.618042 ms

Test Classification result: 80.00% ok (used 9984 images)

learn rate:1e-05

轮次:23

rb均值: 0.5251821280,rb方差:5.630886077881

rb均值: 0.8136169910,rb方差:5.776707649231

rb均值: 1.8869775534,rb方差:21.506217956543

时间: 14657.096680 ms

train Classification result: 97.25% ok (used 49984 images)

时间: 1247.119019 ms

Test Classification result: 79.90% ok (used 9984 images)

learn rate:1e-05

轮次:24

rb均值: 0.5233923197,rb方差:5.641663074493

rb均值: 0.8129897118,rb方差:5.789339542389

rb均值: 1.8915946484,rb方差:21.541009902954

时间: 14695.947266 ms

train Classification result: 97.30% ok (used 49984 images)

时间: 1240.376953 ms

Test Classification result: 79.97% ok (used 9984 images)

learn rate:1e-05

轮次:25

rb均值: 0.5249222517,rb方差:5.652767658234

rb均值: 0.8187047839,rb方差:5.801507949829

rb均值: 1.8960354328,rb方差:21.584915161133

时间: 14620.066406 ms

train Classification result: 97.26% ok (used 49984 images)

时间: 1246.831055 ms

Test Classification result: 79.93% ok (used 9984 images)

learn rate:1e-05

轮次:26

rb均值: 0.5240346789,rb方差:5.664512157440

rb均值: 0.8175171018,rb方差:5.819054603577

rb均值: 1.9005300999,rb方差:21.629970550537

时间: 14700.644531 ms

train Classification result: 97.30% ok (used 49984 images)

时间: 1227.864014 ms

Test Classification result:80.01% ok (used 9984 images)

learn rate:1e-05

轮次:27

rb均值: 0.5255746245,rb方差:5.671960830688

rb均值: 0.8173997998,rb方差:5.833096981049

rb均值: 1.9070935249,rb方差:21.651679992676

时间: 14676.238281 ms

train Classification result: 97.45% ok (used 49984 images)

时间: 1244.552979 ms

Test Classification result:80.03% ok (used 9984 images)

learn rate:1e-05

轮次:28

rb均值: 0.5242957473,rb方差:5.688605785370

rb均值: 0.8174471259,rb方差:5.848959445953

rb均值: 1.9097890854,rb方差:21.693126678467

时间: 14633.943359 ms

train Classification result: 97.47% ok (used 49984 images)

时间: 1240.036011 ms

Test Classification result: 80.02% ok (used 9984 images)

learn rate:1e-05

轮次:29

rb均值: 0.5264126062,rb方差:5.699140071869

rb均值: 0.8221742511,rb方差:5.861934185028

rb均值: 1.9115831852,rb方差:21.732776641846

时间: 14671.561523 ms

train Classification result: 97.41% ok (used 49984 images)

时间: 1236.954956 ms

Test Classification result: 79.94% ok (used 9984 images)

learn rate:1e-05

轮次:30

请按任意键继续. . .

这是昨天所有的尝试:

架构没怎么变,关键是屏蔽了卷积层和线性层的bias的动量更新

layers.emplace_back(std::make_shared<Conv2D>(cudnn, batch, 5, 64, 32, 32, 3, 1, 1));

layers.emplace_back(std::make_shared<residualExt3>(cudnn, batch, 64, 32, 32));

layers.emplace_back(std::make_shared<Conv2D>(cudnn, batch, 64, 128, 32, 32, 3, 2, 1));

layers.emplace_back(std::make_shared<residualbase>(cudnn, batch, 128,16, 16));

layers.emplace_back(std::make_shared<averPool2D>(cudnn, batch, 128, 16, 16, 2, 2, 0, 2));

layers.emplace_back(std::make_shared<Linear>(cublas, batch, 128 * 64, 500));

layers.emplace_back(std::make_shared<LeakyRL>(cudnn, batch, 500, 1, 1));

layers.emplace_back(std::make_shared<Linear>(cublas, batch, 500, 10));

你说奇怪不奇怪!以下是卷积层的动量屏蔽

void update(float lr) override {

int w_size = _out_channels * _in_channels * _kernel_size * _kernel_size;

int b_size = _out_channels;

axpy_kernel << <(w_size + 255) / 256, 256 >> > (w_size, 0.0005f * _batch, _weight, 0, 1, _grad_weight, 0, 1);

sgd_update_Wb << <(w_size + 255) / 256, 256 >> > (_weight, _grad_weight, lr, w_size,0.98);

sgd_update << <(b_size + 255) / 256, 256 >> > (_bias, _grad_bias, lr, b_size);

//sgd_update_Wb << <(b_size + 255) / 256, 256 >> > (_bias, 动量vbTest, lr, b_size, 0.98);

cudaDeviceSynchronize();

// ---- 打印中间输出 ----

cudaMemcpy(www, _weight, _out_channels * _in_channels * _kernel_size * _kernel_size * sizeof(float), cudaMemcpyDeviceToHost);//取出权重,可以一试,保存加载不必再训练喽

}

以下是线性层的动量屏蔽

void update(float lr) override {

const float alpha = -lr;

int 替代 = out_features * in_features;

axpy_kernel << <(替代 + 255) / 256, 256 >> > (替代,

0.0005f * batch, weight, 0, 1, grad_weight, 0, 1);

sgd_update_Wb << <(替代 + 255) / 256, 256 >> > (weight, grad_weight, lr, 替代, 0.98);

cublasSaxpy(handle, out_features, &alpha, grad_bias, 1, bias, 1);

//sgd_update_Wb << <(out_features + 255) / 256, 256 >> > (bias, 动量vbTest, lr, out_features, 0.98);

cudaDeviceSynchronize();//需要这句话吗?先试一试

cudaMemcpy(www, weight, sizeof(float) * in_features * out_features, cudaMemcpyDeviceToHost);//暂时未获取bias

}

最初,本以为是图像应该增加高斯模糊图像,应该有所改善

但研究后,并非如此!

奇葩的是:cifar100也上了48.54分,竟然高斯图像起作用了!而且除了bias动量更新不能用,weight的动量更新不也能用!(研究的新成果就这样作废了)

所以cifar10与cifar100还是在图像处理输入上有差别!cifar100的图像集更加复杂

相关推荐
沧沧凉凉2 小时前
同一个 Blender 建模,Claude 两个模型都翻车,GPT-6 一次过
人工智能·游戏·ai编程
X54先生(人文科技)3 小时前
ELR-SELLM Edge 神经元网络架构评估报告
人工智能·深度学习·架构·开源
今年下半年3 小时前
从零开始搭建一套大语言模型 + LangGraph 多智能体编排 + RAG 知识库检索** 的智能问答平台
人工智能·语言模型·自然语言处理
Lifangyun_WD3 小时前
RTX 5090 与 RTX PRO 6000 怎么选?32GB 和 96GB 显存分别适合哪些 AI 任务
人工智能·aigc·gpu算力·芯片·gpu租赁
hqyjzsb3 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
微功夫信息技术3 小时前
分层多智能体强化学习驱动的非急救转运公平 - 效率统一调度系统研究与实践
人工智能·学习·算法·动态规划
TechEdu2026063 小时前
[人工智能]AI芯片家族与产品目录指南
人工智能·ai
不会写代码的女程序猿3 小时前
中小康养门店选型参考|明理 AI 四诊仪场景适配与投入回报分析
大数据·人工智能·科技·ai·健康医疗
机器人猎头David3 小时前
VLA、世界模型、强化学习,在机器人里分别解决什么问题?
人工智能·机器人·机器人猎头·机器人猎头公司