验证速度很高,同时火车缓慢增加

时间:2019-01-14 16:41:10

标签: python tensorflow machine-learning keras

我无法理解为什么我的验证精度非常高;约98%。仅在经过5个时间段后,此值;从下面的屏幕截图中可以看到,我的火车精度正在缓慢提高。

5 Epochs Through

我的数据是一个大小合适的np浮点数组,代表9秒的.WAV文件。

这是我的变量浏览器

Variable Explorer

这是我的模型的样子。如您所见,为减少过度拟合(在此之前非常糟糕-99%的训练acc和26%的验证),我添加了60%的退出层;这使我获得了最高的验证准确性。

models = models.Sequential()
models.add(layers.Dense(20,activation = keras.layers.LeakyReLU(alpha=0.3)))
models.add(layers.Dense(4,activation = 'relu'))
models.add(layers.Dropout(.6))
models.add(layers.Dense(6,activation = 'relu'))
models.add(layers.Dense(80,activation = 'relu'))
models.add(layers.Dense(4, activation='softmax'))



models.compile(optimizer ='nadam', 
                loss='categorical_crossentropy',
                metrics=['acc'])

history = models.fit(train_data, train_labels,
                    epochs=5,
                    batch_size= 2000,
                    validation_data=(test_data, test_labels))

即使在重新整理我的数据之后,这种高精度也是如此,如下所示。

data = np.column_stack((X,Y))
np.random.shuffle(data)

train_data = data[0:515,0:396900]
train_labels = data[0:515,396900:396904]

test_data = data[515:585,0:396900]
test_labels = data[515:585,396900:396904]

(修复了数据混排,谢谢)

可以肯定的是,我并不是在抱怨这种高准确性,我只是觉得这是错误或测量错误值的结果/计算错误准确性的keras。

1 个答案:

答案 0 :(得分:1)

我很确定这是关于对数据进行混洗。

请注意,在您的最后一个片段中,您并没有仅对X数组进行混排训练和测试数据(Ydata)。

要训练混排的数据,您应该:

train_data = data[0:515,0]
train_labels = data[0:515,1]

test_data = data[515:586,0]
test_labels = data[515:586,1]