フィルターのクリア

Convolutional Neural Networks and GPU GTX960m

2 ビュー (過去 30 日間)
Ishtiaq Bercha
Ishtiaq Bercha 2018 年 5 月 1 日
コメント済み: Helena Cuesta 2018 年 6 月 10 日
Hello,
I have a question on GPU performance improvement. I am using GTX 960m GPU and have a 3 layer CNN. I am getting the gpu out of memory error down to a mini batch size of 4. The GPU has a 2 GB RAM and 8 GB shared memory (although I am not sure how that benefits) on a 16GB ram alienware laptop. What are your recommendations. I am using medical images that are 512 x 512 x 3 in size. I am thinking about reducing the image size but are there any other ways I could get rid of the error? Thanks ---Ish Here is my code, btw.: clc clear all % Train Network for Image Classification %Load the data as an ImageDatastore object. digitDatasetPath = fullfile('C:','Users','ihbercha', ... 'Desktop','Machine Learning','Proj_F','Img_Data'); imds = imageDatastore(digitDatasetPath, ... 'IncludeSubfolders',true, ... 'LabelSource','foldernames'); % The training set has 150 % images and the testing set has the remaining images from each %label % (260 x 2 total images) . numTrainingFiles =150; [imdsTrain,imdsTest] = splitEachLabel(imds,numTrainingFiles,'randomize'); % Define the convolutional neural network architecture. layers = [ ... imageInputLayer([512 512 3]) convolution2dLayer(3,8,'Padding',1) reluLayer maxPooling2dLayer(3,'Stride',3) convolution2dLayer(3,16,'Padding',1) reluLayer maxPooling2dLayer(3,'Stride',3) convolution2dLayer(3,32,'Padding',1) reluLayer maxPooling2dLayer(3,'Stride',3) fullyConnectedLayer(2) softmaxLayer classificationLayer]; %% % Set the options to the default settings for the stochastic gradient descent % with momentum. Set the maximum number of epochs at 20, and start the training % with an initial learning rate of 0.01. options = trainingOptions('sgdm', ... 'MaxEpochs',12,... 'InitialLearnRate',1e-2, ... 'Verbose',0, ... 'Plots','training-progress','MiniBatchSize',4, 'ExecutionEnvironment','gpu'); % Train the network. net = trainNetwork(imdsTrain,layers,options); % Run the trained network on the test set, which was not used to train the % network, and predict the image labels (digits). YPred = classify(net,imdsTest); YTest = imdsTest.Labels; cf = confusionmat(YTest, YPred) % Calculate the accuracy. Accuracy is the ratio of the number of true labels % in the test data matching the classifications from classify, to the number % of images in the test data. accuracy = sum(YPred == YTest)/numel(YTest)
  1 件のコメント
Helena Cuesta
Helena Cuesta 2018 年 6 月 10 日
Hello Ishtiaq, Did you find a solution? I am having the same exactly problem as you

サインインしてコメントする。

回答 (1 件)

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH 2018 年 5 月 1 日
I recommend that you change the size of the images, since it is not necessary to have a very large size, the convolutional neural networks work well with small images. Another option is to remove layers of "MaxPooling2dLayer" however you will not get as many benefits as resizing your images

カテゴリ

Help Center および File ExchangeImage Data Workflows についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by