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

这篇文章主要介绍了pytorch torch.expand和torch.repeat的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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]])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...