需要帮助使数据集在pybrain中可用吗

2024-10-01 22:25:49 发布

您现在位置:Python中文网/ 问答频道 /正文

from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
from pybrain.structure import FullConnection
from pybrain.datasets import SupervisedDataSet
import numpy as np

X = np.loadtxt('xdatanorm.txt', dtype=float)
y = np.loadtxt('ydatanorm.txt', dtype=float)

n = FeedForwardNetwork()
inLayer = LinearLayer(35)
hiddenLayer = SigmoidLayer(18)
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(35,1)
DS.addSample(X,y)

开始用pybrain来建立一个神经网络来处理我的扩散能量数据。我不知道如何从我的X和y值得到一个数据集。X是35个输入,y是1个输出,有148个样本。使用此代码,我得到错误:“ValueError:无法将输入数组从形状(148,35)广播到形状(35)”

需要知道如何正确地为pybrain准备数据集。在


Tags: to数据fromimportnpstructurehiddenpybrain
1条回答
网友
1楼 · 发布于 2024-10-01 22:25:49

我相信.addSample()方法一次只需要一个样本。不要使用.addSample(),请尝试

assert(X.shape[0] == y.shape[0])
DS.setField('input', X)
DS.setField('target', y)

建议使用“assert()”,因为.setField()方法不像.addSample()那样验证数组维度。在

有关详细信息,请参见Pybrain dataset tutorial。在

相关问题 更多 >

    热门问题