2016-07-09 4 views
1

나는 아나콘다/Python2.7/Keras/Theano에 다음과 같은 매우 간단한 신경 네트워크 실행하면 :에 ValueError : 잘못된 인수 '통계'도 최신으로 K.function에 전달 Keras/Theano

import numpy as np 
from keras.models import Sequential 
from keras.layers import Dense, Activation 

# import csv 
csv = 'https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv' 
iris = np.genfromtxt(csv, delimiter = ',', dtype = None) 

# Munge data 
iris = np.delete(iris, 0, 0) # delete header row 
iris[iris[:,4] == 'setosa', 4] = 1 
iris[(iris[:,4] == 'versicolor') | (iris[:,4] == 'virginica'), 4] = 0 
iris = iris.astype(float) 

# split into data and label classes 
data = iris[:,0:4] 
labels = iris[:,4] 
labels = np.array([labels]) 
labels = labels.T 
labels = labels.astype(int) 

# develop NN 
model = Sequential() 
model.add(Dense(1, input_dim = 4)) 
model.add(Activation('softmax')) 
model.compile(optimizer = 'rmsprop', loss = 'binary_crossentropy', metric = ['accuracy']) 

# fit NN 
model.fit(data, labels, nb_epoch = 5, batch_size = 50) 

I 수신을 다음과 같은 오류가 :

File "C:\Users\bAXTER\Anaconda\lib\site-packages\keras\backend\theano_backend.py", line 539, in function 
    raise ValueError(msg) 

ValueError: Invalid argument 'metric' passed to K.function 

나는이 post 보았다,하지만 난 이미 설치된 모든 관련 패키지 Keras 1.0.5 아나콘다에 Theano 0.9.0 (파이썬 2.7)를 사용하고 있습니다. 덧붙여서이 글에서는 "metrics=['accuracy']을 함수 호출에서 model.compile()"으로 제거 할 수 있다고 언급했습니다. 하지만 'theano_backend.py'에서 해당 용어 중 하나를 찾을 수 없습니다. 나는 충분한 평판이 없기 때문에 그 사용자의 대답에 대해 논평 할 수 없었다.

keras가이 오류의 원인이되는 아이디어는 무엇입니까? 나는 이것이 파이썬의 덜 탐험 된 영역이라는 것을 알고 있으므로 어떤 도움을 주시면 감사하겠습니다.

답변

2

매우 당혹 스럽네요. model.compile 명령에서 metrics 대신 metric을 철자했습니다.

+0

저는 이것이 버전 문제라고 생각합니다. 이 내용은 https://en.hsmouc.com/2017/04/01/2017-04-01-regressionbykeras/ 자습서의 철자로 "측정 항목"이 있습니다. – ashley