标签: pybrain

PyBrain:从头开始创建网络时如何以及在何处创建偏差?

遵循PyBrain文档,使用模块和连接构建网络,我正在逐步构建神经网络(与使用buildNetwork快捷方式相反).我正在构建一个简单的3层(输入,隐藏,输出)神经网络.如何正确添加偏置单元?

我猜我在构建一个BiasUnit模块:

b = BiasUnit(name='bias')
network.addModule(b)
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?我必须创建FullConnection对象吗?如果是这样,我应该连接什么?

python neural-network pybrain

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

有哪些包实现了半监督(约束)聚类?

我想在半监督(约束)聚类上进行一些实验,特别是作为实例级成对约束(Must-Link或Can not-Link约束)提供的背景知识.我想知道是否有任何好的开源软件包实现半监督聚类?我试着看看PyBrain,mlpy,scikit和orange,我找不到任何受约束的聚类算法.特别是,我对受约束的K-Means或基于约束密度的聚类算法(如C-DBSCAN)感兴趣.Matlab,Python,Java或C++中的包将是首选,但不必限于这些语言.

cluster-analysis k-means pybrain dbscan

6
推荐指数
2
解决办法
3875
查看次数

PyBrain:使用numpy.loadtxt加载数据?

我有一些工作代码可以正确地将csv文件中的数据加载到PyBrain数据集中:

def old_get_dataset():

    reader = csv.reader(open('test.csv', 'rb'))

    header = reader.next()
    fields = dict(zip(header, range(len(header))))
    print header

    # assume last field in csv is single target variable
    # and all other fields are input variables
    dataset = SupervisedDataSet(len(fields) - 1, 1)

    for row in reader:
        #print row[:-1]
        #print row[-1]
        dataset.addSample(row[:-1], row[-1])

    return dataset
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试重写此代码以使用numpy的loadtxt函数.我相信addSample可以采用numpy数组,而不必一次添加一行数据.

假设我加载的numpy数组是mxn维,那么如何将第一个mx(n-1)数据集作为第一个参数传递,最后一列数据作为第二个参数?这就是我正在尝试的:

def get_dataset():

    array = numpy.loadtxt('test.csv', delimiter=',', skiprows=1)

    # assume last field in csv is single target variable
    # and all other fields are input variables
    number_of_columns …
Run Code Online (Sandbox Code Playgroud)

python numpy pybrain

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

如何使用PyBrain网络拟合函数?

有一个函数,如:y = sin(x)我想使用PyBrain网络来适应函数,这就是我所做的:当你运行它时你会得到我得到的,获得的数据远不应该是它应该是什么.

from pybrain.datasets import SupervisedDataSet
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
import pickle
import scipy as sp
import numpy as np
import pylab as pl

x = np.linspace(0, 4*np.pi, 100)
ds = SupervisedDataSet(1,1)

for i in x:
    ds.addSample(i,sin(i))
print ds

n = buildNetwork(ds.indim,3,3,3,ds.outdim,recurrent=True)
t = BackpropTrainer(n,learningrate=0.01,momentum=0.5,verbose=True)
t.trainOnDataset(ds,1000)
t.testOnData(verbose=True)

fileObject = open('trained_net', 'w')
pickle.dump(n, fileObject)
fileObject.close()

fileObject = open('trained_net','r')
net = pickle.load(fileObject)

y = []
for i in x:
    y.append(net.activate(i))

pl.plot(x,y)
pl.plot(x,np.sin(x))
pl.show()
Run Code Online (Sandbox Code Playgroud)

python pybrain

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

Pybrain为任何输入输出相同的结果

我正在尝试用Pybrain训练一个简单的神经网络.训练结束后,我想确认nn是否按预期工作,因此我激活了我用来训练它的相同数据.但是每次激活都会输出相同的结果.我是否误解了关于神经网络的基本概念,还是这是设计的?

我已经尝试改变隐藏节点的数量,隐藏类型,偏差,学习率,训练时期的数量和动力无济于事.

这是我的代码......

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

net = buildNetwork(2, 3, 1)  
net.randomize()                                                    

ds = SupervisedDataSet(2, 1)                                                       
ds.addSample([77, 78], 77)                                                         
ds.addSample([78, 76], 76)                                                         
ds.addSample([76, 76], 75)                                                         

trainer = BackpropTrainer(net, ds)                                                 
for epoch in range(0, 1000):                                                                   
    error = trainer.train()                                                                    
    if error < 0.001:                                                                          
        break                                                      

print net.activate([77, 78])                                                       
print net.activate([78, 76])                                                       
print net.activate([76, 76])  
Run Code Online (Sandbox Code Playgroud)

这是结果的一个例子......正如您所看到的,即使激活输入不同,输出也是相同的.

[ 75.99893007]
[ 75.99893007]
[ 75.99893007]
Run Code Online (Sandbox Code Playgroud)

neural-network pybrain

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

Pybrain神经网络无法正确训练

我一直在努力使用pybrain创建一个神经网络,并且由于某种原因训练后传播它无法训练我的网络.我在out维度中使用两个以上类的任何数据集都会将我的所有观察结果都集中到一个类别中.有谁知道为什么会这样?代码和一些输出如下.

