2012-04-25 2 views
-2

Использование нейронной сети занимает больше времени, чем обучение. Я делаю что-то ужасно неправильно? 2 минуты для использования против 14 секунд для тренировки.Как ускорить работу нейронной сети в Matlab?

load building_dataset % 4208 examples 

inputs = buildingInputs; 
targets = buildingTargets; 

% Create a Fitting Network 
hiddenLayerSize = 10; 
net = fitnet(hiddenLayerSize); 

% Setup Division of Data for Training, Validation, Testing 
net.divideParam.trainRatio = 70/100; 
net.divideParam.valRatio = 15/100; 
net.divideParam.testRatio = 15/100; 

% Train the Network 
tic 
[net,tr] = train(net,inputs,targets); 
training_time = toc % ~= 14 seconds 

% use the neural network 
time = 0; 
for i = 1:4208 
    test_input = buildingInputs(:,i); 
    tic 
    test_output = net(test_input); 
    time = time + toc; 
end 

time % ~= 117 seconds 
average_time = time/4208 % ~= 0.028 seconds 

ответ

1

Вы должны ввести в векторный объем вход. Заменить цикл с этим:

test_input = buildingInputs(:,:); 
    tic 
    test_output = net(test_input); 
    time = time + toc; 

выход будет матрица результатов

Смежные вопросы