代码阅读 | torch.sort函数
知識點https://blog.csdn.net/u012495579/article/details/106117511網友講得非常清晰了。
代碼如下:
lengths = [17,17,19,23,7] lengths = torch.Tensor(lengths) a, idx_sort = torch.sort(torch.Tensor(lengths), dim=0, descending=True) print(a) print(idx_sort) print('----------------------------') b, idx_unsort = torch.sort(idx_sort, dim=0) print(b) print(idx_unsort)結果是:
主要工作:分析結果是如何計算所得。
torch.sort函數主要包含三個部分得參數,需要排序的數據、根據的維度(二維數組的話,0表列,1表行)、排序方式(升序or降序)。
還需要注意的是:返回值有兩個:第一個是排序后的數據,第二個是排序后的索引
a, idx_sort = torch.sort(torch.Tensor(lengths), dim=0, descending=True)?
含義:
待排序的數據是:[17,17,19,23,7],按照列排序,降序。
排序后的數據是:23,19,17,17,7 (這個步驟,大部分人都沒有問題)
排序后的索引是如何計算的:先看待排序的數據下標[17-【0】,17-【1】,19-【2】,23-【3】,7-【4】],排序后是[23,19,17,17,7],對應的下標就是:[3,2,0,1,4]
現在理解為啥a的結果和idx_sort的結果是這樣了吧!
接下來看代碼:
b, idx_unsort = torch.sort(idx_sort, dim=0)
含義:
首先看到參數只有待排序的數據和依據,此時是升序還是降序,這就要根據函數原型看了,默認是升序。
其次:尋找待排數據、排序后的數據以及排序后的索引,有思路了就好辦了。
待排序的數據是:[3,2,0,1,4],按照列排序,升序。
排序后的數據是:0,1,2,3,4 (這個步驟,大部分人都沒有問題)
排序后的索引是如何計算的:先看待排序的數據下標[3-【0】,2-【1】,0-【2】,1-【3】,4-【4】],排序后是[0,1,2,3,4],對應的下標就是:[2,3,1,0,4]
?
總結
以上是生活随笔為你收集整理的代码阅读 | torch.sort函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决方案 | python安装wordf
- 下一篇: 解决方案 | office导出为pdf并