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的图像集更加复杂

相关推荐
chatexcel1 小时前
ChatExcel AI Word 升级:多模态读资料、按模板生成、智能排版配图,还能批注修订和联动Excel 复核
人工智能·ai·word·excel·ai写作
Listen·Rain1 小时前
用AI开发出一个AI
java·人工智能·spring boot·tomcat·intellij-idea·mybatis·visual studio
2601_950790681 小时前
2026年新手八字排盘应用推荐:AI提示词、小白复盘和天乙八字排盘App怎么选?附完整实测测评
人工智能·天乙八字排盘·命枢
刘小八1 小时前
Spring AI 结构化输出:稳定生成可校验的业务 JSON
人工智能·spring·json
学习中.........1 小时前
并行 BPE 训练 与 手写 `Tokenizer`
人工智能·算法·机器学习·语言模型
lialaka1 小时前
「极客智库(The Architect‘s Nexus)」——全语音 3D AI 首席架构师与具身交互智能会话推演舱
人工智能·3d·交互
sevenll071 小时前
SqlKit - 覆盖 50+ 数据库的 AI 智能体 SQL 桌面客户端
数据库·人工智能·sql·智能体
狂师1 小时前
AI Agent评测体系怎么搭:90% 的团队都漏了这几环...
人工智能·agent·测试
宸津-代码粉碎机1 小时前
告别手动Jar部署!生产级无损热部署方案,彻底解决OOM与更新失效问题
java·大数据·开发语言·人工智能·python