2014-10-15 6 views
-2

이 코드를 실행하려고합니다. 나는 그것이 나에게이 오류 역 추적 (마지막으로 가장 최근에 호출)를주고이 코드를 실행하려 동안python.trainData = trainData.astype (np.float) /255.0 ValueError : 시퀀스가있는 배열 요소를 설정합니다.

import csv 
import numpy as np 
from sklearn import svm, datasets, cross_validation 
from sklearn.grid_search import GridSearchCV 

###Load Training Data 
trainTargetArray = [] 
trainDataArray = [] 
with open('ocp_training.csv', 'r') as trainFile: 
trainReader = csv.reader(trainFile, delimiter = ',') 
for row in trainReader: 
    trainTargetArray.append(row[0])  
    trainDataArray.append(row[1:]) 

#Delete column headers  
del trainTargetArray[0] 
del trainDataArray[0] 
trainData = np.array(trainDataArray) 
trainTarget = np.array(trainTargetArray) 
trainData = trainData.astype(np.float)/255.0 
trainTarget = trainTarget.astype(np.float) 

###Load Testing Data 
testDataArray = [] 
with open('ocp_testing.csv', 'r') as testFile: 
testReader = csv.reader(testFile, delimiter = ',') 
for row in testReader: 
    testDataArray.append(row) 

    #Delete column headers   
del testDataArray[0] 
testData = np.array(testDataArray) 
testData = testData.astype(np.float)/255.0 

#Set up classification and fit the model data 
svc = svm.SVC(gamma=0.128, C=1) 
svc.fit(trainData, trainTarget) 

#Predict/Determine Value of New Images 
prediction = svc.predict(testData) 

#Save output to file 
output = open('./output.csv', 'w') 
for x, value in np.ndenumerate(prediction): 
    output.write(str(int(value))) 
    output.write("\n") 
output.close() 

: 파일 "C를 : ** 내부 예외를 IDLE \ Python34 \ lib 디렉토리 \ idlelib \ 실행합니다. py ", 353 행, runcode exec (code, self.locals) 파일"C : \ Python34 \ run.py ", 줄 20, trainData = trainData.astype (np.float) /255.0 ValueError : 시퀀스로 배열 요소를 설정.

답변

1

del 문을 제거하고 이후에 나오는 내용을 얇게 썬 목록으로 대체하십시오.

np.unique(map(len, trainData)) 

는 당신에게 하나 개의 값을 제공한다 : 즉

del trainTargetArray[0] 
del trainDataArray[0] 
trainData = np.array(trainDataArray) 
trainTarget = np.array(trainTargetArray) 

trainData = np.array(trainDataArray[1:]) 
trainTarget = np.array(trainTargetArray[1:]) 

그런 다음 선 길이의 일관성을 확인하게된다. 여러 개가 있다면, 당신의 라인 중 일부 라인은 다른 라인보다 길기 때문에 이것을 교정해야합니다.

+0

여전히 컴파일러에서 내 코드를 실행하여 긴급한 –

+0

예제가 자급 자족 적이거나 최소가 아니라고 알려주십시오. 아무도 당신이 그것을 실행할 수 없거나 당신을 도울 수 있습니다. 추가 정보없이. 내 제안은이 오류의 일반적인 이유를 기반으로했습니다. 당신의 CSV 라인이 모두 같은 길이라면, 에러는 다른 곳에서 발생합니다. 그리고 나는 베팅을하기 위해 시간을 보내기를 꺼려합니다. – eickenberg