CNN算法详细分析
算法 CNN 详细分析
2023-06-13 09:13:41 时间
大家好,又见面了,我是你们的朋友全栈君。
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://javaforall.cn/197357.html原文链接:https://javaforall.cn
相关文章
- Hadoop、spark、hive到底是什么,做算法要不要学?
- 手把手教你,做算法工程师需要哪些数学知识?
- 操作系统linux:银行家算法(C语言实现)
- Faster R-CNN算法
- 「数据结构与算法Javascript描述」栈
- 【腾讯云ES】分片均衡算法深入浅出
- 干货 | 基于CNN的新词发现算法
- 初学LeetCode算法题电话号码的字母组合(虽然不难但是做出来还是很爽的)
- 最快圈速,算法控制无人机首次战胜专家级驾驶员,登上Science Robotics
- Java HmacSHA1算法详解编程语言
- LRU算法详解编程语言
- 算法时代,学会写首好歌到底还有多少价值?
- 精准计时Redis计时器算法分析(计时器算法 redis)
- offsetParent算法分析
- C语言实现排序算法之归并排序详解
- 用队列模拟jquery的动画算法实例
- php实现的常见排序算法汇总