资源简介
演化ANN.zip
代码片段和文件信息
# -*- coding: utf-8 -*-
import numpy as np
import copy
def randonmPro(pro): #以概率pro生成1,(1-pro)生成0
pro *= 100
num = np.random.randint(1101)
if num <= pro:
return 1
else:
return 0
def sigmoid(z): #激活函数
return 1/(1+np.exp(-z))
def createTrainingData(): # 返回训练数据集
data = []
for i in range(32):
L = list(str(bin(i))[2:].zfill(5))
L = [ float(i) for i in L ]
data.append(L)
labels = [1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0100110010110]
return datalabels
def init(N): #隐藏结点数N初始化
connectedMatrix = np.zeros([N + 1 m + N] int) #连接矩阵
#connectedMatrix = np.random.randint(0 2 (N + 1 m + N))
derMatrix = np.zeros([N + 1 m + N + 1]) #偏导weight权值矩阵,初始化为0
weightMatrix = np.random.uniform(-5 5 (N + 1 m + N + 1)) #初始化权值矩阵,利用(-55)的均匀分布
for i in range(N + 1):
for j in range(m + N):
connectedMatrix[i][j] = randonmPro(0.5) #以0.5的概率生成连接矩阵
if connectedMatrix[i][j]==0:
weightMatrix[i][j+1]=0
if j >= i + m:
connectedMatrix[i][j] = 0
weightMatrix[i][j + 1] = 0
return connectedMatrixweightMatrixderMatrix
class Network: #神经网络类
def __init__(self connectedMatrix weightMatrix derMatrix mN):
self.connectedMatrix = connectedMatrix
self.weightMatrix = weightMatrix
self.derMatrix = derMatrix #偏导weight矩阵
self.success = False #标记网络是否成功
self.m = m #网络的输入结点个数
self.N = N #网络的隐藏结点个数
self.a = [] #网络中每个结点的输出 a=g(z)
self.z = [] #网络中每个结点的输入
self.delta = [0]*(N+1) #L对每个结点(从隐藏结点到输出结点)输入的偏导 例如delta[N]表示L对z[m+N]的偏导
self.E = 100 #E即算出的cost值,用作排序
def clearderMatrix(self): #用于清空偏导矩阵,梯度下降时使用
N = self.N
self.derMatrix = np.zeros([N + 1 m + N + 1])
def Pretreatment(selfinData): #预处理,讲delta清空,a,z均初始化为输出数据
N = self.N
self.a = []
self.z = []
self.delta = [0] * (N + 1)
self.a.extend(inData)
self.z.extend(inData)
def forward(self): #前向传播,填充a和z
N = self.N
for i in range(N+1):
s = -self.weightMatrix[i][0]
for j in range(m+i):
if self.connectedMatrix[i][j] == 1:
s += self.weightMatrix[i][j+1]*self.a[j]
self.z.append(s)
s = sigmoid(s)
self.a.append(s)
def derivatives(selflabel): #计算偏导,即BP(后向传播)算法,填充偏导weight矩阵和delta
N = self.N
out = self.a[m + N]
self.delta[N] = (out - label) * out * (1-out)
self.derMatrix[N][0] += self.delta[N]*(-1) #填充bias偏导
for j in range(m+N):
if self.connectedMatrix[N][j] == 1:
self.derMatrix[N][j+1] += self.delta[N]*self.a[j]
i = N-1 # i表示第i个隐藏节点
while i >= 0: #从最后一个结点往前
for j in range(i+1N+1):
if self.connectedMatrix[j][m+i] == 1:
self.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-07 22:08 演化ANN\
文件 400868 2018-09-21 17:14 演化ANN\A new evolutionary system for evolving artificial neural networks.pdf
文件 185245 2018-12-07 22:05 演化ANN\EP.docx
文件 11513 2018-12-05 14:12 演化ANN\EP.py
- 上一篇:四层电梯的PLC控制毕业设计
- 下一篇:佳能打印机维护工具tools
相关资源
- UC免费WiFI.exe
- 单片机.zip
- wgrib2.exe
- IEDScout4.20.txt
- avast_is_20200425.rar
- 阿里云考试认证题库ACA阿里云考试.
- 2018尚硅谷电商项目前后端分离视频教
- Maple2017最新中文版完破.zip
- Labview实现的11款小游戏.zip
- TXT.zip
-
singleob
ject.zip - HighCharts工具.rar
- 34省市行政区dem链接地址.zip
- 全国地理信息资源权威链接地址.zip
- 重庆DEM数据.zip
- 全球矢量数据.zip
- 习语言安装使用教程.pdf
- 大唐杯移动通信大赛内部资料.zip
- cvuqdisk-1.0.9-1.rar
- cef.txt
- MyEclipse10.1破解工具及方法图解.zip
- usernameANDpassword
- sles12-sp2.txt
- Linux内核视频教程.txt
- enigmacrypter_en.exe
- 滑模变结构程序.zip
- 20161024192515055.rar
- bashrc
- 大学物理简明教程第三版修订版赵近
- ConvexOptimizationAlgorithms(2015年DimitriP
评论
共有 条评论