2017-06-27 68 views
2

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

模型应该在视频场景检测异常事件

我用来建立模型

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)))) 
+0

也许你的模型是错误的。 Plz给出更多细节。 – danche

+0

我会在问题描述中发布代码。 –

+0

你应该描述你的目标。但是从你的代码中,我认为你显然误解了'TimeDistributed'层。 – danche

回答

2

问题出在这样一个事实,即您在这里解决的任务比分类任务更多的是回归任务。当计算出accuracy时 - 如果两个float数字相等,则示例将被正确标记,即使您拥有非常好的模型,该数字也极为罕见。所以我不会对精度有很大的影响,并尝试计算例如改为R2得分。

+0

感谢您的反馈。我将从模型中删除准确性度量。 –

+0

而且 - 我的回答正确吗? –

相关问题