Pytorch/TensorFlow/Numpy常用函数汇总

一、Pytorch

1.枚举:enumerate

基本语法:enumerate(iterable,start=0)
返回结果:enumerate is useful for obtaining an indexed list:
(0, seq[0]), (1, seq[1]), (2, seq[2]), …

2.维度交换:permute

基本语法:tensor.permute(arr,dims)
举例:

arr=torch.randint(10,size=(2,3,4))
print(arr)
arr=torch.permute(arr,dims=(0,2,1))
print(arr.size())
print(arr)
tensor([[[7, 1, 7, 9],
         [6, 4, 4, 2],
         [9, 0, 7, 7]],

        [[0, 5, 3, 1],
         [3, 0, 6, 0],
         [1, 3, 4, 5]]])
torch.Size([2, 4, 3])
tensor([[[7, 6, 9],
         [1, 4, 0],
         [7, 4, 7],
         [9, 2, 7]],

        [[0, 3, 1],
         [5, 0, 3],
         [3, 6, 4],
         [1, 0, 5]]])

3.尺寸形状:size/shape

基本语法:
(1)tensor.size()
(2)tensor.shape
举例:

arr=torch.ones(size=(2,2,3,3))
print(arr.size())  # torch.Size([2, 2, 3, 3])
print(arr.size(0))  # 2
print(arr.shape)  # torch.Size([2, 2, 3, 3])

4.数据填充:full/fill_

1)创建指定形状的张量,并使用特定值填充该张量
基本语法:torch.full(size, fill_value)
举例:

arr=torch.full(size=(2,3),fill_value=2.0)

生成用2.0填充,形状为2*3的Tensor:

tensor([[2., 2., 2.],
        [2., 2., 2.]])

2)使用特定值填充指定向量
基本语法:tensor.fill_(value)
举例:

arr=torch.full(size=(2,3),fill_value=2.0)
print(arr)
print('--------------')
arr.fill_(value=3.0)
print(arr)
tensor([[2., 2., 2.],
        [2., 2., 2.]])
--------------
tensor([[3., 3., 3.],
        [3., 3., 3.]])

5.阻断反向梯度传播:detach

基本语法:tensor.detach()
举例:

arr=torch.full(size=(2,3),fill_value=2.0,requires_grad=True)
print(arr.requires_grad)
arr2=arr.detach()
print(arr2.requires_grad)
True
False

6.形状调整:view

基本语法:tensor.view(shape)
举例:

value=torch.arange(6)
print(value)
arr=value.view((-1,2))
print(arr)
tensor([0, 1, 2, 3, 4, 5])
tensor([[0, 1],
        [2, 3],
        [4, 5]])

7.维度扩张/减少:unsqueeze/squeeze

基本语法:
(1)torch.unsqueeze(tensor,dim)
(2)torch.squeeze(tensor,dim)
举例:

arr=torch.ones(size=(5,6,3))
print(arr.size())
arr=torch.unsqueeze(arr,dim=0)
print(arr.size())
arr=torch.squeeze(arr,dim=0)
print(arr.size())
torch.Size([5, 6, 3])
torch.Size([1, 5, 6, 3])
torch.Size([5, 6, 3])

二、Numpy

1.维度交换:transpose

基本语法:arr.transpose(axis)
举例:

arr=np.ones(shape=(2,3,4))
print(arr.transpose(2,1,0).shape) # 其中数字对应坐标轴,如2表示4、1表示3、0表示2
(4, 3, 2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NorthSmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值