matlab - 训练网络时如何解决“Incorrectly defined MiniBatchable Datastore”错误
问题描述
我正在尝试使用卷积神经网络(使用 MATLAB 的 Deep Network Designer 设计)从图像数据集中识别花朵(对于机器学习来说非常新,没有上过课程,只是在玩弄东西)。我已将图像和标签存储在名为 auimds 的增强数据存储中,但是当我运行 trainNetwork 时,出现以下错误:
使用 trainNetwork 时出错(第 150 行)错误定义的 MiniBatchable 数据存储。C:\Program Files\MATLAB\R2018b\toolbox\matlab\datatypes@table\table.m 第 261 行的读取方法出错:参数数量错误。
培训师错误(第 2 行)
net = trainNetwork(auimds,lgraph_1,options);
这是产生错误的代码:
options = trainingOptions('sgdm');
net = trainNetwork(auimds,lgraph_1,options);
这是创建 auimds 的代码的相关部分。“paths”是图像路径列表,“labels”是标签列表,“folders”是包含图像的文件夹名称列表。图像根据其包含文件夹的名称被赋予标签:
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);
解决方案
对于遇到此问题的任何人,我通过将标签设置为分类来解决它。
imds = imageDatastore(paths,'Labels', categorical(labels));
推荐阅读
- mongodb - Projecting a field in MongoDB based of the value of another field
- django - 如何通过 django 模板直接访问 django 消息的实例?
- charts - 链接多个图表中的数据 Highcharts
- c# - Xamarin Forms 活动指示器未显示
- android-studio - java.io.ioexception:无法运行程序“arp”:错误=13,权限被拒绝
- python - 如何使用 python pandas 对拆分文本进行分组并计算其计数?
- python - 在 Python 中拆分字符串,多次出现 split 关键字
- php - 通过 findMany 选择列并在 Laravel 的 Eloquent 中保持关系
- go - {{template "name" pipeline}} 是什么意思
- ant - 在 ANT 中使用开头删除文件夹