训练网络时如何解决“错误定义的MiniBatchable数据存储区”错误

时间:2018-12-26 19:08:05

标签: matlab deep-learning

我正在尝试使用卷积神经网络(由MATLAB的Deep Network Designer设计)从图像数据集中识别花朵(对于机器学习来说这是很新的东西,还没有参加过课程,只是在玩弄东西)。我已经将图像和标签存储在名为auimds的增强型数据存储中,但是当我运行trainNetwork时,出现以下错误:

  

使用trainNetwork时出错(第150行)   MiniBatchable数据存储库定义不正确。第261行的C:\ Program Files \ MATLAB \ R2018b \ toolbox \ matlab \ datatypes @ table \ table.m的读取方法错误:参数数目错误。

     

培训师错误(第2行)   net = trainNetwork(auimds,lgraph_1,options);

这是产生错误的代码:

options = trainingOptions('sgdm');
net = trainNetwork(auimds,lgraph_1,options);

这是创建auimds的代码的相关部分。 “路径”是图像路径的列表,“标签”是标签的列表,“文件夹”是包含图像的文件夹名称的列表。根据图像的包含文件夹名称为其指定标签:

counter = 1;
for i=1:length(paths)
    files = dir(fullfile(paths(i),'*.jpg'));
    for j=1:length(files)
        labels(counter) = folders(i).name;
        counter = counter + 1;
    end
end
imds = imageDatastore(paths,'Labels',labels);
auimds = augmentedImageDatastore([200,200],imds);

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的任何人,我都通过将标签设置为分类来解决了该问题。

imds = imageDatastore(paths,'Labels', categorical(labels));