import scipy
import numpy
from pybrain.datasets            import ClassificationDataSet
from pybrain.utilities           import percentError
from pybrain.tools.shortcuts     import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.structure.modules   import SoftmaxLayer
from sklearn.metrics             import precision_score,recall_score,confusion_matrix
def makeDataset(CSVfile,ClassFile):
    #import the features to data, and their classes to dataClasses
    data=numpy.genfromtxt(CSVfile,delimiter=",")
    classes=numpy.genfromtxt(ClassFile,delimiter=",")
    print("Building the dataset from CSV files")
    #Initialize an empty Pybrain dataset, and populate it
    alldata=ClassificationDataSet(len(data[0]),1,nb_classes=3)
    for count in range(len((classes))):
        alldata.addSample(data[count],[classes[count]])
    return alldata



def makeNeuralNet(alldata,trainingPercent=.3,hiddenNeurons=5,trainingIterations=20):
    #Divide the data set into training and non-training data    
    testData, trainData = alldata.splitWithProportion(trainingPercent) …
Run Code Online (Sandbox Code Playgroud)

python neural-network pybrain

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

Pybrain:训练ActionValueNetwork不能正常工作

我试图训练ActionValueNetwork一个简单的XOR函数,但结果看起来像随机.

""" Reinforcement Learning to learn xor function
"""
# generic import
import numpy as np
import random

# pybrain import 
from pybrain.rl.explorers import EpsilonGreedyExplorer
from pybrain.rl.agents import LearningAgent
from pybrain.rl.learners.valuebased import ActionValueNetwork, NFQ

# The parameters of your algorithm
av_network = ActionValueNetwork(2, 2) # 2 dimensions in input, 2 actions possible (1 or 0)
learner = NFQ()
learner._setExplorer(EpsilonGreedyExplorer(0.0)) # No exploration
agent = LearningAgent(av_network, learner)

# The training 
for _ in xrange(1,25): # we iterate 25 times …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pybrain

5
推荐指数
0
解决办法
562
查看次数

导入错误:无法打开共享对象文件:没有这样的文件或目录

我正在尝试将 arac 与 PyBrain 一起使用,当我调用 net.convertToFastNetwork() 或尝试导入 arac.pybrainbridge(导入 arac 工作正常)时,出现此错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pafnouti/Documents/Project/arac/src/python/arac/pybrainbridge.py", line 51, in <module>
    import arac.cppbridge as cppbridge
  File "/home/pafnouti/Documents/Project/arac/src/python/arac/cppbridge.py", line 31, in <module>
    _cppbridge = swig_import_helper()
  File "/home/pafnouti/Documents/Project/arac/src/python/arac/cppbridge.py", line 26, in swig_import_helper
    _mod = imp.load_module('_cppbridge', fp, pathname, description)
ImportError: libarac.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

来自这段代码:

    try:
        fp, pathname, description = imp.find_module('_cppbridge', [dirname(__file__)])
    except ImportError:
        import _cppbridge
        return _cppbridge
    if fp …
Run Code Online (Sandbox Code Playgroud)

python swig importerror pybrain

5
推荐指数
0
解决办法
8166
查看次数

简单回归示例pyBrain

我试图在pyBrain上进行最简单的回归,但不知怎的,我失败了.

神经网络应该学习Y = 3*X的函数

from pybrain.supervised.trainers import BackpropTrainer
from pybrain.datasets import SupervisedDataSet
from pybrain.structure import FullConnection, FeedForwardNetwork, TanhLayer, LinearLayer, BiasUnit
import matplotlib.pyplot as plt
from numpy import *

n = FeedForwardNetwork()
n.addInputModule(LinearLayer(1, name = 'in'))
n.addInputModule(BiasUnit(name = 'bias'))
n.addModule(TanhLayer(1,name = 'tan'))
n.addOutputModule(LinearLayer(1, name = 'out'))
n.addConnection(FullConnection(n['bias'], n['tan']))
n.addConnection(FullConnection(n['in'], n['tan']))
n.addConnection(FullConnection(n['tan'], n['out']))
n.sortModules()

# initialize the backprop trainer and train
t = BackpropTrainer(n, learningrate = 0.1, momentum = 0.0, verbose = True)

#DATASET
DS = SupervisedDataSet( 1, 1 )
X = …
Run Code Online (Sandbox Code Playgroud)

python regression machine-learning neural-network pybrain

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

安装 PyBrain 时没有名为“结构”的模块,即使它在文件夹中

我通过 PyCharm 安装了 PyBrain,当我尝试编译时出现以下错误:

Traceback (most recent call last):
  File "C:/Users/Marcus/PycharmProjects/ANN/ann.py", line 2, in <module>
    from pybrain.tools.shortcuts import buildNetwork
  File "C:\Python34\lib\site-packages\pybrain\__init__.py", line 1, in <module>
    from structure.__init__ import *
ImportError: No module named 'structure'
Run Code Online (Sandbox Code Playgroud)

但是,在文件夹 site-packages\pybrain\ 中有一个名为“structure”的文件夹,其中包含(我认为是)pybrain 要求的内容。

在此处输入图片说明

我对 Python 还很陌生,所以我还没有完全习惯这种安装包的事情。是我错过了什么吗?我试图在 PyCharm 包安装程序中搜索名为“结构”的包,但没有(只有“结构”)。

提前致谢

编辑:评论要求我进一步解释我如何安装软件包。在 PyCharm 中,我去项目设置 -> 项目解释器 -> 搜索“pybrain”

在此处输入图片说明

python python-3.x pybrain

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