我在Keras中训练了一个回归问题的神经网络.

like this:

1000/199873 [..............................] - 预计到达时间:5秒-损失:0.0057-附件:0.0000e+00

2000/199873 [..............................] - 预计到达时间:4s-损失:0.0058-附件:0.0000e+00

3000/199873 [..............................] - 预计到达时间:3s-损失:0.0057-附件:0.0000e+00

4000/199873 [..............................] - 预计到达时间:3秒-损失:0.0060-附件:

198000/199873 [============================>.] - ETA: 0s - loss: 0.0055 - acc: 0.0000e+00

199000/199873 [============================>.] - ETA: 0s - loss: 0.0055 - acc: 0.0000e+00

199873/199873[======================================================================================================-4s-损耗:0.0055-附件:0.0000e+00-损耗:0.0180-附件:0.0000e+00

Epoch 50/50

但如果输出是二维或更高的,则精度没有问题.

我的模型如下:`

input_dim = 14
batch_size = 1000
nb_epoch = 50
lrelu = LeakyReLU(alpha = 0.1)

model = Sequential()
model.add(Dense(126, input_dim=input_dim)) #Dense(output_dim(also hidden wight), input_dim = input_dim)
model.add(lrelu) #Activation

model.add(Dense(252))
model.add(lrelu)
model.add(Dense(1))
model.add(Activation('linear'))

model.compile(loss= 'mean_squared_error', optimizer='Adam', metrics=['accuracy'])
model.summary()
history = model.fit(X_train_1, y_train_1[:,0:1],
                    batch_size=batch_size,
                    nb_epoch=nb_epoch,
                    verbose=1,
                    validation_split=0.2)

loss = history.history.get('loss')
acc = history.history.get('acc')
val_loss = history.history.get('val_loss')
val_acc = history.history.get('val_acc')

'''saving model'''
from keras.models import load_model
model.save('XXXXX')
del model

'''loading model'''
model = load_model('XXXXX')

'''prediction'''
pred = model.predict(X_train_1, batch_size, verbose=1)
ans = [np.argmax(r) for r in y_train_1[:,0:1]]

推荐答案

问题是,最终的模型输出具有线性激活,使模型成为回归,而不是分类问题.当模型根据类别对数据进行正确分类时,定义了"准确度",但由于回归问题的连续性,"准确度"实际上没有定义.

要么放弃精度作为衡量标准,转而使用完全回归,要么使用loss='categorical_crossentropy'activation='softmax'将问题转化为分类问题.

这是一个与你类似的问题:Link

更多信息请参见:StackExchange

Python-3.x相关问答推荐

IPython似乎已安装但无法运行

Django内置注销视图`不允许的方法(GET):/USERS/LOGOUT/`

Django将任何查询显示为html表格

新行是pandas数据帧中旧行的组合

错误:无法为 pyconcorde 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

找到在指定列的另一个分组中存在重复的行.

Pandas 转换为日期时间

在特定条件下从 DataFrame 中提取特定组

无法理解此递归函数的分配和环境用法

Python 列表求和所有出现的保留顺序

类不继承时 super() 的用途

Python:如何在Pandas 的 .agg 函数中使用 value_counts()?

如何在Pandas 中按条件计算分组?

将字典列表展平为数据框列

如何编写可 Select 充当常规函数的 asyncio 协程?

在计算之前删除包含某些值的组合

Python 3.4 多处理队列比 Pipe 快,出乎意料

在 Ipython 中使用 Pylint (Jupyter-Notebook)

Python:如何在 Windows 资源管理器中打开文件夹(Python 3.6.2、Windows 10)

TypeError:无法将系列转换为