首页 > 解决方案 > Matlab:“错误使用 randperm K 必须小于或等于 N。” 即使 K <= N?

问题描述

dataFolderTrain = fullfile(PATH);

imdsTrain = imageDatastore(dataFolderTrain, ...
    'IncludeSubfolders',true, ...
    'LabelSource','foldernames');


idxs = randperm(numel(imdsTrain.Files),8);


batchSize = 10;
[pairImage1,pairImage2,pairLabel] = getSiameseBatch(imdsTrain,batchSize);

我正在尝试实现我自己的连体网络。完整的错误是:

Error in SiameseTrainMine>getSimilarPair (line 357)
    pairIdxChoice = randperm(numel(idxs),2);

Error in SiameseTrainMine>getSiameseBatch (line 334)
            [pairIdx1,pairIdx2,pairLabels(i)] = getSimilarPair(imds.Labels);

Error in SiameseTrainMine (line 22)
[pairImage1,pairImage2,pairLabel] = getSiameseBatch(imdsTrain,batchSize);

但是,如果我"randperm(numel(idxs),2)"在控制台中输入它可以正常工作并"numel(idxs)"返回 8

标签: matlabmachine-learningrandomcomputer-visionsiamese-network

解决方案


推荐阅读