Bp神经网络

2023-10-28

智能系统课程设计,老师要求做一个识别手写数字的神经网络算法,数据集是Mnist-image数据集。
在网上找了好多教程,结果仍然不清楚,后来在B站找了个视频才弄懂,传上来代码,以备以后回顾。

Minss-image

// newBpLearn.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include<iostream>
#include<math.h>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include <sstream>
#include<opencv2\calib3d\calib3d.hpp>
#include <opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv; 

#define INPUT_TYPE 0
#define HIDDEN_TYPE 1
#define OUTPUT_TYPE 2

class neuron
{
private:
	int type;
	//前向传播
	float InputValueForward;
	float OutputValueForward;
	//反向传播
	float errorInputBack;
	float errorOutputBack;
	//偏差值
	float bias;

public:

	float log_sigmoid(float in)
	{
		return (1/(exp(-in)+1));
	}
	float log_sigD(float in)
	{
		return OutputValueForward*(1-OutputValueForward)*in;
	}
	float Forward(float in)
	{
		switch(type)
		{
		case INPUT_TYPE:
			return in;
		case HIDDEN_TYPE:
		case OUTPUT_TYPE:
			return log_sigmoid(in);
		}
	}
	float Backward(float in)
	{
		switch(type)
		{
		case INPUT_TYPE:
			return in;
		case HIDDEN_TYPE:
		case OUTPUT_TYPE:
			return log_sigD(in);
		}
	}
	/
	void setType(int n)
	{
		type=n;
	}
	float getForwardInputValue()
	{
		return InputValueForward;
	}
	void setForwardInputValue(float in)
	{
		InputValueForward=in;
		OutputValueForward=setForwardOutputValue(in);
	}
	float getForwardOutputValue()
	{
		return OutputValueForward;
	}
	float setForwardOutputValue(float in)
	{
		return Forward(in);
	}
	float getBackwardInputValue()
	{
		return errorInputBack;
	}
	float ge
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bp神经网络 的相关文章

  • matlab 残差 dw,Eviews中的自相关检验与修正操作(一):残差图与DW检验

    自相关是指在时间序列资料中按时间顺序排列的观测值之间存在相关性或在横截面资料中按空间顺序排列的观测值之间存在相关性 它是不满足经典OLS回归的假定之一 自相关问题往往出现在时间序列数据中 所以也经常称为 序列自相关 自相关问题往往采用残差图
  • 2023全国大学生信息安全竞赛(ciscn)初赛题解

    战队信息 安全知识 甚至不用看视频 百度就有答案 除了那个最新的美国时政 其它的ChatGPT就能回答 Misc 签到卡 关注公众号 根据提示 直接print open flag read 国粹 脑洞题 给的题目原图有两排一模一样的麻将 思
  • Postman配置多环境请求地址

    作用 平时用postman测试接口时 同一个接口免不了要在多个环境测试 但是每次都要手动的修改请求的IP地址是在麻烦 可以用此方法提高效率 省事不少 1 创建 点击页面右上角齿轮 2 点击弹出页面右下角的Add按钮 3 填写请求地址 例如
  • 微分算子法个人整理

