栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

expand() 函数在pytorch和numpy中的使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

expand() 函数在pytorch和numpy中的使用

Tensor.expand()

tensor.expand()函数可以将维度值包含 1 的Tensor(如:torch.Size([1, n])或者torch.Size([n, 1]))的维度进行扩展。其具体的扩展规则如下:

  1. 只能对维度值包含 1 的张量Tensor进行扩展,无需扩展的维度保持不变或置-1,即:Tensor的size必须满足:torch.Size([1, n]) 或者 torch.Size([n, 1]) 。
  2. 扩展的Tensor不会分配新的内存,只是原来的基础上创建新的视图并返回;

应用实例:

import torch
a = torch.randn(1, 2)
a_exp = a.expand(3, 2)		# 等价于 a.expand(3, -1)

print(a, a.shape)
print(a_exp, a_exp.shape)

tensor([[0.7436, 0.4428]]) torch.Size([1, 2])
tensor([[0.7436, 0.4428],
        [0.7436, 0.4428],
        [0.7436, 0.4428]]) torch.Size([3, 2])
Tensor.expand_as()
a = torch.tensor([[2], [3], [4]])   # (3, 1)
b = torch.tensor([[2,2],[3,3],[5,5]])  # (3, 2)
a = a.expand_as(b)

print(a, a.size())
tensor([[2, 2],
        [3, 3],
        [4, 4]]) torch.Size([3, 2])
numpy.expand_dims()

稍稍扩展一下 numpy.expand_dims, 这个函数主要作用是增加一个维度。
类似 pytorch 中的 torch.unsqueeze()

a = np.array([1,2,3])
print(a.shape)
a = np.expand_dims(a, axis=0)
print(a.shape)

(3,)
(1, 3)

参考文章:
Pytorch中tensor.expand()和tensor.expand_as()函数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935272.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号