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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