<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在跑模型的時候,遇到如下報錯
UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
網上查了一下,發現將 torch.tensor()
改寫成 torch.as_tensor()
就可以避免報錯了。
# 如下寫法報錯 feature = torch.tensor(image, dtype=torch.float32) # 改為 feature = torch.as_tensor(image, dtype=torch.float32)
然後就又仔細研究了下 torch.as_tensor()
和 torch.tensor()
的區別,在此記錄。
new_data = torch.as_tensor(data, dtype=None,device=None)->Tensor
作用:生成一個新的 tensor, 這個新生成的tensor 會根據原資料的實際情況,來決定是進行淺拷貝,還是深拷貝。當然,會優先淺拷貝,淺拷貝會共用記憶體,並共用 autograd 歷史記錄。
情況一:資料型別相同 且 device相同,會進行淺拷貝,共用記憶體
import numpy import torch a = numpy.array([1, 2, 3]) t = torch.as_tensor(a) t[0] = -1 print(a) # [-1 2 3] print(a.dtype) # int64 print(t) # tensor([-1, 2, 3]) print(t.dtype) # torch.int64
import numpy import torch a = torch.tensor([1, 2, 3], device=torch.device('cuda')) t = torch.as_tensor(a) t[0] = -1 print(a) # tensor([-1, 2, 3], device='cuda:0') print(t) # tensor([-1, 2, 3], device='cuda:0')
情況二: 資料型別相同,但是device不同,深拷貝,不再共用記憶體
import numpy import torch import numpy a = numpy.array([1, 2, 3]) t = torch.as_tensor(a, device=torch.device('cuda')) t[0] = -1 print(a) # [1 2 3] print(a.dtype) # int64 print(t) # tensor([-1, 2, 3], device='cuda:0') print(t.dtype) # torch.int64
情況三:device相同,但資料型別不同,深拷貝,不再共用記憶體
import numpy import torch a = numpy.array([1, 2, 3]) t = torch.as_tensor(a, dtype=torch.float32) t[0] = -1 print(a) # [1 2 3] print(a.dtype) # int64 print(t) # tensor([-1., 2., 3.]) print(t.dtype) # torch.float32
torch.tensor()
是深拷貝方式。
torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False)
深拷貝:會拷貝 資料型別 和 device,不會記錄 autograd 歷史 (also known as a “leaf tensor” 葉子tensor)
重點是:
# 原資料型別是:tensor 會發出警告 import numpy import torch a = torch.tensor([1, 2, 3], device=torch.device('cuda')) t = torch.tensor(a) t[0] = -1 print(a) print(t) # 輸出: # tensor([1, 2, 3], device='cuda:0') # tensor([-1, 2, 3], device='cuda:0') # /opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:5: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
# 原資料型別是:list, tuple, NumPy ndarray, scalar, and other types, 沒警告 import torch import numpy a = numpy.array([1, 2, 3]) t = torch.tensor(a) b = [1,2,3] t= torch.tensor(b) c = (1,2,3) t= torch.tensor(c)
結論就是:以後儘量用 torch.as_tensor()
吧
到此這篇關於PyTorch中torch.tensor()和torch.to_tensor()區別的文章就介紹到這了,更多相關torch.tensor()和torch.to_tensor()區別內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45