训练时我的模型的Keras准确度始终为0

Not*_*bad 18 neural-network keras tensorflow

我是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)
Run Code Online (Sandbox Code Playgroud)

从我的源数据中我已经删除了2列,如您所见.一个是以字符串格式出现日期的列(在它旁边的数据集中,我有一个列用于另一个月,另一个用于一年,所以我不需要该列)而另一列是我用作的列模型的目标).

当我训练这个模型时,我得到了这个输出:

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    
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我的数据是定时系列.我知道,对于定时系列,人们不会使用密集神经元,但它只是一个测试.真正让我感到沮丧的是精确度始终为0.而对于其他测试,我甚至都失败了:达到"NAN"值.

有人可以在这帮吗?

干杯.

Mir*_*ber 37

由于以下原因,您的模型似乎对应于回归模型:

  • 您正在使用linear(默认值)作为输出图层(以及relu之前的图层)中的激活函数.

  • 你的损失是loss='mean_squared_error'.

但是,您使用的度量标准metrics=['accuracy']对应于分类问题.如果要进行回归,请删除metrics=['accuracy'].也就是说,使用

model.compile(optimizer='adam',loss='mean_squared_error')
Run Code Online (Sandbox Code Playgroud)

以下是回归和分类的keras指标列表(摘自此博客文章):

Keras回归指标

•均方误差:mean_squared_error,MSE或mse

•平均绝对误差:mean_absolute_error,MAE,mae

•平均绝对百分比误差:mean_absolute_percentage_error,MAPE,mape

•余弦接近:余弦接近,余弦

Keras分类指标

•二进制精度:binary_accuracy,acc

•分类准确度:categorical_accuracy,acc

•稀疏分类准确度:sparse_categorical_accuracy

•Top k分类准确度:top_k_categorical_accuracy(要求您指定ak参数)

•稀疏前k个分类准确度:sparse_top_k_categorical_accuracy(需要指定ak参数)


归档时间:

查看次数:

13712 次

最近记录:

6 年,1 月 前