标签: pybrain

如何在PyBrain中加载训练数据?

我正在尝试使用PyBrain进行一些简单的NN训练.我不知道该怎么做是从文件加载训练数据.任何地方都没有在他们的网站上解释过.我不关心格式,因为我现在可以构建它,但我需要在文件中执行它,而不是手动逐行添加,因为我将有几百行.

python neural-network pybrain

8
推荐指数
1
解决办法
9677
查看次数

PyBrain:我如何在神经网络中加入特定权重?

我试图基于给定的事实重建一个神经网络.它有3个输入,一个隐藏层和一个输出.我的问题是权重也给出了,所以我不需要训练.

我想也许我可以保存类似的结构神经网络的训练并相应地改变值.你认为这会有效吗?还有其他的想法.谢谢.

神经网络代码:

    net = FeedForwardNetwork()
    inp = LinearLayer(3)
    h1 = SigmoidLayer(1)
    outp = LinearLayer(1)

    # add modules
    net.addOutputModule(outp)
    net.addInputModule(inp)
    net.addModule(h1)

    # create connections
    net.addConnection(FullConnection(inp, h1))
    net.addConnection(FullConnection(h1, outp))

    # finish up
    net.sortModules()


    trainer = BackpropTrainer(net, ds)
    trainer.trainUntilConvergence()
Run Code Online (Sandbox Code Playgroud)

保存培训并加载代码如何保存和恢复PyBrain培训?

# Using NetworkWriter

from pybrain.tools.shortcuts import buildNetwork
from pybrain.tools.xml.networkwriter import NetworkWriter
from pybrain.tools.xml.networkreader import NetworkReader

net = buildNetwork(2,4,1)

NetworkWriter.writeToFile(net, 'filename.xml')
net = NetworkReader.readFrom('filename.xml') 
Run Code Online (Sandbox Code Playgroud)

python neural-network pybrain

8
推荐指数
1
解决办法
4988
查看次数

如何为经过培训和测试的PyBrain网络提供输入以及如何获得结果

我正在预测一个值,我有2个输入层和一个输出层.这是我的代码,我在其中训练了一个PyBrain网络,然后对其进行了测试,我不知道应该如何给网络提供一组输入,以及如何获得结果.请帮我继续前进.

 ds = SupervisedDataSet(2,1)
 tf = open('data.csv','r')
 for line in tf.readlines():
 data = [float(x) for x in line.strip().split(',') if x != '']
 indata =  tuple(data[:2])
 outdata = tuple(data[2:])
 ds.addSample(indata,outdata)

 n = buildNetwork(ds.indim,8,8,ds.outdim,recurrent=True)
 t = BackpropTrainer(n,learningrate=0.01,momentum=0.5,verbose=True)
 t.trainOnDataset(ds,1000)
 t.testOnData(verbose=True)
Run Code Online (Sandbox Code Playgroud)

接下来我应该做什么来提供输入并预测输入,如何获得该组输入的结果.谢谢!!

python neural-network pybrain

8
推荐指数
1
解决办法
2387
查看次数

用PyBrain神经网络预测时间序列数据

问题

我试图使用5年的连续历史数据来预测下一年的价值.

数据结构

我的输入数据input_04_08如下所示,其中第一列是一年中的某一天(1到365),第二列是记录的输入.

1,2
2,2
3,0
4,0
5,0
Run Code Online (Sandbox Code Playgroud)

我的输出数据output_04_08看起来像这样,是一列,在一年的那一天记录了输出.

27.6
28.9
0
0
0
Run Code Online (Sandbox Code Playgroud)

然后我将0到1之间的值标准化,以便给网络的第一个样本看起来像

Number of training patterns:  1825
Input and output dimensions:  2 1
First sample (input, target):
[ 0.00273973  0.04      ] [ 0.02185273]
Run Code Online (Sandbox Code Playgroud)

方法(S)

前馈网络

我在PyBrain中实现了以下代码

input_04_08 = numpy.loadtxt('./data/input_04_08.csv', delimiter=',')
input_09 = numpy.loadtxt('./data/input_09.csv', delimiter=',')
output_04_08 = numpy.loadtxt('./data/output_04_08.csv', delimiter=',')
output_09 = numpy.loadtxt('./data/output_09.csv', delimiter=',')

input_04_08 = input_04_08 / input_04_08.max(axis=0)
input_09 = input_09 / input_09.max(axis=0)
output_04_08 = output_04_08 / output_04_08.max(axis=0)
output_09 = output_09 / output_09.max(axis=0) …
Run Code Online (Sandbox Code Playgroud)

python neural-network forecasting pybrain lstm

8
推荐指数
1
解决办法
4508
查看次数

PyBrain中的_convertToOneOfMany

我遵循PyBrain教程分类与前馈神经网络,并希望建立自己的分类器.

我不明白如何_convertToOneOfMany修改输出.

为什么初始操作会alldata.addSample(input, [klass])为每个类创建多个输出神经元?

