- Data Similarity: Since you mentioned that data from both samples are quite similar, this can make it difficult for the model to learn the underlying patterns from the data.
- Small Data Size: Due to the small data size, you can try augmentation using ‘imageDataAugmenter’ to generate more variety.
- Learning Rate: Instead of using a fixed learning rate throughout the training process, experiment with schedulers with different drop factors using ‘trainingOptions’.
- Varying and Using Different Regularization Techniques: Vary the L2 regularization parameter and add dropout using ‘dropoutLayer’.
The training and validation accuracy stuck in the value of 74% in Resnet 50
7 ビュー (過去 30 日間)
古いコメントを表示
I'm new to the world of Deep Learning and I'm attempting to classify sequences of proteins into two classes using scalogram images [class1=192, class2=171] I've implemented Transfer Learning with ResNet 50 as my model architecture.the accuracy in The training and validation stuck in 73-78 %.Anyone can explain to me what happen because I confused
The sample data : [class1]:
The sample data : [class2]:
as you see the pictures in both groups look very similar
The code:
[imdsTrain,imdsVal]= splitEachLabel(imds,0.7,"Randomized");
aug= imageDataAugmenter("RandYReflection",true,"RandXReflection",true)
augTrain = augmentedImageDatastore([224,224],imdsTrain,"DataAugmentation",aug);
augVal = augmentedImageDatastore([224,224],imdsVal);
options =trainingOptions("sgdm",...
"InitialLearnRate",3e-4,...
"MaxEpochs",100,...
"Plots","training-progress",...
"Shuffle","every-epoch",...
"ValidationData",augVal,...
"ValidationFrequency",1,...
"MiniBatchSize",128,...
"L2Regularization",1e-4)
net = resnet50;
lgraph = layerGraph(net);
fclayer = lgraph.Layers(end-2);
newFclayer = fullyConnectedLayer(2,"Name","NewFc",'BiasL2Factor',10,"WeightL2Factor",10);
lgraph = replaceLayer(lgraph,fclayer.Name,newFclayer);
classlayer = lgraph.Layers(end);
newClassLayer = classificationLayer("Name","newClassLayer");
lgraph= replaceLayer(lgraph,classlayer.Name,newClassLayer);
net = trainNetwork(augTrain,lgraph,options);
The Training process:
0 件のコメント
回答 (1 件)
Shantanu Dixit
2024 年 8 月 5 日
Hi Moetez,
It seems that the model’s accuracy is stuck in a particular range. Although there’s no definitive answer to pinpoint the issue, the following could be potential workarounds or issues to consider:
Refer to the below MathWorks documentation for more information regarding the above functions.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Recognition, Object Detection, and Semantic Segmentation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!