2017-03-15 2 views
8

Ich habe gerade Tensorflow und Keras installieren. Und ich habe die einfache Demo wie folgt:Keras für Werkzeug Faltung neuronales Netzwerk

from keras.models import Sequential 
from keras.layers import Dense 
import numpy 
# fix random seed for reproducibility 
seed = 7 
numpy.random.seed(seed) 
# load pima indians dataset 
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",") 
# split into input (X) and output (Y) variables 
X = dataset[:,0:8] 
Y = dataset[:,8] 
# create model 
model = Sequential() 
model.add(Dense(12, input_dim=8, init='uniform', activation='relu')) 
model.add(Dense(8, init='uniform', activation='relu')) 
model.add(Dense(1, init='uniform', activation='sigmoid')) 
# Compile model 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 
# Fit the model 
model.fit(X, Y, nb_epoch=10, batch_size=10) 
# evaluate the model 
scores = model.evaluate(X, Y) 
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100)) 

Und ich habe diese Warnung:

/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py:86: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(12, activation="relu", kernel_initializer="uniform", input_dim=8)` '` call to the Keras 2 API: ' + signature) 
/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py:86: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(8, activation="relu", kernel_initializer="uniform")` '` call to the Keras 2 API: ' + signature) 
/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py:86: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(1, activation="sigmoid", kernel_initializer="uniform")` '` call to the Keras 2 API: ' + signature) 
/usr/local/lib/python2.7/dist-packages/keras/models.py:826: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`. warnings.warn('The `nb_epoch` argument in `fit` ' 

Also, wie kann ich damit umgehen?

+2

Die Warnmeldung sagt buchstäblich, was Sie ändern müssen. –

Antwort

17

Wie Matias in den Kommentaren sagt, das ist ziemlich einfach ... Keras aktualisiert ihre API gestern auf 2.0 Version. Offensichtlich haben Sie diese Version heruntergeladen und die Demo verwendet immer noch die "alte" API. Sie haben Warnungen erstellt, damit die "alte" API noch in der Version 2.0 funktioniert, aber sie wird sich ändern, also verwenden Sie ab jetzt 2.0 API. zu „kernel_initializer“ für alle der Dense() Schichten sowie die „nb_epoch“ auf „Epochen“ in der fit() Funktion

Die Art und Weise Ihren Code API 2.0 anzupassen, ist die „init“ Parameter zu ändern.

from keras.models import Sequential 
from keras.layers import Dense 
import numpy 
# fix random seed for reproducibility 
seed = 7 
numpy.random.seed(seed) 
# load pima indians dataset 
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",") 
# split into input (X) and output (Y) variables 
X = dataset[:,0:8] 
Y = dataset[:,8] 
# create model 
model = Sequential() 
model.add(Dense(12, input_dim=8, kernel_initializer ='uniform', activation='relu')) 
model.add(Dense(8, kernel_initializer ='uniform', activation='relu')) 
model.add(Dense(1, kernel_initializer ='uniform', activation='sigmoid')) 
# Compile model 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 
# Fit the model 
model.fit(X, Y, epochs=10, batch_size=10) 
# evaluate the model 
scores = model.evaluate(X, Y) 
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100)) 

Dies sollte keine Warnungen werfen, es ist die Keras 2.0-Version des Codes.