标签: pybrain

ImportError:没有名为scipy的模块

我正在使用Python 2.7并尝试让PyBrain工作.

但即使安装了scipy,我也会收到此错误 -

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-
py2.7.egg/pybrain/__init__.py", line 1, in <module>
    from pybrain.structure.__init__ import *
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/__init__.py", line 1, in <module>
    from pybrain.structure.connections.__init__ import *
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/connections/__init__.py", line 1, in <module>
    from pybrain.structure.connections.full import FullConnection
  File "/usr/local/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/connections/full.py", line 3, in <module>
    from scipy import reshape, dot, outer
ImportError: No module named scipy
Run Code Online (Sandbox Code Playgroud)

我用这个命令安装了scipy -

sudo apt-get install python-scipy
Run Code Online (Sandbox Code Playgroud)

我明白了 -

Reading package lists... Done
Building dependency tree       
Reading state …
Run Code Online (Sandbox Code Playgroud)

python scipy python-2.7 pybrain

77
推荐指数
7
解决办法
24万
查看次数

神经网络训练中一个时代的意义

当我在阅读如何在pybrain中构建ANN时,他们说:

训练网络一些时代.通常你会在这里设置类似5的东西,

trainer.trainEpochs( 1 )
Run Code Online (Sandbox Code Playgroud)

我寻找的是什么意思,然后我得出结论,我们使用一个数据时代来更新权重,如果我选择训练5个时期的数据作为pybrain建议,数据集将被分成5个子集,并且权重将更新最多5倍.

我熟悉在每次样本数据或特征向量后更新权利的在线培训,我的问题是如何确定5个时代足以构建模型并设置权重?这种方式在线培训的优势是什么?术语"epoch"也用于在线培训,是否意味着一个特征向量?

artificial-intelligence machine-learning neural-network pybrain

51
推荐指数
1
解决办法
5万
查看次数

如何保存和恢复PyBrain培训?

有没有办法在PyBrain中保存和恢复经过训练的神经网络,这样我每次运行脚本时都不必重新训练它?

pybrain

33
推荐指数
2
解决办法
2万
查看次数

PyBrain的神经网络训练不会收敛

我有以下代码,来自PyBrain教程:

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

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

net     = buildNetwork(2, 3, 1, bias=True, hiddenclass=TanhLayer)
trainer = BackpropTrainer(net, ds)

for inp, tar in ds:
     print [net.activate(inp), tar]

errors  = trainer.trainUntilConvergence()

for inp, tar in ds:
     print [net.activate(inp), tar]
Run Code Online (Sandbox Code Playgroud)

然而,结果是一个训练不好的神经网络.在查看错误输出时,网络会得到正确的训练,但是它会使用'continueEpochs'参数来训练更多,并且网络再次表现更差.因此网络正在融合,但没有办法获得训练有素的网络.PyBrain的文档意味着返回的网络被训练得最好,但它会返回一个错误元组.

当我将continueEpochs设为0时,我得到一个错误(ValueError:max()arg是一个空序列)所以continueEpochs必须大于0.

是否实际维护了PyBrain,因为它似乎在文档和代码方面存在很大差异.

python neural-network pybrain

32
推荐指数
2
解决办法
2万
查看次数

请求例如:用于预测序列中的下一个值的递归神经网络

任何人都可以给我一个(pybrain)python中循环神经网络的实例,以预测序列的下一个值吗?(我已经阅读了pybrain文档,我认为没有明确的例子.)我也发现了这个问题.但我没有看到它在更一般的情况下是如何工作的.因此,我在问这里是否有人能够找到一个明确的例子,说明如何使用递归神经网络预测pybrain中序列的下一个值.

举个例子.

比方说,我们有一系列数字在[1,7]范围内.

First run (So first example): 1 2 4 6 2 3 4 5 1 3 5 6 7 1 4 7 1 2 3 5 6

Second run (So second example): 1 2 5 6 2 4 4 5 1 2 5 6 7 1 4 6 1 2 3 3 6

Third run (So third example): 1 3 5 7 2 4 6 7 1 3 5 6 7 1 4 6 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning time-series neural-network pybrain

27
推荐指数
1
解决办法
1万
查看次数

在PyBrain神经网络中创建自定义连接

我想创建一个遵循以下布局的人工神经网络(在PyBrain中):

布局

但是,我无法找到实现这一目标的正确方法.我在文档中看到的唯一选项是创建完全连接的层的方法,这不是我想要的:我希望我的一些输入节点连接到第二个隐藏层而不是第一个隐藏层.

python neural-network pybrain

25
推荐指数
1
解决办法
6314
查看次数

