En utilisant la segmentation sémantique, je veux séparer l'image satellite en deux classes: water
et land
. J'ai ce problème:Erreur CUDA - Segmentation sémantique
Une erreur inattendue s'est produite lors de l'exécution de CUDA. L'erreur CUDA a été: CUDA_ERROR_LAUNCH_FAILED
Voici mon code:
clear;clc;close all
dataDir = fullfile('C:\Users\firat\Desktop\TEZ\Uygulama\Semantic
Segmentation\data');
imDir = fullfile(dataDir,'image');
pxDir = fullfile(dataDir,'imagePixelLabels');
imds = imageDatastore(imDir);
I = readimage(imds,1);
figure
imshow(I)
% imageLabeler(imDir);
classNames = ["Water" "Land"];
pixelLabelID = [1 2];
pxds = pixelLabelDatastore(pxDir,classNames,pixelLabelID);
C = readimage(pxds,1);
B = labeloverlay(I,C);
figure
imshow(B)
buildingMask = C == 'Water';
figure
imshowpair(I, buildingMask,'montage')
% Create a Semantic Segmentation Network
numFilters = 64;
filterSize = 3;
numClasses = 2;
layers = [
imageInputLayer([1024 1024 3])
convolution2dLayer(filterSize,numFilters,'Padding',1)
reluLayer()
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(filterSize,numFilters,'Padding',1)
reluLayer()
transposedConv2dLayer(4,numFilters,'Stride',2,'Cropping',1);
convolution2dLayer(1,numClasses);
softmaxLayer()
pixelClassificationLayer()
]
opts = trainingOptions('sgdm', ...
'InitialLearnRate', 1e-3, ...
'MaxEpochs', 100, ...
'MiniBatchSize', 64);
trainingData = pixelLabelImageSource(imds,pxds);
net = trainNetwork(trainingData,layers,opts);
testImage = imread('C:\Users\firat\Desktop\TEZ\Uygulama\Semantic
Segmentation\test\test3.tif');
C = semanticseg(testImage,net);
B = labeloverlay(testImage,C);
figure
imshow(B)
Comment puis-je résoudre ce problème?