CNN算法详细分析

CNN算法详细分析test_example_CNN.mtrain_x=double(reshape(train_x’,28,28,60000))/255;test_x=double(reshape(test_x’,28,28,10000))/255;train_y=double(train_y’);test_y=double(test_y’);将输入的数据按照规定的形式组织,并归一化。r…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

test_example_CNN.m

train_x = double(reshape(train_x',28,28,60000))/255;
test_x = double(reshape(test_x',28,28,10000))/255;
train_y = double(train_y');
test_y = double(test_y');

将输入的数据按照规定的形式组织,并归一化。

rand('state',0)

初始化时设置随机产生的数字不变

cnn.layers = {
    struct('type', 'i') %input layer
    struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer
    struct('type', 's', 'scale', 2) %sub sampling layer
    struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer
    struct('type', 's', 'scale', 2) %subsampling layer
};

设置网络结构为6c-2s-12c-2s

opts.alpha = 1;
opts.batchsize = 50;
opts.numepochs = 1;

设置学习率为1,每一批训练50个样本,迭代一次(所有样本训练完就结束)。

cnn = cnnsetup(cnn, train_x, train_y);
cnn = cnntrain(cnn, train_x, train_y, opts);

调用cnnsetup模块初始化网络并将网络赋给变量cnn,调用cnntrain模块训练网络并将训练好的网络赋给变量cnn。

[er, bad] = cnntest(cnn, test_x, test_y);

将存储网络结构的变量cnn传递给测试模块cnntest,返回错误率和错误的数目。

%plot mean squared error
figure; plot(cnn.rL);
assert(er<0.12, 'Too big error');

画平滑后的均方差曲线


cnnsetup.m

    inputmaps = 1;
    mapsize = size(squeeze(x(:, :, 1)));

squeeze:除去size为1的维度

关于输入通道、输出通道与多通道卷积的详细说明:link

转载于:https://www.cnblogs.com/ratels/p/10682361.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197357.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月5日 下午2:43
下一篇 2025年9月5日 下午3:15


相关推荐

  • OkGo的详解

    OkGo的详解一 okgo 的简介该库是封装了 okhttp 的标准 RESTful 风格的网络框架 可以与 RxJava 完美结合 比 Retrofit 更简单易用 支持大文件上传下载 上传进度回调 下载进度回调 表单上传 多文件和多参数一起上传 链式调用 可以自定义返回对象 支持 Https 和自签名证书 支持超时自动重连 支持 cookie 与 session 的自动管理 支持四种缓存模式缓存网络数据 支持 301 302 重定向 扩展了统一的上传管理和下载管理功能 二 okgo 的使用介绍 2 1build gradle 添加依赖

    2026年3月18日
    2
  • 软件测试的基本理论知识_学软件测试需要什么基础

    软件测试的基本理论知识_学软件测试需要什么基础01软件研发流程1.软件产品软件产品是指向用户提供的计算机软件、信息系统或设备中嵌入的软件或在提供计算机信息系统集成、应用服务等技术服务时提供的计算机软件。2.软件工程软件工程,英文名SoftwareEngineering,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。“软件工程是开发、运行、维护和修复软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而不是某种…

    2025年8月22日
    4
  • 【OpenClaw】Edict 三省六部制部署与启动

    【OpenClaw】Edict 三省六部制部署与启动

    2026年3月13日
    3
  • 细数家庭安防五大乱象 何时能步入正轨

    细数家庭安防五大乱象 何时能步入正轨虽然智能家居行业在我国的成长已逾十个年头了,但是目前市场离成型仍然有一段距离。市场上可谓“乱象”丛生,这些绊脚石严重阻碍了行业的良性发展。市场乱象繁生,智能家居从概念炒作到价格高抬,相关预测显示,若真如电商一样打起价格战,智能家居就要认输了。“智能家居”(SmartHome)最早被提出和应用是在上世纪80年代的欧美和日本,2000年才被引入中国。世纪…

    2022年6月22日
    25
  • 201621123069 《Java程序设计》第5周学习总结

    201621123069 《Java程序设计》第5周学习总结

    2022年3月7日
    40
  • unix查看资源使用情况_王的命令第六集资源

    unix查看资源使用情况_王的命令第六集资源系统资源主要是内存、磁盘、CPU三项,其中任一项资源用尽都会造成系统崩溃。逻辑CPU数=物理CPU数*每个物理CPU核数

    2022年8月1日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号