解決 warning 顯示 The linear_assignment function is deprecated in 0.21 and will be removed from 0.23. Use scipy.optimize.linear_sum_assignment instead


 

用以下代碼做實驗

import time
import cv2 as cv
import glob
import argparse
import sys
import numpy as np
import os.path
from collections import deque
from sklearn.utils.linear_assignment_ import linear_assignment

.....
.....
for i in range(100):
    indices = linear_assignment(cost_matrix)

 

 

輸出顯示

DeprecationWarning: The linear_assignment function is deprecated in 0.21 and will be removed from 0.23. Use scipy.optimize.linear_sum_assignment instead.

 

經過查閱相關資料,代碼部分替換為下面形式即可解決


不同之處在於返回格式: linear_assignment() 返回一個 numpy 數組和linear_sum_assignment() 返回 一個 numpy 數組的元組。通過轉換 linear_sum_assignment()輸出為array並轉置它,可以獲得相同的輸出。

import time
import cv2 as cv
import glob
import argparse
import sys
import numpy as np
import os.path
from collections import deque
from scipy.optimize import linear_sum_assignment # 代替上面 linear_assignment

indices = linear_sum_assignment(cost_matrix)
indices = np.asarray(indices)
indices = np.transpose(indices)

 

 

參考資料


 

https://stackoverflow.com/questions/57369848/how-do-i-resolve-use-scipy-optimize-linear-sum-assignment-instead


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM