Я делаю бинарную модель классификации звука Keras на Python3 .7. Я сделал модель классификации звука на MATLAB, однако какой-то определенный слой не установлен на MATLAB (например, GRU). Поэтому я пытаюсь перейти на модель глубокого обучения Keras из модели глубокого обучения MATLAB.
Оригинальный код MATLAB показан ниже:
inputsize=[31,69]
layers = [ ...
sequenceInputLayer(inputsize(1))
bilstmLayer(200,'OutputMode','last')
fullyConnectedLayer(2)
softmaxLayer
classificationLayer
]
options = trainingOptions('adam', ...
'MaxEpochs',30, ...
'MiniBatchSize', 200, ...
'InitialLearnRate', 0.01, ...
'GradientThreshold', 1, ...
'ExecutionEnvironment',"auto",...
'plots','training-progress', ...
'Verbose',false);
Эта модель имеет точность 0,955.
Код Keras, основанный на коде MATLAB, показан ниже:
# traindatasize=(86400,31,69)
inputsize=(31,69)
batchsize=200
epochs=30
model = Sequential()
model.add(Bidirectional(LSTM(200, input_shape=inputsize)))
model.add(Dense(2, activation='softmax'))
model.compile(optimizer=RMSprop(), loss='binary_crossentropy', metrics=['accuracy'])
model.fit(traindata, trainlabel, batch_size=batchsize, epochs=epochs, verbose=1)
Эта модель доходит до точности 0,444
Я не понимаю, каков эффект. Traindata использовал те же данные из STFT и нормализовал перед обучением те модели, используя стандартное отклонение и среднее значение. Пожалуйста, некоторые комментарии.
Python 3.7 на Anaconda
Keras 2.2.4