如何使用矩阵作为PyBran上的数据集?

2024-10-02 18:18:24 发布

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

我用pybrain来训练一个简单的神经网络,其中的输入是一个7x5矩阵。你知道吗

以下是输入:

    A = [[0, 0, 1, 0, 0],
    [0, 1, 1, 0, 0],
    [0, 1, 0, 1, 0],
    [0, 1, 0, 1, 0],
    [1, 1, 1, 1, 1],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1]]

E = [[1, 1, 1, 1, 1],
    [1, 0, 0, 0, 0],
    [1, 0, 0, 0, 0],
    [1, 1, 1, 1, 0],
    [1, 0, 0, 0, 0],
    [1, 0, 0, 0, 0],
    [1, 1, 1, 1, 1]]
I = [[0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0]]

O = [[1, 1, 1, 1, 0],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [1, 1, 1, 1, 0]]

U = [[1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 0, 0, 1],
    [0, 0, 1, 1, 0]]

我想写一些像:

ds = SupervisedDataSet(1, 1)
ds.addSample((A), ("A",))

可能有用,但我得到:

ValueError: cannot copy sequence with size 7 to array axis with dimension 1

有什么办法我可以把这些数据集给pyBrain吗?你知道吗


Tags: tosizewithds矩阵神经网络arraysequence
1条回答
网友
1楼 · 发布于 2024-10-02 18:18:24

首先,您必须知道SupervisedDataSet与list一起工作,因此需要将2D数组转换为list。你可以这样做:

def convertToList (matrix):
    list = [ y for x in matrix for y in x]
    return list

然后需要将新列表提供给方法SupervisedDataSet。 另外,如果你想用这些信息来建立网络,你应该用一些数字来识别字母,比如A=1,E=2,I=3,O=4,U=5。为此,SupervisedDataSet的第二个参数应该是1。这样你就可以说“对于一个包含35个元素的列表,使用这些数字来标识一个数字”。你知道吗

最后,您的代码应该如下所示:

ds = SupervisedDataSet(35, 1)

A2 = convertToList(A)
ds.addSample(A2, (1,))

E2 = convertToList(E)
ds.addSample(E2, (2,))

I2 = convertToList(I)
ds.addSample(I2, (3,))

O2 = convertToList(O)
ds.addSample(O2, (4,))

U2 = convertToList(U)
ds.addSample(U2, (5,))

希望这能有所帮助。你知道吗

相关问题 更多 >