2017-09-09 7 views
2

Ich lerne immer noch neuronale Netze und ehrlich gesagt Python. Hier ist eine grundlegende NN I in keras trainiert:Keras Sequential Neural Network

from keras.models import Sequential 
from keras.layers import Dense 
import numpy 
# fix random seed for reproducibility 
numpy.random.seed(7) 

# load pima indians dataset 
dataset = numpy.loadtxt("Final_Data.csv", delimiter=",") 
# split into input (X) and output (Y) variables 
X = dataset[:,0:4] 
Y = dataset[:,4] 

# create model 
model = Sequential() 
model.add(Dense(3, input_dim=4, activation='sigmoid')) 
model.add(Dense(1, activation='sigmoid')) 

# Compile model 
model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['accuracy']) 


# Fit the model 
model.fit(X, Y, epochs=100, batch_size=400) 

# evaluate the model 
scores = model.evaluate(X, Y) 
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100)) 

Wenn ich möchte, dass meine eigenen 4 Eingänge jetzt geben, um zu sehen, was die neuronalen Netzausgänge, was wird der Befehl aussehen? Ich denke, es ist der model.predict Befehl ist, aber wenn ich es 4 Eingänge in den Klammern geben:

model.predict(0.72804878,0.784146341,0.792682927,0.801219512) 

ich zurück:

TypeError: predict() takes at most 4 arguments (5 given) 

Nun ich vermute ich total bin mit dem Befehl falsch vorhersagen , Irgendwelche Vorschläge?

Antwort

4

Von keras' Dokumentation:

vorhersagen (self, x, batch_size = 32, verbose = 0)

Deshalb predict 4 Parameter erwartet.

Der Parameter x muss korrekt angegeben werden.

In Ihrem Fall muss x ein numpy Array von Form sein (1, 4), das ist die Anzahl der Beispiele und die Größe jedes Beispiels (die Größe des Feature-Vektors).

Versuchen Sie folgendes:

x = np.array([[0.72804878,0.784146341,0.792682927,0.801219512]]) 
model.predict(x) 
+0

Vielen Dank Julio, dass mein Problem gelöst! – Felix

+2

@Felix, wenn Ihnen diese Antwort tatsächlich hilft, sollten Sie sie akzeptieren, indem Sie auf das Häkchen unter dem Abwärtspfeil klicken. – DJK

Verwandte Themen