Index must be a positive integer less than or equal to the number of test sets.
1 次查看(过去 30 天)
显示 更早的评论
Hi
i'm trying to create 10-fold cross validation for my CNN. To create the 10 batches I'm using a for loop, but it's giving this error again and again.
'Index must be a positive integer less than or equal to the number of test sets.'
Possibly how I can change the loop to initialize batches.?
selectBatch=cell(1,10);
for k=1:10
%%Prep Data
% 10 kfold crossvalidation indicies
c = cvpartition(204,'kfold',10);
testInd = test(c,selectBatch(k));
trainInd = ~testInd;
epochsTarget = zeros(204,1);
epochsTarget(103:end)=1;
epochsTarget= categorical(epochsTarget);
...............
end
3 个评论
Image Analyst
2019-12-11
The error message says your line of code throwing the error is
testIndices = test(cv.Impl,varargin{:});
not
testInd = test(c,selectBatch(k));
When you set a breakpoint on line 229 of your program, what are the values of cv.Impl and varargin{:}? Why are you sending in varargin anyway???
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!