深度学习 CNN:精度低

Deep learning CNN: low accuracy

我正在训练用于二进制时间序列分类的卷积神经网络。两种模型的训练精度非常不同。如果第一次增长,那么第二次增长总是在 40% 左右。也有强烈的“跳跃”。更改过滤器=32/64/128 并且时代没有给出最好的结果(kernel_size = 8)。

self.model = keras.Sequential([            
            Conv1D(64, kernel_size=self.kernel_size, activation='relu', input_shape=(self.frame_length, self.N_Feature)),
            BatchNormalization(),
            MaxPooling1D(),    
            
            Conv1D(128, kernel_size=self.kernel_size, activation='relu'),
            BatchNormalization(),
            MaxPooling1D(),    
            
            Conv1D(256, kernel_size=self.kernel_size, activation='relu'),
            BatchNormalization(),
            MaxPooling1D(),    
            
            Dropout(self.dropout_rate),
            Flatten(),
            Dense(self.N_classes, activation='sigmoid')
        ])        
        self.model.compile(optimizer='sgd',loss='binary_crossentropy',metrics='Accuracy')

some learning outcomes

我非常大胆地猜测(因为您的问题缺少很多信息),您的“self.N_classes”变量是“2”?

BinaryCrossentropy(你的损失)需要它是“1”。因此,标签不是“[0, 1]”和“[1, 0]”,而是“0”和“1”。如果您更改标签,您的损失应该有意义地计算并且您的训练应该有效。