    陈文灯老师创立的微分算子法 在求解特定的微分方程能够省去大部分的计算时间 很久不写了 这篇为了回顾方便 一同有四种总结 感谢B站BV1D5411776Q的总结 考研加油 稳定发挥
  • [网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用

    这是作者的系列网络安全自学教程 主要是关于网安工具和实践操作的在线笔记 特分享出来与博友共勉 希望您们喜欢 一起进步 前文分享了Web安全学习路线 并实现了最简单的木马和病毒代码 这篇文章将详细讲述Shodan搜索引擎的基本用法及Pytho
  • Jenkins+Python自动化测试之持续集成详细教程

    前言 今天呢笔者想和大家来聊聊Jenkins Python自动化测试持续集成 废话呢就不多说了哟咱们直接进入主题哟 一 Jenkins安装 Jenkins是一个开源的软件项目 是基于java开发的一种持续集成工具 用于监控持续重复的工作 旨
  • Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?...

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Oracle中如何导出存储过程 函数 包和触发器的定义语句 如何导出表的结构 如何导出索引的创建语句 QQ群里有人问 如何导出一个用户下的存储过程 麦苗答 方法有多种 可以
  • springboot整合eurake

    Spring Boot整合Eureka是一个比较常见的场景 Eureka是一个服务注册与发现中心 可以方便地管理服务的注册与发现 在整合过程中 需要在pom xml文件中添加对Eureka Server的依赖 并在Spring Boot应用
  • Vue.js 下的瀑布流组件 vue-waterfall

    vue waterfall 详细介绍 Vue js 下的瀑布流组件 ES5 ES6 UMD 兼容 享受数据驱动带来的便利 让事情变得简单
  • 判断t1树中是否有与t2树完全相同的子树

    描述 给定彼此独立的两棵二叉树 树上的节点值两两不同 判断 t1 树是否有与 t2 树完全相同的子树 示例1 输入 1 2 3 4 5 6 7 8 9 2 4 5 8 9 返回值 true 备注 1 n 500000 方法一 递归 要判断t
  • 使用echarts实现简单的关系图谱

    使用echarts实现简单的关系图谱 如图 代码
  • pytorch载入数据与对应的标签,使用torch.utils.data详解,DataLoader的使用

    在进行深度学习处理的时候 我们需要将数据输入到神经网络中进行训练 训练网络的学习能力 其实是根据一定的规则更新网络节点中的参数 而这个规则的来源就是依赖于数据与标签 我们需要将数据与标签相匹配 才能让网络进行训练 比如说网络学习到了一定的特
  • stem教育资源

    人生不同阶段都有不同的使命 在学生阶段 学习掌握知识为以后的人生获得成就的能力 就是这个阶段使命 为了这个使命 他们必须要学习忍耐 学会放弃 学会付出 这不仅仅是学习的需要 也是人生的一种修炼 纵观我们身边的人 但凡取得一定成就的都是要经过
  • 用 LangChain 构建基于资料库的问答机器人(三):ReAct

    大家好 我是 Jambo 我们已经学习了如何使用 LangChain 的一些基本功能 解下我们就应该要结合这些功能来做一些复杂的东西了 但在这之前 为了让同学们更好的理解 LangChain 在这其中做了什么 我想先介绍一下关于 GPT 使
  • 修改索引值python_pandas DataFrame的修改方法(值、列、索引)

    对于DataFrame的修改操作其实有很多 不单单是某个部分的值的修改 还有一些索引的修改 列名的修改 类型修改等等 我们仅选取部分进行介绍 一 值的修改 DataFrame的修改方法 其实前面介绍loc方法的时候介绍了一些 1 loc方法
  • STM32 IAP Ymodem

    STM32 IAP采用Ymodem协议升级固件 公司最近软件需要通过IAP来升级所有板卡的固件 其中板卡有2块 一块主控板卡 一块子控板卡 其中 主控板卡与子控板卡之间采用RS485通信 PC与主控板卡采用RS232通信 具体框架 一 PC
  • pc817光耦参数_光耦在电子电路中有什么作用?关键参数有哪些?一起了解一下...

    光耦作为一个可以对信号进行电气隔离的电子元器件 常用于开关电源电压反馈隔离 电路隔离控制 光耦在电子电路中有不可或缺的地位 了解光偶的特性对学习电子电路有不少帮助 开关电源电压反馈 光耦隔离控制继电器 今天就一起来了解一下光耦吧 电子元器件
  • linkstack头文件 c语言,链式栈的基本操作——LinkStack(C语言版)

    include stdafx h include define OK 1 define ERROR 0 define TRUE 1 define FALSE 0 define MAXSIZE 20 存储空间初始分配量 typedef int
  • odoo10源码win系统开发环境安装图文教程

    前言 odoo10的源码安装教程不太完整或对新手不够友好 本新手再次整合出一份友好的新手教程 老鸟慎入 准备工作 一个干净的window系统 事先没有其他python环境的系统 如果怕系统污染可以先用虚拟机安装熟悉了再正式安装 亲测wind
  • 【论文写作】——设置中英文字体

    打开文件 点击选项 选择高级 取消中文字体也应用于西文的勾选 然后选中全文 设置中文字体为宋体 设置英文字体为times new Roman

随机推荐

  • flask框架

    flask框架 一 flask简介 二 初体验 三 flask配置 1 开启debug模式 2 如何正确显示中文 2 1 配置文件的优化 四 URL与视图 1 构造URL url for 五 指定HTTP方法 六 页面跳转和重定向 七 模板
  • 【PostMan】postman如何发送并发请求

    1 概述 假设我们有一个接口 单次调用可以调通 然后我们将这个接口加入到集合 也可以复制一个接口或者多个到集合 然后点击 后面点击运行就可以模拟 20个线程 轮训集合中的接口 并发的调用
  • [423]定时任务(saturn)

    项目地址 https github com vipshop Saturn 参考文档 https vipshop github io Saturn zh cn 3 0 https vipshop github io Saturn zh cn
  • 揭秘python函数:编程艺术的核心力量

    文章目录 前言 什么是 python 函数 函数的使用步骤 1 定义函数 2 调用函数 带有参数的函数 函数的返回值 函数的说明文档 函数的嵌套调用 实现简易的计算器 前言 当我们深入研究 Python 的内心深处 我们将会发现 函数是其内
  • c语言的文件末尾没有换行符,为什么文本文件应该以换行符结尾?

    这个答案是一种技术性的回答 而不是意见 如果我们想成为POSIX纯粹主义者 我们定义一条线为 零个或多个非字符加上终止字符的序列 不完整的一行 如 文件末尾一个或多个非字符的序列 文本文件 如 包含组织成零行或多行的字符的文件 这些行不包含
  • 面向对象基础--类和对象

    类和对象的关系 一 对象 用来描述客观事物的一个实体 由一组属性和方法构成 对象是由静态特征和动态特征组成 1 静态特征 属性 2 动态特征 方法 对象的特征 属性 属性 对象具有的各种特征 每个对象的每个属性都拥有特定值 对象的特征 方法
  • npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

    npm 无法将 npm 项识别为 cmdlet 函数 脚本文件或可运行程序的名称 请检查名称的拼写 如果包括路径 请确保路径正确 然后再试一次 目录 一 报错 二 解决 1 安装node js node js安装过程中的报错问题 解决nod
  • 五大板块(4)——链表

    参考 五大板块 4 链表 作者 丶PURSUING 发布时间 2021 02 15 09 33 29 网址 https blog csdn net weixin 44742824 article details 114981905 目录 一
  • index=False含义

    index False含义 输出不显示index 索引 值 在输出代码行中 加入 index False 如下 m pred survived to csv clasified csv index False
  • 深度学习(30)随机梯度下降七: 多层感知机梯度(反向传播算法)

    深度学习 30 随机梯度下降八 多层感知机梯度 反向传播算法 1 多层感知机模型 2 多层感知机梯度 3 传播规律小结 tens Recap Chain Rule Multi output Perceptron E
  • Unity--使用Cinemachine Confiner设置摄像机边界

    使用Cinemachine Confiner设置摄像机边界 前提提要 在做这个功能前需要 main camera 另外一个相机 思路 创建一个对象绑定Polygon Collider2D 边界 然后在另外一个相机Cinemachine Co
  • 嵌入式Linux:简单的模块源码分析

    目录 1 常用命令 2 insmod与module init宏 这里还有一个知识点 函数修饰符 3 模块的版本信息查看 模块中常用宏 printk函数 调试程序是可以用到 打印机别 0 7 关于驱动模块中的头文件 1 常用命令 lsmod
  • Linux 服务器安装配置vsftpd

    一 基础安装阶段 1 查看是否已安装ftp which vsftpd 2 查看ftp状态 service vsftpd status 3 若是以上检查均没有安装ftp 查询是否有可用的rpm安装包 yum list grep vsftpd
  • 通过vcpkg安装、配置 CGAL 5.2.1

    1 背景 CGAL是Computational Geometry Algorithms Library 计算几何算法库 的缩写 用C 语言提供高效 可靠的算法库 被广泛应用于几何计算相关的领域 如信息可视化系统 计算机辅助设计 分子生物学
  • LeetCode20. 有效的括号

    20 有效的括号 给定一个只包括 的字符串 判断字符串是否有效 有效字符串需满足 左括号必须用相同类型的右括号闭合 左括号必须以正确的顺序闭合 注意空字符串可被认为是有效字符串 示例 1 输入 输出 true 示例 2 输入 输出 true
  • Servlet的初始化时期

    初始化时期 概述 默认情况 Servlet在第一次请求时初始化 要求Servlet随着服务器的启动而初始化 这就需要设置servlet的初始化时机 load on startup进行设置 范围1 10 值越小 优先级越大 代码实现 Serv
  • qml中,在ListView中添加滚轮无法展现最后几行数据的问题解决

    这个是我困扰我数几个小时的问题 好不容易知道了如何在LIstView中添加滚轮 然而 当我鼠标滚轮到最后的时候 展现的总不是最后那几行数据 这真的很让人头大 还好有了这次经历 把这个问题记录下来 给那些在qml中遇到同样问题的人 首先介绍我
  • GitHub Atom - 移除编辑器内的竖线

    本文转载至 http stackoverflow com questions 25579775 github atom remove the center line in the editor 这根竖线是由 wrap guide 包提供 如
  • Python3-基础- 包、闭包

    包 包 包是模块的一种形式 包的本质就是含有 py文件的文件夹 模块 模块就是封装好的具有特定功能的函数代码 例如sum 求和函数 py文件的两种功能 1 脚本 一个文件就是完整的程序 用来直接执行 2 模块 一个文件中存放的某些功能函数
  • Bp神经网络

    智能系统课程设计 老师要求做一个识别手写数字的神经网络算法 数据集是Mnist image数据集 在网上找了好多教程 结果仍然不清楚 后来在B站找了个视频才弄懂 传上来代码 以备以后回顾 Minss image newBpLearn cpp