Есть ли в MATLAB функция классификации мультикласса для реализации на GPU?
У меня есть задача классификации мультикласса, и я пытался использовать 'trainSoftmaxLayer' в Matlab, но это версия реализации ЦП, и она медленная. Поэтому я попытался прочитать документацию по варианту графического процессора, например "trainSoftmaxLayer (" useGPU "," yes ")", в традиционной нейронной сети, но никаких связанных с этим вариантов нет.
1 ответ
Наконец, проблема решена путем взлома исходного кода trainSoftmaxLayer.m, который предоставляется MATLAB. Мы можем написать наш собственный слой Softmax с поддержкой графического процессора, например:
function [net] = trainClassifier(x, t, use_gpu, showWindow)
net = network;
% define topology
net.numInputs = 1;
net.numLayers = 1;
net.biasConnect = 1;
net.inputConnect(1, 1) = 1;
net.outputConnect = 1;
% set values for labels
net.name = 'Softmax Classifier with GPU Option';
net.layers{1}.name = 'Softmax Layer';
% define transfer function
net.layers{1}.transferFcn = 'softmax';
% set parameters
net.performFcn = 'crossentropy';
net.trainFcn = 'trainscg';
net.trainParam.epochs = 1000;
net.trainParam.showWindow = showWindow;
net.divideFcn = 'dividetrain';
if use_gpu == 1
net = train(net, x, full(t), 'useGPU', 'yes');
else
net = train(net, x, full(t));
end
end