我正在使用光谱图在IEMOCAP中运行情绪分类模型。
我有4个情感班和大约8900个样本。
我的模型如下:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(100,150,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(4))
model.add(Activation('softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
图像加载器如下:
for i in tqdm(range(train.shape[0])):
try:
img = image.load_img(train['wav_file'][i],target_size=(100,150,3))
img = image.img_to_array(img)
img = img/255
train_image.append(img)
except:
print(train['id'][i])
X = np.array(train_image)
y = np.array(train.drop(['id', 'emotion'],axis=1))
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42, test_size=0.2)
我得到25%的准确度,并且由于我所有的结果都被归为1类,即我什么都学不到。如果有人可以指导如何改善结果。
使用librosa以16k Hz采样率提取频谱图。
答案 0 :(得分:0)
您可以尝试的命题:
img = img/255
尝试使用数据均值和方差进行归一化,即使其零均值单位方差。 (数据-data_mean)/ data_std。batch_normalization
层。class_weights
会在训练期间relu
,而要使用tanh
。尝试这些特权,让我们看看它们如何影响模型的性能。