错误使用,'Layers' 的值无效。

错误使用 layerGraph (第 48 行)
'Layers' 的值无效。layers 必须为层的数组。

出错 Untitled4 (第 11 行)
lgraph = layerGraph(net);
代码如下


%% 数据类型转化
trainingdate=objectDetectorTrainingData(gTruth);
 
%% 导入网络
% 选择适合识别飞机的网络,这里使用了VGG16网络
net = vgg16;
 
% 替换网络输出层,原本的网络是1000分类,我们需要改为二分类(飞机和非飞机)
% 这里以VGG16为例实现
numClasses = 2;
lgraph = layerGraph(net);
 
newFCLayer = fullyConnectedLayer(numClasses, ...
    'Name','new_fc', ...
    'WeightLearnRateFactor',10, ...
    'BiasLearnRateFactor',10);
lgraph = replaceLayer(lgraph,'fc8',newFCLayer);
newClassLayer = classificationLayer('Name','new_classoutput');
lgraph = replaceLayer(lgraph,'fc8relu',newClassLayer);
 
net = dlnetwork(lgraph);
 
%% 设置训练策略参数并训练网络
options = trainingOptions('sgdm', ...
    'MiniBatchSize', 128, ...
    'InitialLearnRate', 1e-3, ...
    'LearnRateSchedule', 'piecewise', ...
    'LearnRateDropFactor', 0.1, ...
    'LearnRateDropPeriod', 10, ...
    'MaxEpochs',30, ...
    'Verbose', true);
 
%% 训练网络
rcnn = trainRCNNObjectDetector(trainingdate, net, options, ...
    'NegativeOverlapRange', [0 0.3], 'PositiveOverlapRange',[0.5 1]);
 
%% 显示测试结果
% 读取数据
I = imread('C:\Users\田羊\Desktop\飞机\ceishi.jpg');
% 用检测器测试
[bboxes,scores] = detect(rcnn,I);
% 标注测试结果并显示
I = insertObjectAnnotation(I,'rectangle',bboxes,scores);
figure
imshow(I)
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^