CNN c++代码(tiny_cnn)学习
来源:互联网 发布:centos加固 编辑:程序博客网 时间:2024/05/21 17:28
注:MNIST数据集格式 http://blog.csdn.net/liulina603/article/details/48434947
1. 连载的分析tiny_cnn的文章 http://blog.csdn.net/u013088062/article/details/50839015 配置不了(头文件包含不成功)
2. http://blog.csdn.net/hao529good/article/details/45419031
结果图如下:要跑5分钟(60000个样本训练2遍、10000个样本测试2遍)
main.cpp如下
#include "iostream"#include "util.h"#include "vector"#include "CNN.h"#include "time.h"#include "stdlib.h"using namespace std;// 把MNIST的四个数据集放在根目录下,放在别处ifstream可能会打不开文件int main(){// initialize input data double*** train_x, ***test_x;double **train_label, **test_label;int NumberOfImages = 60000;int length = 28;train_x = new double**[NumberOfImages];test_x = new double**[NumberOfImages/6];train_label = new double *[NumberOfImages];test_label = new double *[NumberOfImages/6];for (int i=0; i<NumberOfImages; i++){train_x[i]=new double*[28];train_label[i]=new double[10];if (i<NumberOfImages/6){test_x[i]=new double*[28];test_label[i] = new double [10];}for (int j=0; j<28; j++){train_x[i][j]=new double[28];if (i<NumberOfImages/6){test_x[i][j]=new double[28];}}} ReadMNIST(NumberOfImages,length,train_x,"train-images.idx3-ubyte"); ReadMNIST_Label(NumberOfImages,train_label, "train-labels.idx1-ubyte");ReadMNIST(NumberOfImages/6,length,test_x,"t10k-images.idx3-ubyte");ReadMNIST_Label(NumberOfImages/6,test_label, "t10k-labels.idx1-ubyte"); // constructor CNNLayerBuilder builder; Layer layer; builder.addLayer(layer.buildInputLayer(size(28,28))); builder.addLayer(layer.buildConvLayer(6, size(5, 5))); builder.addLayer(layer.buildSampLayer( size(2, 2))); builder.addLayer(layer.buildConvLayer(12, size(5, 5))); builder.addLayer(layer.buildSampLayer( size(2, 2))); //builder.addLayer(layer.buildConvLayer(20, size(4, 4))); builder.addLayer(layer.buildOutputLayer(10)); CNN cnn = CNN(builder, 10);// biuder batchsize for (int i=0; i<2; i++) {double t1 = cpu_time();cnn.train(train_x,train_label, NumberOfImages);double t2 = cpu_time();cout<<t2-t1<<" s"<<endl;cnn.test(test_x,test_label, NumberOfImages/6); }// delete datafor (int i=0; i<NumberOfImages; i++){delete []train_label[i];for (int j=0; j<28; j++){delete []train_x[i][j];}delete []train_x[i];}for (int i=0; i<NumberOfImages/6; i++){delete []test_label[i];for (int j=0; j<28; j++){delete []test_x[i][j];}delete []test_x[i];}delete []train_label;delete []train_x;delete []test_x;delete []test_label;return 0;}注释之后再重新发上来。
0 0
- CNN c++代码(tiny_cnn)学习
- C++卷积神经网络实例:tiny_cnn代码详解(12)——从CNN中看多态性
- C++卷积神经网络实例:tiny_cnn代码详解(12)——从CNN中看多态性
- CNN代码学习
- Tensorflow学习--CNN代码分析
- C++卷积神经网络实例:tiny_cnn代码详解(2)——代码试运行
- C++卷积神经网络实例:tiny_cnn代码详解(2)——代码试运行
- Deep Learning学习 之 CNN代码解析(MATLAB)
- 深度学习(五)CNN卷积神经网络代码理解
- Deep Learning学习 之 CNN代码解析(MATLAB)
- 卷积神经网络学习笔记(二):CNN代码实例
- Deep Learning学习 之 CNN代码解析(MATLAB)
- Deep Learning学习 之 CNN代码解析(MATLAB)
- C++卷积神经网络实例:tiny_cnn代码详解(1)——开篇
- C++卷积神经网络实例:tiny_cnn代码详解(3)——层间继承关系
- C++卷积神经网络实例:tiny_cnn代码详解(6)——average_pooling_layer层结构类分析
- C++卷积神经网络实例:tiny_cnn代码详解(7)——fully_connected_layer层结构类分析
- C++卷积神经网络实例:tiny_cnn代码详解(1)——开篇
- 【匈牙利算法】二分图最大匹配(模板)
- hdu1232 通畅工程讲解(并查集)
- oj1944: C语言实验——格式化输出(常量练习)
- 单片机双色点阵显示特定图形
- JAVA中使用FTPClient上传下载
- CNN c++代码(tiny_cnn)学习
- java-面向对象编程-内部类
- 视频 需要安装插件来播放下列类型的媒体文件: RealAudio G2 (Cook) decoder
- 图形学opengl作业-简单机器人&&我的世界简化版
- SFTP client 实例
- A. Snacktower
- Lua 与C/C++ 交互系列:注册枚举enum到Lua Code中
- Java算法基础之快速排序算法
- LeetCode 173. Binary Search Tree Iterator