深度学习 -- Tensor属性及torch梯度计算
文章目录
- [深度学习 -- Tensor属性及torch梯度计算](#深度学习 -- Tensor属性及torch梯度计算)
- 前言
- 一、Tensor数据转换
-
- [1.1 张量转Numpy](#1.1 张量转Numpy)
- [1.2 Numpy转张量](#1.2 Numpy转张量)
- 二,Tensor常见操作
-
- 2.1获取元素值
- [2.2 元素值运算](#2.2 元素值运算)
前言
一、Tensor数据转换
1.1 张量转Numpy
python
import torch
import numpy as np
def test01():
t1=torch.tensor([[1,2,3],[4,5,6]])
print(t1)
#浅拷贝,共享内存
#调用numpy()方法可以把Tensor转换为Numpy,此时内存是共享的。
n1=t1.numpy()
print(n1)
#深拷贝,重新创造副本存储
#使用copy()方法可以避免内存共享
n2=t1.numpy().copy()
print(n2)
python
tensor([[1, 2, 3],
[4, 5, 6]])
[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]
1.2 Numpy转张量
python
def test02():
n1=np.array([1,2,3,4,5,6])
#from_numpy方法转Tensor默认是内存共享的
t1=torch.from_numpy(n1)
print(t1)
#使用传统的torch.tensor()则内存是不共享的~
t2=torch.tensor(n1)
print(t2)
if __name__ == '__main__':
# test01()
test02()
python
tensor([1, 2, 3, 4, 5, 6], dtype=torch.int32)
tensor([1, 2, 3, 4, 5, 6], dtype=torch.int32)
二,Tensor常见操作
2.1获取元素值
我们可以把单个元素tensor转换为Python数值,这是非常常用的操作
python
import torch
#获取元素值
def test01():
t1=torch.tensor(18)
print(t1.item())
t2=torch.tensor([[18]])
print(t2.item())
python
18
18
2.2 元素值运算
常见的加减乘除次方取反开方等各种操作,带有_的方法则会替换原始值。