問題

私はkerasにはかなり新しいです。私は試すための簡単なネットワークを構築しました:

 import numpy as np;

from keras.models import Sequential;
from keras.layers import Dense,Activation;

data= np.genfromtxt("./kerastests/mydata.csv", delimiter=';')
x_target=data[:,29]
x_training=np.delete(data,6,axis=1)
x_training=np.delete(x_training,28,axis=1)

model=Sequential()
model.add(Dense(20,activation='relu', input_dim=x_training.shape[1]))
model.add(Dense(10,activation='relu'))
model.add(Dense(1));

model.compile(optimizer='adam',loss='mean_squared_error',metrics=['accuracy'])
model.fit(x_training, x_target)
 

私のソースデータから、私はあなたが見ることができるように2つの列を削除しました。 1つは文字列形式で日付が付属しているコラムです(その横のデータセットには、月と年の別のコラムがありますので、その列は必要ありません)。もう1つの列は、モデルのターゲットとして使用する列です)。

このモデルを訓練すると、次の出力が得られます。

 32/816 [>.............................] - ETA: 23s - loss: 13541942.0000 - acc: 0.0000e+00
800/816 [============================>.] - ETA: 0s - loss: 11575466.0400 - acc: 0.0000e+00 
816/816 [==============================] - 1s - loss: 11536905.2353 - acc: 0.0000e+00     
Epoch 2/10
 32/816 [>.............................] - ETA: 0s - loss: 6794785.0000 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5381360.4314 - acc: 0.0000e+00     
Epoch 3/10
 32/816 [>.............................] - ETA: 0s - loss: 6235184.0000 - acc: 0.0000e+00
800/816 [============================>.] - ETA: 0s - loss: 5199512.8700 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5192977.4216 - acc: 0.0000e+00     
Epoch 4/10
 32/816 [>.............................] - ETA: 0s - loss: 4680165.5000 - acc: 0.0000e+00
736/816 [==========================>...] - ETA: 0s - loss: 5050110.3043 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5168771.5490 - acc: 0.0000e+00     
Epoch 5/10
 32/816 [>.............................] - ETA: 0s - loss: 5932391.0000 - acc: 0.0000e+00
768/816 [===========================>..] - ETA: 0s - loss: 5198882.9167 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5159585.9020 - acc: 0.0000e+00     
Epoch 6/10
 32/816 [>.............................] - ETA: 0s - loss: 4488318.0000 - acc: 0.0000e+00
768/816 [===========================>..] - ETA: 0s - loss: 5144843.8333 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5151492.1765 - acc: 0.0000e+00     
Epoch 7/10
 32/816 [>.............................] - ETA: 0s - loss: 6920405.0000 - acc: 0.0000e+00
800/816 [============================>.] - ETA: 0s - loss: 5139358.5000 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5169839.2941 - acc: 0.0000e+00     
Epoch 8/10
 32/816 [>.............................] - ETA: 0s - loss: 3973038.7500 - acc: 0.0000e+00
672/816 [=======================>......] - ETA: 0s - loss: 5183285.3690 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5141417.0000 - acc: 0.0000e+00     
Epoch 9/10
 32/816 [>.............................] - ETA: 0s - loss: 4969548.5000 - acc: 0.0000e+00
768/816 [===========================>..] - ETA: 0s - loss: 5126550.1667 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5136524.5098 - acc: 0.0000e+00     
Epoch 10/10
 32/816 [>.............................] - ETA: 0s - loss: 6334703.5000 - acc: 0.0000e+00
768/816 [===========================>..] - ETA: 0s - loss: 5197778.8229 - acc: 0.0000e+00
816/816 [==============================] - 0s - loss: 5141391.2059 - acc: 0.0000e+00    
 

なんでこんなことが起こっているの?私のデータは時限切れのシリーズです。私は時系列の人々のために、Denseニューロンを使用しないことを知っていますが、それは単なるテストです。本当に私がトリックするのは、精度が常に0であることです。そして、他のテストでは、私は損失をしました: "NAN"値になります。

誰もここで助けることができますか?

乾杯。

  ベストアンサー

あなたのモデルは、次の理由から回帰モデルに対応しているようです。

  • 出力レイヤー(および前のレイヤーのrelu)のアクティベーション関数としてlinear(デフォルトのもの)を使用しています。

  • あなたの損失は loss='mean_squared_error' です。

ただし、使用するメトリックmetrics=['accuracy']は分類問題に対応しています。回帰をしたい場合は、metrics=['accuracy']を削除します。つまり、

 model.compile(optimizer='adam',loss='mean_squared_error')
 

回帰と分類のためのkerasメトリックのリスト(から取得)このブログ投稿):

Keras Regression Metrics

•平均二乗エラー:平均_squared_error、MSEまたはmse

•平均絶対エラー:平均_absolute_error、MAE、mai

Mean Absolute Percentage Error:平均_absolute_percentage_error、mape、 マープ

{cosine Proximity:cosine_corrence、cosine

ケラス分類メトリクス

Binary Accuracy:binary_exception、acc

{Categorical Accuracy:Categorical_experiment、acc

Sparse Categorical Accuracy:Sparse_categorical_exception

{top k Categorical Accuracy:top_k_categorical_exception(あなたが必要です k パラメータを指定する)

•スパーストップkカテゴリーの正当性:sparse_top_k_categorical_exception (k パラメータを指定する必要があります)

  同じタグがついた質問を見る

tensorflowneural-networkkeras