2017-12-16 11 views
-1

学校プロジェクトでは、kerasフレームワークを使用してデータを予測しようとしていますが、予測データを取得しようとすると 'nan'python - Kerasで予測しようとするときにnanを返す

ソースコード:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=5) 

# create model 
model = Sequential() 
model.add(Dense(950, input_shape=(425,), activation='relu')) 
model.add(Dense(425, activation='relu')) 
model.add(Dense(200, activation='relu')) 
model.add(Dense(50, activation='relu')) 
model.add(Dense(1, activation='sigmoid')) 

# Compile model 
sgd = optimizers.SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) 
model.compile(loss='mean_squared_error', optimizer='sgd') 

# Fit the model 
model.fit(X_train, y_train, epochs=20, batch_size=1, verbose=1) 

#evaluate the model 
y_pred = model.predict(X_test) 

score = model.evaluate(X_test, y_test,verbose=1) 
print(score) 

# calculate predictions 
predictions = model.predict(X_pred) 

データ:

X_trainとX_test 5000行(サンプルのNBER)* 425列(次元数)の(パンダ)データフレームです。

y_trainとのように見えるy_test:

array([ 1.17899644, 1.46080518, 0.9662137 , ..., 2.40157461, 
     0.53870386, 1.3192718 ]) 

あなたはそれで私を助けることができますか?

ありがとうございました!

+0

SGD学習率を0.01に下げてみる – desertnaut

答えて

0

通常、これは何かが無限に収束することを意味します。 @desertnautがコメントに指摘しているように、学習率を下げることは役に立ちます。

しかし、問題の根源は入力データです。これらの425のデータポイントは何を意味しますか?彼らは、さまざまなソース、異なる機能、異なるパラメータからですか?アウトライナーを見つけたり、データを正規化することは役に立ちます。

コードは正しく表示されます。

関連する問題