ValueError:即使使用最新的Keras / Theano,无效的参数'metric'也会传递给K.function

时间:2016-07-09 22:21:50

标签: python neural-network anaconda theano keras

当我在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领域,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:3)

非常尴尬。我在metric命令中拼写了metrics而不是model.compile