低损耗和非常低的精度

时间:2017-06-27 01:39:15

标签: python machine-learning neural-network deep-learning keras

我正在训练一个深度学习模型并且得到一个非常低的准确度,但也是低损失,这是两个反向相关的。这种极低精度的原因是什么?如何阻止它呢?

模型应检测视频场景中的异常事件

我用来构建模型的研究论文链接

https://arxiv.org/abs/1604.04574

enter image description here

模型架构 enter image description here

这是我的代码:

model = Sequential()

model.add(TimeDistributed(Convolution2D(512, 11, 11 ,activation='relu'  ,  border_mode='valid', subsample = (4,4))
                      , input_shape=(10,231, 231, 1)))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2), strides=None, border_mode='valid')))
model.add(TimeDistributed(Convolution2D(256,5, 5,activation='relu'  , border_mode='same')))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2), strides=None, border_mode='valid')))
model.add(TimeDistributed(Convolution2D(128,3,3,activation='relu'  , border_mode='same'))),
model.add(TimeDistributed(Conv2DTranspose(128, 3,3,border_mode='same')))
model.add(TimeDistributed(UpSampling2D(size=(2, 2, ))))
model.add(TimeDistributed(Conv2DTranspose(256, 3,3,border_mode='same')))
model.add(TimeDistributed(UpSampling2D(size=(2, 2, ))))
model.add(TimeDistributed(Conv2DTranspose(512,5,5,border_mode='same')))
model.add(TimeDistributed(Conv2DTranspose(1, kernel_size=(11,11),strides=(4,4))))

1 个答案:

答案 0 :(得分:4)

问题在于,您在此处解决的任务更多的是回归任务而不是分类任务。计算accuracy时 - 如果两个float数字相等,则会正确标记示例,即使您拥有非常好的模型,这也是非常罕见的。因此,我不会对准确性进行太多考虑,并尝试计算,例如R2得分。