中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Numpy與Pytorch互轉時需要注意什么問題

發布時間:2022-02-25 10:08:30 來源:億速云 閱讀:181 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Numpy與Pytorch互轉時需要注意什么問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Numpy與Pytorch互轉時需要注意什么問題”這篇文章吧。

1.1、numpy ——> torch ??

使用 torch.from_numpy() 轉換,需要注意,兩者共享內存。例子如下:

import torch
import numpy as np

a = np.array([1,2,3])
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print('轉換后a', a)
print('轉換后b', b)

# 顯示

轉換后a [2 3 4]
轉換后b tensor([2, 3, 4], dtype=torch.int32)

1.2、torch——> numpy ??

使用 .numpy() 轉換,同樣,兩者共享內存。例子如下:

import torch
import numpy as np

a = torch.zeros((2, 3), dtype=torch.float)
c = a.numpy()
np.add(c, 1, out=c)
print('a:', a)
print('c:', c)

# 結果

a: tensor([[1., 1., 1.],
           [1., 1., 1.]])
c: [[1. 1. 1.]
  [1. 1. 1.]]

需要注意的是,如果將程序中的 np.add(c, 1, out=c) 改成 c = c + 1 會發現兩者貌似不共享內存了,其實不然,原因是后者相當于改變了 c 的存儲地址。可以使用 id(c) 發現c的內存位置變了。

補充:pytorch中tensor數據和numpy數據轉換中注意的一個問題

在pytorch中,把numpy.array數據轉換到張量tensor數據的常用函數是torch.from_numpy(array)或者torch.Tensor(array),第一種函數更常用。

下面通過代碼看一下區別:

import numpy as np
import torch

a=np.arange(6,dtype=int).reshape(2,3)
b=torch.from_numpy(a)
c=torch.Tensor(a)

a[0][0]=10
print(a,'
',b,'
',c)
[[10  1  2]
 [ 3  4  5]] 
 tensor([[10,  1,  2],
        [ 3,  4,  5]], dtype=torch.int32) 
 tensor([[0., 1., 2.],
        [3., 4., 5.]])

c[0][0]=10
print(a,'
',b,'
',c)
[[10  1  2]
 [ 3  4  5]] 
 tensor([[10,  1,  2],
        [ 3,  4,  5]], dtype=torch.int32) 
 tensor([[10.,  1.,  2.],
        [ 3.,  4.,  5.]])

print(b.type())
torch.IntTensor
print(c.type())
torch.FloatTensor

可以看出修改數組a的元素值,張量b的元素值也改變了,但是張量c卻不變。修改張量c的元素值,數組a和張量b的元素值都不變。

這說明torch.from_numpy(array)是做數組的淺拷貝,torch.Tensor(array)是做數組的深拷貝。

以上是“Numpy與Pytorch互轉時需要注意什么問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武强县| 宣武区| 郴州市| 嘉善县| 武陟县| 五莲县| 太仓市| 景谷| 建始县| 开化县| 平顺县| 从江县| 渑池县| 镇宁| 西华县| 兰坪| 读书| 高邮市| 临朐县| 大连市| 鄄城县| 襄樊市| 秭归县| 三门峡市| 嘉兴市| 盐山县| 乌兰浩特市| 双辽市| 长岭县| 开化县| 衢州市| 卓尼县| 高青县| 明星| 汨罗市| 望江县| 甘泉县| 天门市| 额尔古纳市| 新和县| 丹江口市|