# -*- coding: cp936 -*-
#
# pyneurgen
神经网络
-
遗传算法分析包,构建简单的神经网络并进行预测
#
下载地址:
http://sourceforge.net/projects/pyneurgen/files/
#
内部
doc
帮助文档,简单易懂,但
demo
不完全。
import random
import math
from pyneurgen.neuralnet import NeuralNet
# struct random input number In range(0.8
,
1);target number always=1.0
inputdata=[]
target=[]
for i in range(20):
a=[]
a.append(random.uniform(0.8,1))
inputdata.append(a)
target.append([1.0])
#
建立神经网络
net=NeuralNet()
net.init_layers(1,[10],1)#one input layer with one node;one haidelayer with ten
nodes;one output layer with one node
net.randomize_network()
net.set_halt_on_extremes(True)
net.set_random_constraint(0.5)
net.set_learnrate(.1)
net.set_all_inputs(inputdata)
net.set_all_targets(target)
net.set_learn_range(0,19)
net.set_test_range(16,19)
net.layers[1].set_activation_type('sigmoid')#
设定隐含层的激励函数,或者输出函数。
net.learn(epochs=200, show_epoch_results=True,
random_testing=False)#
网络开始学习
mse=net.test()
print net.input_layer.values(),net.output_layer.values()
#predict number:
先用学习值的最后一个作为预测值,检验网络是否按照原先的状态运行。
predict =[]#
学习值的最后一个值
net.input_layer.load_inputs(predict)#load
for j in range(len(net.layers)-1):#
开始预测
运行网络
net.layers[j+1].feed_forward()
print net.output_layer.values()#
输出值应和原先的网络的学习值一直
#predict number:
开始随机预测
predict =[random.uniform(0.8,1)]
net.input_layer.load_inputs(predict)
for j in range(len(net.layers)-1):
net.layers[j+1].feed_forward()
print net.input_layer.values(),net.output_layer.values()