데이터의 첫 번째 열은 'label'이고 첫 번째 열에서 마지막 784 번째 열까지의 열은 이미지 (28 * 28) 형식의 표현을 포함합니다 .I load (filename) 함수를 사용하여 numpy 배열의 튜플을 만들었습니다. 이 함수는 이미지에 레이블을 지정합니다.NotImplementedError : 할당에서 유효하지 않은 유형
이제는 아래 함수 read (digits, path = ".")에서 생성 된 데이터를 사용하고 싶습니다. 이 형식은 scikit 라이브러리의 Support Vector Machine Analysis에 사용됩니다. 사실, 나는 아래쪽으로 두 번째 예제를 모방하려고 노력 중이다. http://cvxopt.org/applications/svm/index.html
데이터를 다시 포맷하려고 시도 할 때 아래에 본문에 복사 된 오류가 표시됩니다. 방법이 있습니까, 원하는 형식으로 가져올 수 있습니까?
sizeImages = 5851 sizelabels = 5851
Traceback (most recent call last):
File "svm.py", line 62, in <module>
print read([8], path = dir_path)
File "svm.py", line 59, in read
images[i, :] = img[ ind[i]*28*28: (ind[i]+1)*28*28]
NotImplementedError: invalid type in assignment
train_name=dir_path+'train8.csv'
def load(filename):
# read file into a list of rows
with open(filename, 'rU') as csvfile:
lines = csv.reader(csvfile, delimiter=',')
rows = list(lines)
# create empty numpy arrays of the required size
data = np.empty((len(rows), len(rows[0])-1), dtype=np.float64)
expected = np.empty((len(rows),), dtype=np.int64)
# fill array with data from the csv-rows
for i, row in enumerate(rows):
data[i,:] = row[1:]
expected[i] = row[0]
result_data = data, expected
return result_data
> Result:
(array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]]), array([1, 1, 1, ..., 1, 1, 1]))
def read(digits, path = "."):
data= load(train_name)
print "sizeImages = ",len(data[0]), "sizelabels = ", len(data[1])
lbl=data[1]
size=len(data[1])
img=data[0] #print type(img) OUTPUT: <type 'numpy.ndarray'>
img =[l[0] for l in img] # print type(img) OUTPUT: <type 'list'>,
*This is used to unpack the numpy array from above.*
ind = [ k for k in xrange(size) if lbl[k] in digits ]
images = matrix(0, (len(ind), 28*28))
labels = matrix(0, (len(ind), 1))
#images = data[0]
labels = img
for i in xrange(len(ind)):
images[i, :] = img[ ind[i]*28*28: (ind[i]+1)*28*28]
labels[i] = lbl[ind[i]]
return images,labels
print read([8], path = dir_path)
원하는 형식 :이다Result:
**(<5949x784 matrix, tc='i'>, <5949x1 matrix, tc='i'>)**
상기 제 1 행렬은 상기 인 {배열 등 희소 행렬} 형상 = N_SAMPLES, n_features] 트레이닝 벡터, 여기서 n_samples는 샘플 수와 n_features는 피쳐의 수입니다.
sample data:
'''1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38 254 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 252 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 135 241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 244 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 254 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 223 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 254 216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 254 195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 140 254 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 237 205 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124 255 165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 254 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 232 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 254 159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 151 254 142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 254 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 251 254 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 254 205 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 215 254 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 198 176 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'''
에 오신 것을 환영합니다. 도움말 설명서의 게시 지침을 읽고 따르십시오. [최소한의 완전하고 검증 가능한 예제] (http://stackoverflow.com/help/mcve)가 여기에 적용됩니다. MCVE 코드를 게시하고 문제를 정확하게 설명하기 전까지는 효과적으로 도움을 드릴 수 없습니다. 게시 된 코드를 텍스트 파일에 붙여넣고 설명한 문제를 재현 할 수 있어야합니다. – Prune
'print type (- )'문장을 삽입하여 데이터 유형을 확인하십시오. 실패한 임무지기 직전에 배치하십시오. –
Prune
안녕 Prune, 나는 인쇄를 통해 디버깅을 시도했다. 나는 반갑 습니다. 모든 반품을 위해. MCVE에 감사드립니다. 독자가 문맥을 이해할 수 있도록 두 가지 기능을 모두 게시했습니다. – lpt