Я скачал K-кратный код Matlab перекрестной проверки по этой ссылке http://mccormickml.com/2013/08/01/k-fold-cross-validation-with-matlab-code/
Чтобы выполнить код перекрестной проверки, я должен иметь все свои точки данных в матрице X, где каждая строка представляет собой отдельную точку данных. У меня также должен быть вектор-столбец y, содержащий категорию (или метку класса) для каждой из соответствующих точек данных.
Для этого я использовал следующую команду:
categories = {'HGG','LGG'};
imds = imageDatastore(fullfile(rootFolder,categories),...
'LabelSource','foldernames');
X = imds.Files;
y = imds.Labels;
Где imds
содержит: imds.Files = 13845x1 ячейка
imds.Labels = 13845x1 categorical
imds.AlternateFileSystemRoots = 0x0 cell
imds.ReadSize = 1
imds.ReadFcn = @readDatastoreImage
, но появляется эта ошибка:
Error using trainNetwork (line 150)
Invalid training data. X must be a 4-D array of images, an
ImageDatastore, or a table.
Когда я использую эту команду:
[net,info] = trainNetwork(x_train, y_train ,layers,opts);
Я нашел это Команда для устранения этой ошибки, X должна иметь следующую информацию: [height, width, number_of_channels, number of images]
, поэтому я использую эту команду:
x = [240, 240, 1, 13845];
y = imds.Labels; = 13845x1 categorical
, но появляется эта ошибка:
Index exceeds the number of array elements (1).
Error in categorical/subsref (line 21)
b.codes = a.codes(s.subs{:});
Error in getFoldVectors (line 54)
if (any(y_sorted(catStart : catEnd) ~= categories(i)))
Правильно ли y= imds.Labels; = 13845x1 categorical
или нет ?, и как я могу решить эту ошибку? Может кто-нибудь помочь мне, пожалуйста?