训练图像大小为224×224×3但输入层预计图像大小为224×224×1。

115(30天)
我想训练一个D。L网络(googlenet)与图像大小的“224×224×1”(他们是全色)。我按照步骤中描述“mathworks”描述波纹管但我得到这个错误:" 训练图像大小为224×224×3但输入层预计图像大小为224×224×1 ”。所以我应该做的为了训练我的网络?多谢。
下面是代码。
清晰的所有
关闭所有
% faceDatasetPath = fullfile (' c: ', ' FaceDataset ');
imd = imageDatastore (“D: \测试”,
“IncludeSubfolders”,真的,“LabelSource”,“foldernames”);
%显示一些样本数据集
图;
烫= randperm(213年,20);
i = 1:20
次要情节(4、5、我);
imshow (imds.Files{烫发(i)});
标题(imds.Labels(烫发(i)));
结束
numTrainFiles = 6;
[imdsTrain, imdsValidation] = splitEachLabel (imd, 0.7,“随机”);
[no_of_TrainImages ~] =大小(imdsTrain.Files);
[no_of_TestImages ~] =大小(imdsValidation.Files);
层= [
imageInputLayer ([224 224 1])
convolution2dLayer (3 8“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling2dLayer (2“步”,2)
convolution2dLayer(3, 16岁,“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling2dLayer (2“步”,2)
32岁的convolution2dLayer (3“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling2dLayer (2“步”,2)
convolution2dLayer (64,“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling2dLayer (2“步”,2)
fullyConnectedLayer (7)
softmaxLayer
classificationLayer];
选择= trainingOptions (“个”,
“InitialLearnRate”,0.01,
“MaxEpochs”10
“洗牌”,“every-epoch”,
“ValidationData”imdsValidation,
“ValidationFrequency”10
“详细”假的,
“阴谋”,“训练进步”);
网= trainNetwork (imdsTrain层,选项);
YPred =分类(净,imdsValidation);
YValidation = imdsValidation.Labels;
精度= (YPred = = YValidation) /元素个数之和(YValidation)

答案(3)

马特·J
马特·J 2023年3月29日
imageInputLayer ([224 224 3])
17日评论

登录置评。


图像分析
图像分析 2023年3月29日
你应该写一个小脚本,将你所有的图片转换成灰度和保存在不同的文件夹,这样你就不会覆盖你的原件。或者改变你的输入层接受彩色图像,马特给你们。

沃尔特·罗伯森
沃尔特·罗伯森 2023年3月30日
使用一个augmentedImageDataStore大小224 224 1和‘ColorPreprocessing’,‘rgb2gray’。这将自动调整任何图像切成合适的大小和将转换为灰度。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!