用c++实现全连接神经网络用来图片分类(c++实现CNN)

#include <vector>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <string.h>
#include <opencv.hpp>
using namespace cv;
using namespace std;
class Linear {
   
   	//定义全连接神经网络类
public:
	vector<vector<double> > w1, w2, b1, b2, x, y, y_pred, A1, A2, h_relu;
	double loss;
	Linear(int inchanels,int outchanels,int batch_size ) {
   
   		//初始化参数
		srand((unsigned)time(NULL));
		int mid_layer = 100;
		vector<vector<double> > w1(mid_layer, vector<double>(inchanels));
		for (int i = 0; i < w1.size(); i++) {
   
   
			for (int j = 0; j < w1[0].size(); j++) {
   
   
				w1[i][j] = double(rand() % 1000) / 1000/10;
			}
		}
		this->w1 = w1;
		vector<vector<double> >b1(mid_layer, vector<double>(batch_size));
		this->b1 = b1;
		vector<vector<double> >w2(outchanels, vector<double>(mid_layer));
		for (int i = 0; i < w2.size(); i++) {
   
   
			for (int j = 0; j < w2[0].size(); j++) {
   
   
				w2[i][j] = double(rand() % 1000) / 1000*0.01;
			}
		}
		this->w2 = w2;
		vector<vector<double> >b2(outchanels, vector<double>(batch_size));
		this->b2 = b2;
	}
	vector<vector<double> > dot(vector<vector<double> > v1, vector<vector<double> > v2) {
   
   
		vector<vector<double> > v3(v1.size(), vector<double>(v2[0].size()));
		double s = 0.00000;								//实现矩阵相乘
		for (int h = 0; h < v2[0].size(); h++) {
   
   
			for (int k = 0; k < v1.size(); k++) {
   
   
				for (int j = 0; j < v2.size(); j++) {
   
   
					s += v1[k][j] * v2[j][h];
				}
				v3[k][h] = s;
				s = 0.00000;
			}
		}
		return v3;
	}
	vector<vector<double> >Relu(vector<vector<double> > v) {
   
   	//实现Relu激活函数
		vector<vector<double> > v3(v.size(), vector<double>(v[0].size()));
		for (int i = 0; i < v.size(); i++) {
   
   
			for (int j = 0; j <
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值