pytorch torch.expand和torch.repeat的区别详解

yipeiwu_com6年前Python基础

1.torch.expand

函数返回张量在某一个维度扩展之后的张量,就是将张量广播到新形状。函数对返回的张量不会分配新内存,即在原始张量上返回只读视图,返回的张量内存是不连续的。类似于numpy中的broadcast_to函数的作用。如果希望张量内存连续,可以调用contiguous函数。

例子:

import torch

x = torch.tensor([1, 2, 3, 4])
xnew = x.expand(2, 4)
print(xnew)

输出:

tensor([[1, 2, 3, 4],
        [1, 2, 3, 4]])

2.torch.repeat

torch.repeat用法类似np.tile,就是将原矩阵横向、纵向地复制。与torch.expand不同的是torch.repeat返回的张量在内存中是连续的。

例子1:

将张量横向的复制

import torch

x = torch.tensor([1, 2, 3])
xnew = x.repeat(1,3)
print(xnew)

输出:

tensor([[1, 2, 3, 1, 2, 3, 1, 2, 3]])

例子2:

将张量纵向的复制

import torch

x = torch.tensor([1, 2, 3])
xnew = x.repeat(3,1)
print(xnew)

输出:

tensor([[1, 2, 3],
        [1, 2, 3],
        [1, 2, 3]])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python Tkinter的图片刷新实例

调用python自带的GUI制作库 一开始想用Tkinter制作GUI的,网上说是python自带的,结果输入: import tkinter 后,显示: _ImportErr...

Django实现分页显示效果

Django中提供了一个类Paginator专门用来管理和处理分页数据,所以我们在使用之前先导入好相应的类,,另外这里我们也导入了待会会用到的处理异常的两个类 EmptyPage和Pag...

python原类、类的创建过程与方法详解

今天为大家介绍一下python中与class 相关的知识…… 获取对象的类名 python是一门面向对象的语言,对于一切接对象的python来说,咱们有必要深入的学习与了解一...

python取余运算符知识点详解

python取余运算符是什么? python取余运算符是%,即表示取模,返回除法的余数。 假设变量: a=10,b=20: 那么b % a 输出结果 0 注: Python语言支持以下类...

python模块导入的方法

模块在python编程中的地位举足轻重,熟练运用模块可以大大减少代码量,以最少的代码实现复杂的功能。 下面介绍一下在python编程中如何导入模块: (1)import 模块名:直接导入...