2017-12-15 23 views
-2

간단한 MNIST 예제를 연습 중입니다. 제목과 같은 오류가 발생하며 인덱스 11513의 의미를 알 수 없습니다. 다음은 전체 코드입니다.인덱스 11513이 0 축의 범위를 벗어났습니다. 10000

np.random.seed(3) 

(x_train, y_train), (x_test, y_test) = mnist.load_data() 

x_val = x_train[50000:] 
y_val = y_train[50000:] 
x_train = x_train[:50000] 
y_train = y_train[:50000] 


x_train = x_train.reshape(50000, 784).astype('float32')/255.0 
x_val = x_val.reshape(10000, 784).astype('float32')/255.0 
x_test = x_test.reshape(10000, 784).astype('float32')/255.0 

train_rand_idxs = np.random.choice(50000, 700) 
val_rand_idxs = np.random.choice(10000, 300) 
x_train = x_train[train_rand_idxs] 
y_train = y_train[train_rand_idxs] 
x_val = x_val[train_rand_idxs]#***This is where the error occurred*** 
y_val = y_val[train_rand_idxs] 

y_train = np_utils.to_categorical(y_train) 
y_test = np_utils.to_categorical(y_test) 
y_val = np_utils.to_categorical(y_val) 

model = Sequential() 
model.add(Dense(units=2 , input_dim= 28*28, activation='relu')) 
model.add(Dense(units=10 , activation='softmax')) 

model.compile(loss='categorical_crossentropy' , optimizer='sgd' , metrics=   ['accuracy']) 

hist = model.fit(x_train, y_train, epochs =1000 , batch_size=10 ,  validation_data =(x_val, y_val)) 
+1

색인 11513은 목록의 11514 번째 요소입니다. 오류에 따르면, 귀하의 목록에만 10000 요소가 있습니다 –

답변

0

귀하의 x_val 만 10000 행으로 재편된다

x_val = x_val.reshape(10000, 784).astype('float32')/255.0 

그러나 train_rand_idxs 50000까지의 인덱스 값이 있습니다

train_rand_idxs = np.random.choice(50000, 700) 

당신이 당신의 기차 지수와 x_val 부분 집합을 시도

:

x_val = x_val[train_rand_idxs] 

[0,50000)에 샘플링 된 색인 중 일부가 [0,10000) 범위 인 x_val 색인보다 크기 때문에 오류가 발생합니다.

대신 x_valx_val[val_rand_idxs]으로 샘플링 해보십시오.

+0

오, 내가 그리워 하하 ... 나는 단지 유효성 검사를 위해 열차를 착각했다. 감사. –

+0

기꺼이 도와 드리겠습니다. 이 답변으로 질문이 해결되면 대답의 왼쪽에있는 체크 표시를 클릭하여 동의 표시를하십시오. –