Python ——pyneurgen 神经网络代码

# -*- 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);targetnumber 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)#输入、隐含、输出层建立

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()

printnet.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()

你可能感兴趣的:(Python,python)