91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

宜兰市| 教育| 长沙县| 吉安市| 饶平县| 平安县| 兴义市| 微博| 汉川市| 金塔县| 成武县| 耒阳市| 隆子县| 屏山县| 修文县| 巫溪县| 浪卡子县| 梁平县| 新乡县| 土默特左旗| 加查县| 偏关县| 双江| 贞丰县| 蒲江县| 大同市| 石城县| 神木县| 公安县| 乌兰浩特市| 靖安县| 维西| 连南| 定西市| 扬州市| 德安县| 永嘉县| 西宁市| 盈江县| 荥阳市| 张掖市|