Кажется, у меня проблема с классификацией с помощью GoogLeNet.
Я использую данные вибрации (матрица 420 на 10002), отобранные с частотой 10 кГц.CWT данных вибрации были взяты и были получены скалограммы.Эти скелограммы использовались для обучения GoogLeNet для классификации среди шести выходных категорий: «ДЕСЯТЬ», «ДВАДЦАТЬ», «ТРИДЦАТЬ», «СРОЧНО», «ПЯТЬДЕСЯТ» и «ШЕСТЬДЕСЯТ».
Но я получаювывод «ДВАДЦАТЬ» независимо от входных данных.
Я использую cwtfilterbank для построения диаграмм.Для GoogLeNet я использовал только условия по умолчанию,
80% для проверки и 20% для проверки
MiniBatchSize = 15
MaxEpochs = от 50 до 200
InitialLearnRate = 1e-4
ValidationFrequency = 10
Я нашел оптимальное количество MaxEpoch как число с наивысшей точностью проверки.
Я прикрепил фрагменты моегокод и график моего сетевого уровня,
% Scalogram
Fs = 10000;
filb = cwtfilterbank('SignalLength',10000,'SamplingFrequency',Fs,...
'VoicesPerOctave',12);
sg = vibhistory.data(1,1:10000);
[cfs,freq] = wt(filb,sg);
t = (0:9999)/Fs;
figure;
pcolor(t,freq,abs(cfs));
% GoogLeNet
rng default
[imgTr,imgVal] = splitEachLabel(allImg,0.8,'randomized');
net = googlenet;
lgraph = layerGraph(net);
options = trainingOptions('sgdm',...
'MiniBatchSize',15,...
'MaxEpochs',120,...
'InitialLearnRate',1e-4,...
'ValidationData',imgVal,...
'ValidationFrequency',10,...
'Verbose',1,...
'ExecutionEnvironment','cpu',...
'Plots','training-progress');
rng default
mygn = trainNetwork(imgTr,lgraph,options);
Я использую пример кода, приведенный на веб-сайте Mathworks для задачи классификации ЭКГ ( CWTGoogLeNet).Хотя он отлично работает для их данных, он не работает для моих.
Я много раз искал похожую проблему в Интернете и также реализовал ответы,
- Я попытался изменитьначальная скорость обучения
- Перегруппировка тренировочной партии
- Используются меньшие тренировочные партии (около 20 изображений)
- Нормализованы входные изображения
Но яя получаю только тот же вывод.
Что я здесь не так делаю?Я должен организовать учебный набор и выходные метки определенным образом или мне нужно заменить некоторые слои в сети?В чем еще может быть проблема здесь?Любая помощь будет отличной.Благодарю.