2014-10-30 4 views
3

저는 pybrain을 사용하여 입력이 7x5 행렬이 될 간단한 신경망을 훈련 시켰습니다. PyBran에서 Matrix를 데이터 세트로 사용하려면 어떻게해야합니까?

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에이 데이터 세트를 줄 수 있습니까?

답변

3

먼저 SupervisedDataSet이 list와 작동한다는 것을 알아야하므로 2D 배열을 목록으로 변환해야합니다. 다음과 같이 할 수 있습니다 :

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,)) 

희망.

+0

당신은 그런 균열, 감사합니다 –

+0

당신은 환영합니다! ;) – Albert