Wenn ich den folgenden sehr einfaches neuronales Netzwerk in Anaconda/python2.7/Keras/Theano:Valueerror: Invalid argument 'Metrik' auch mit neuesten Keras/Theano zu K.function geben
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 erhalten der folgende Fehler:
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
schaute ich auf diesen post, aber ich bin schon mit Keras 1.0.5 und 0.9.0 Theano auf Anaconda (Python 2.7) mit allen relevanten Paketen installiert. Außerdem erwähnt der Beitrag, dass ich "metrics=['accuracy']
vom Funktionsaufruf zu model.compile()
entfernen kann". aber ich kann keinen dieser Begriffe in "theano_backend.py" finden. Ich konnte die Antwort des Nutzers nicht kommentieren, da ich nicht genügend Reputation habe.
Irgendwelche Ideen, warum Keras diesen Fehler verursacht? Ich weiß, dass dies ein weniger erforschter Bereich von Python ist, also würde jede Hilfe geschätzt werden.
Ich denke, das ist ein Versions-Problem. Dies: https://de.hsmouc.com/2017/04/01/2017-04-01-regressionbykeras/ tutorial hat "metric" als Rechtschreibung. – ashley