k=3000
UnqLab = unique(TrainingLabels)
n = length(UnqLab)
count=hist(TrainingLabels,UnqLab);
num = 1;
for i = 1:n
fprintf('\n %i',i)
nn = count(i)
for j = 1:nn
NTrainingFeatures(num,:) = TrainingFeatures(num,ranking(i,1:k))
num = num +1;
end
end
ここでTrainingLabelsのサイズは21,000 * 1で、ソート順に257個のラベルが含まれています。例えば、001,001,001,001,001,001 ..... 002,002,002 ....... 257,257。このMATLABコードの計算時間を短縮できますか?
トレーニングフィーチャーは、値が21,000 * 4096のものがあります。
ランクのサイズは257×4096です。 ランキングには、ランク(たとえば、3076,456,765,4000,87,5、.....)が含まれています。これは、最初の行がどのように見えるかです。これは、TrainingFeaturesの3076年のすべての最初のラベルの入力が第1位になったことを意味します。
このコードでは計算量が多すぎます(日単位)。少し時間がかかるようにすることができますか? MatlabまたはPythonのコードが動作します。
あなたが役に立ったと答えた場合は、その回答を受け入れることをお勧めしますか? – Mozglubov
新しいここに..それはまたオプションであることを知らなかった。 – AAA
心配する必要はなく、誰の検索でも問題が解決した場合に質問に答えたことを示すのに役立ちます。スタックオーバーフローへようこそ! – Mozglubov