мы можем извлечь особенности слоев fc8 из Alexnet - PullRequest
0 голосов
/ 26 февраля 2019

Я новичок в области глубокого изучения. Я использую код, указанный в ссылке ниже, для извлечения функций из Alexnet.

`
unzip('MerchData.zip');
images = imageDatastore('MerchData',...
    'IncludeSubfolders',true,...
    'LabelSource','foldernames');

[trainingImages,testImages] = splitEachLabel(images,0.7,'randomized');


numTrainImages = numel(trainingImages.Labels);
idx = randperm(numTrainImages,16);
figure
for i = 1:16
    subplot(4,4,i)
    I = readimage(trainingImages,idx(i));
    imshow(I)
end

%% Load Pretrained Network

net = alexnet;
net.Layers



%% Extract Image Features

layer = 'fc7';
trainingFeatures = activations(net,trainingImages,layer);
testFeatures = activations(net,testImages,layer);

    %%
    % Extract the class labels from the training and test data.
    trainingLabels = trainingImages.Labels;
    testLabels = testImages.Labels;

    %% Fit Image Classifier

    classifier = fitcecoc(trainingFeatures,trainingLabels);

    %% Classify Test Images
   predictedLabels = predict(classifier,testFeatures);

   % Calculate the classification accuracy on the test set. Accuracy is the
    % fraction of labels that the network predicts correctly.
    accuracy = mean(predictedLabels == testLabels)

Я использую слой FC8 вместо fc7 в приведенном выше коде и выводимполучил образцы * 1000 данных.Я использовал их как объекты для классификации и получил такие результаты, как точность и т. Д.

Еще один момент заключается в том, что слой 'fc8' в AlexNet является классификационным слоем, который нельзя использовать для извлечения признаков.

, которыйКонцепция верна. Можете ли вы указать, какой тип данных является выборкой * 1000, если они не являются функциями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...