资源简介
演化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
相关资源
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
- 联想启天M4350 BIOS升级文件
评论
共有 条评论