neural-network pybrain

7
推荐指数
1
解决办法
3391
查看次数

PyBrain网络中所有节点的激活值

我觉得这应该是微不足道的,但我很难在PyBrain文档中找到任何有用的东西,在这里或其他地方.

问题是这样的:

我有一个在PyBrain中构建和训练的三层(输入,隐藏,输出)前馈网络.每层有三个节点.我想用新颖的输入激活网络,并将结果的激活值存储在隐藏层.据我所知,net.activate()和net.activateOnDataset()只返回输出层节点的激活值,是激活网络的唯一方法.

如何获得PyBrain网络的隐藏层激活?

我不确定示例代码在这种情况下会有多大帮助,但无论如何这里有一些(使用减少的训练集):

from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer

net = buildNetwork(3, 3, 3)

dataSet = SupervisedDataSet(3, 3)
dataSet.addSample((0, 0, 0), (0, 0, 0))
dataSet.addSample((1, 1, 1), (0, 0, 0))
dataSet.addSample((1, 0, 0), (1, 0, 0))
dataSet.addSample((0, 1, 0), (0, 1, 0))
dataSet.addSample((0, 0, 1), (0, 0, 1))

trainer = BackpropTrainer(net, dataSet)
trained = False
acceptableError = 0.001

# train until acceptable error reached
while trained == False :
    error = trainer.train() …
Run Code Online (Sandbox Code Playgroud)

python neural-network pybrain

7
推荐指数
1
解决办法
2260
查看次数

将pybrain预测输出作为数组

我正在利用pybrain构建一个具有6个输入维度和一个实值输出维度的网络.我使用的代码如下所示:

network = buildNetwork(train.indim, 4, train.outdim)

trainer = BackpropTrainer( network, train)
trainer.trainOnDataset(train, 8000)

print 'MSE train', trainer.testOnData(train, verbose = True)
Run Code Online (Sandbox Code Playgroud)

这里的火车是Dataset的类型我想把在trainer.testOnData()中做出的预测作为一个numpy数组.我能够查看预测结果以及错误,但我希望它作为一个数组.无论如何,这可以做到吗?

python numpy machine-learning neural-network pybrain

7
推荐指数
1
解决办法
2984
查看次数

我有麻烦让pybrain通过anaconda工作

这是我的问题:

在我设法安装anaconda(有python 3.4)之后,我显然设法安装了pybrain.但是,当我使用来自anaconda或终端的'import pybrain'时,我也会收到此错误:

>>> import pybrain
Traceback (most recent call last):

File "<ipython-input-2-0fb7233d2a8c>", line 1, in <module>
import pybrain

 File "//anaconda/lib/python3.4/site-packages/PyBrain-0.3-py3.4.egg/pybrain/__init__.py", line 1, in <module>
from structure.__init__ import *

 ImportError: No module named 'structure'
Run Code Online (Sandbox Code Playgroud)

python pybrain

7
推荐指数
1
解决办法
4667
查看次数

PyBrain神经元操纵

有没有一种很好的方法可以在完全连接的PyBrain网络中添加/删除神经元及其相关连接?说我开始:

from pybrain.tools.shortcuts import buildNetwork
net = buildNetwork(2,3,1)
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它成为(2,4,1)或(2,2,1)网络,同时保持所有旧权重(并在初始化网络时初始化任何新权重是随机的)?我想这样做的原因是因为我试图使用进化学习策略来确定最佳架构,而"突变"步骤则涉及以某种可能性添加/删除节点.(输入和输出模块应始终保持不变.)

编辑:我发现NeuronDecomposableNetwork应该让这更容易,但似乎我必须分别跟踪神经元和连接.

python neural-network pybrain

6
推荐指数
1
解决办法
1148
查看次数

如何创建简单的3层神经网络并使用监督学习进行教学?

基于PyBrain的教程,我设法将以下代码拼凑在一起:

#!/usr/bin/env python2
# coding: utf-8

from pybrain.structure import FeedForwardNetwork, LinearLayer, SigmoidLayer, FullConnection
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer

n = FeedForwardNetwork()

inLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outLayer = LinearLayer(1)

n.addInputModule(inLayer)
n.addModule(hiddenLayer)
n.addOutputModule(outLayer)

in_to_hidden = FullConnection(inLayer, hiddenLayer)
hidden_to_out = FullConnection(hiddenLayer, outLayer)

n.addConnection(in_to_hidden)
n.addConnection(hidden_to_out)

n.sortModules()

ds = SupervisedDataSet(2, 1)
ds.addSample((0, 0), (0,))
ds.addSample((0, 1), (1,))
ds.addSample((1, 0), (1,))
ds.addSample((1, 1), (0,))

trainer = BackpropTrainer(n, ds)
# trainer.train()
trainer.trainUntilConvergence()

print n.activate([0, 0])[0]
print n.activate([0, 1])[0]
print n.activate([1, …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pybrain

6
推荐指数
1
解决办法
457
查看次数