如何使用pybrain黑盒优化训练神经网络到监督数据集?

我已经玩过pybrain,了解如何使用自定义架构生成神经网络,并使用反向传播算法将它们训练到监督数据集.

但是我对优化算法以及任务,学习代理和环境的概念感到困惑.

例如:我如何实现神经网络,如(1)使用pybrain遗传算法(2)对XOR数据集进行分类?

(1) pybrain.tools.shortcuts.buildNetwork(2, 3, 1)

(2) pybrain.optimization.GA()

python artificial-intelligence neural-network pybrain

19
推荐指数
1
解决办法
1万
查看次数

PyBrain - 如何做深度信念网络培训?

使用Pybrain训练DBN有些困难.首先,我尝试以简单的方式做到这一点:

net = buildNetwork(*layerDims)
Run Code Online (Sandbox Code Playgroud)

我遇到了这个问题:如何在PyBrain中进行有监督的深度信仰训练?,建议的解决方案只是导致了另一个错误:

File "/home/WORK/Canopy_64bit/User/lib/python2.7/site-packages/PyBrain-0.3.1-    py2.7.egg/pybrain/unsupervised/trainers/deepbelief.py", line 62, in <genexpr>
layercons = (self.net.connections[i][0] for i in layers)
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

所以我试着从头开始定义一个网络!

inp = LinearLayer(3 , 'visible')
hidden0 = SigmoidLayer(2 , 'hidden0')
hidden1= SigmoidLayer(2 , 'hidden1')
output = LinearLayer(2 , 'output')
bias = BiasUnit('bias')
net = Network()
net.addInputModule(inp)
net.addModule(hidden0)
net.addModule(hidden1)
net.addModule(output)
net.addModule(bias)
net.addConnection(FullConnection(inp, hidden0))
net.addConnection(FullConnection(hidden0, hidden1))
net.addConnection(FullConnection(hidden1, output))
net.addConnection(FullConnection(bias, hidden0))
net.addConnection(FullConnection(bias, hidden1))
net.addConnection(FullConnection(bias, output))
net.sortModules()
Run Code Online (Sandbox Code Playgroud)

我还在跑的时候:

trainer = deepbelief.DeepBeliefTrainer(net1, dataset=ds)
trainer.trainEpochs(epochs)
Run Code Online (Sandbox Code Playgroud)

我看到这个错误:

File "/home/WORK/Canopy_64bit/User/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/connections/connection.py", …
Run Code Online (Sandbox Code Playgroud)

python pybrain dbn deep-learning

18
推荐指数
1
解决办法
2309
查看次数

那里有没有合适的PyBrain教程?

所以,PyBrain看起来肯定有很多很棒的工具和功能可供使用.可悲的是,它的文档/'教程'是....非常........ weaK?并且很难确定如何做自己想做的事情.

是否有更好的资源来学习PyBrain的API?或者只是试错学习?

先感谢您....

python pybrain

16
推荐指数
0
解决办法
1382
查看次数

使用pyBrain _splitWithPortion的AttributeError - 对象类型改变了吗?

我测试了pybrain以下的基本分类教程这里和不同的看法上也有一些更现实的数据在这里.但是在应用带有错误的trndata._convertToOneOfMany()时收到此错误:

AttributeError: 'SupervisedDataSet' object has no attribute '_convertToOneOfMany
Run Code Online (Sandbox Code Playgroud)

数据集是作为classification.ClassificationDataSet对象创建的,但是调用splitWithProportion似乎改变了它的supervised.SupervisedDataSet对象,所以对于Python来说这个错误似乎并不像supervised.SupervisedDataSet没有那个方法那样令人惊讶, classification.ClassificationDataSet呢.代码在这里.

然而,在这么多教程中使用相同的确切代码我觉得我必须遗漏一些东西,因为很多其他人都有它的工作.我已经看过github上代码库的变化,这个函数没有什么,我也试过在Python 3和2.7下运行,但没有区别.如果有人有任何指示让我回到正确的道路上,那将非常感激.

#flatten the 64x64 data in to one dimensional 4096
ds = ClassificationDataSet(4096, 1 , nb_classes=40)
for k in xrange(len(X)): #length of X is 400
    ds.addSample(np.ravel(X[k]),y[k])
    # a new sample consisting of input and target

print(type(ds))      
tstdata, trndata = ds.splitWithProportion( 0.25 )
print(type(trndata))

trndata._convertToOneOfMany()
tstdata._convertToOneOfMany()
Run Code Online (Sandbox Code Playgroud)

python pybrain

16
推荐指数
1
解决办法
3259
查看次数