Pytorch之Tensor和Numpy之間的轉換的實現(xiàn)方法
為什么要相互轉換:
1. 要對tensor進行操作,需要先啟動一個Session,否則,我們無法對一個tensor比如一個tensor常量重新賦值或是做一些判斷操作,所以如果將它轉化為numpy數組就好處理了。下面一個小程序講述了將tensor轉化為numpy數組,以及又重新還原為tensor:
2. Torch的Tensor和numpy的array會共享他們的存儲空間,修改一個會導致另外的一個也被修改。
學習鏈接:https://github.com/chenyuntc/pytorch-book
特別提醒[注意Tensor大小寫]
- 最重要的區(qū)別
t.Tensor
和t.tensor
:不論輸入的類型是什么,t.tensor()
都會進行數據拷貝,不會共享內存;t.Tensor()
與Numpy共享內存,但當Numpy的數據類型和Tensor的類型不一樣的時候,數據會被復制,不會共享內存。 - 可使用
t.from_numpy()
或者t.detach()
將Numpy轉為Tensor,與原Numpy數據共享內存。
附上實驗證明
常規(guī)轉換:使用t.from_numpy()
將Numpy轉為Tensor,使用torch.numpy()
將Tensor轉為Numpy
需要注意的情況:使用t.Tensor()
進行轉換,發(fā)現(xiàn)Numpy的數據類型和Tensor的類型一致,因此共享內存
需要注意的情況:使用t.Tensor()
進行轉換,發(fā)現(xiàn)Numpy的數據類型和Tensor的類型不一致,因此b與a不共享內存
需要注意的情況:使用t.tensor()
進行轉換,只進行數據拷貝,不會共享內存
到此這篇關于Pytorch之Tensor和Numpy之間的轉換的實現(xiàn)方法的文章就介紹到這了,更多相關Pytorch Tensor和Numpy轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于python編寫監(jiān)控系統(tǒng)各項資源的腳本
這篇文章主要為大家詳細介紹了如何編寫一個python腳本,實現(xiàn)監(jiān)控網絡的流量、CPU使用率、內存使用率和磁盤使用情況,感興趣的小伙伴可以了解下2023-11-11Python 實現(xiàn)opencv所使用的圖片格式與 base64 轉換
今天小編就為大家分享一篇Python 實現(xiàn)opencv所使用的圖片格式與 base64 轉換,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01