当我在Anaconda / Python2.7 / 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)
我收到以下错误:
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,但我已经在Anaconda(Python 2.7)上使用了Keras 1.0.5和Theano 0.9.0,并安装了所有相关的软件包。此外,该帖子还提到我可以“从函数调用metrics=['accuracy']
中删除model.compile()
”。但我找不到'theano_backend.py'中的任何一个术语。我无法对该用户的回答发表评论,因为我没有足够的声誉。
有关为什么keras导致此错误的任何想法?我知道这是一个不太探索的python领域,所以任何帮助都会受到赞赏。
答案 0 :(得分:3)
非常尴尬。我在metric
命令中拼写了metrics
而不是model.compile
。