2017-09-09 23 views
2

私はまだニューラルネットを学習しており、率直にもPythonもそうです。ここで私はkerasに訓練された基本的なNNです:Kerasシーケンシャルニューラルネットワーク

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)) 

私が何をニューラルネットの出力見て、今の私自身の4つの入力を与えたい場合は、何が次のようなコマンドになりますか?私はそれがmodel.predictコマンドだと思うが、私は括弧内にそれを4つの入力を与えるとき:

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

私は戻って取得:

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

は、今私は、私は完全に間違ってコマンドを予測する使用しています推測しています、 助言がありますか? keras'ドキュメントから

答えて

4

は(自己、X、BATCH_SIZE = 32、冗長= 0)

を予測predict 4つのパラメータを期待している理由です。

xパラメータは、正しく指定する必要があります。

あなたのケースでは、xは、例の数である形のnumpy配列(1,4)と各例のサイズ(特徴ベクトルサイズ)である必要があります。

はこれを試してみてください:

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

はあなたに私の問題を解決しフリオを、ありがとうございました! – Felix

+2

@Felix、この回答が本当に助けになる場合は、下矢印の矢印のすぐ下にあるチェックマークをクリックして受け入れてください。 – DJK