C++類神經網路『模擬七段顯示器轉二進位顯示電路』[反向工程/數位電路破解]

C++類神經網路『模擬七段顯示器轉二進位顯示電路』[反向工程/數位電路破解]

C++類神經網路『模擬七段顯示器轉二進位顯示電路』[反向工程/數位電路破解]


原始碼資料來源:https://www.codeproject.com/Articles/13582/Back-propagation-Neural-Net

相關類神經教學資料來源:
https://dotblogs.com.tw/dragon229/2013/01/23/88750

http://cilab.csie.ncu.edu.tw/course/nn/


Github: https://github.com/jash-git/codeblocks-Back-propagation-Neural-Net-CB_BPN_CPP-

 

目錄結構:
    00_原始範例:
    00_原始範例下載網頁內容:
    01_單純倒傳遞類神經網路教學文件:
    02類神經完整教學PPT:
    03_CB_BPN_CPP:我自己把VC範例改成codeblocks的跨平台專案

    04_CB_BPN_CPP:類神經網路模擬七段顯示器轉二進位顯示電路

    05_CB_BPN_CPP:可以將訓練結果儲存起來,並且在下次直接載入參數直接使用(不用每次重新訓練,同OPENCV=可商用)

        七段 <–>二進位 互換 成功


code (05_CB_BPN_CPP):

#ifndef BPNET_H
#define BPNET_H

//http://www.voidcn.com/article/p-qoklaglm-vu.html
#include<cmath>
#include <cstdlib>
#include <ctime>
#include <cstdio>

///*
//---
//七段->二進位
#define  innode 7  //输入结点数
#define  hidenode 17//隐含结点数
#define  outnode 4 //输出结点数
//---七段->二進位
//*/

/*
//---
//二進位->七段
#define  innode 4  //输入结点数
#define  hidenode 22//隐含结点数
#define  outnode 7 //输出结点数
//---二進位->七段
//*/

#define  trainsample 10//BP训练样本数

class BpNet
{
public:
    void train(double p[trainsample][innode],double t[trainsample][outnode]);//Bp训练
    double p[trainsample][innode];     //输入的样本
    double t[trainsample][outnode];    //样本要输出的

    double *recognize(double *p);//Bp识别

    void writetrain(); //写训练完的权值
    void readtrain(); //读训练好的权值,这使的不用每次去训练了,只要把训练最好的权值存下来就OK

    BpNet();
    virtual ~BpNet();

public:
    void init();
    double w[innode][hidenode];//隐含结点权值
    double w1[hidenode][outnode];//输出结点权值
    double b1[hidenode];//隐含结点阀值
    double b2[outnode];//输出结点阀值

    double rate_w; //权值学习率(输入层-隐含层)
    double rate_w1;//权值学习率 (隐含层-输出层)
    double rate_b1;//隐含层阀值学习率
    double rate_b2;//输出层阀值学习率

    double e;//误差计算
    double error;//允许的最大误差
    double result[outnode];// Bp输出
}; 


2 thoughts on “C++類神經網路『模擬七段顯示器轉二進位顯示電路』[反向工程/數位電路破解]

  1. ANN/神經網路 層數(Number of layers)
    神經元 個數 (數量)
    自己初始化公式: 三層 – in, [ in*2 ],out

    ==================

    自己初始化公式: 三層 – in, [ in*2+out-1 ],out
    當out>1 & in<10

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *