【PytorchBasics】Tensor

本文介绍了PyTorch中的Tensor概念及其作用,包括与Numpy的相似性和在硬件加速器上的使用。内容涵盖Tensor的初始化、运算,如torch.stack和torch.cat的用法,以及Tensor与Numpy之间的桥接。通过示例解析了不同维度下的堆叠和拼接操作,并讨论了矩阵运算和单元素Tensor的处理。
摘要由CSDN通过智能技术生成

什么是 Tensor ?有什么作用?

刚开始接触深度学习框架是从tensorflow开始的,1.x时代真不适合人类,各种api频繁更替,混乱,文档零碎。作为初学者当时最头疼的有两个概念,一个是 graph flow,另一个就是 tensor。后者直到使用 pytorch 后才逐渐搞清楚。

其实,Tensor 与 Numpy ndarray 类似都能作为 array 和 matrix 使用。在 pytorch 中经常使用 tensor 存储 model input、output、parameters 等。另外,tensor 还有几个特殊技能非常值得关注:

  1. Tensor 可在硬件加速器上使用(如 gpu、tpu)
  2. Tensor 和 Numpy array 可以共享内存,避免数据来回拷贝的开销(Bridge with Numpy)
  3. Tensor 针对自动微分(automatic diffferentiation)优化过

初始化 Tensor

熟悉 tensor 的各种初始化方法有助于提升编程效率。

# directly from data
data = [[1, 2], [3, 4]]
x_data = torch.tensor(data)
# from ndarray
np_array = np.array(data)
x_np = torch.from_numpy(np_array)
# from tensor
x_ones = torch.ones_like(x_data)
x_rand = torch.rand_like(x_data, dtype=torch.float)
# with random or constant values
shape = (2,3,)
rand_tensor = torch.rand(shape)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值