Pytorch函数expand()详解
Pytorch函数 .expand( )
其将单个维度扩大成更大维度,返回一个新的tensor,具体看下例:
import torcha = torch.Tensor([[1], [2], [3],[4]])
# 未使用expand()函数前的a
print('a.size: ', a.size())
print('a: ', a)b = a.expand(4, 2)
# 使用expand()函数后的输出
print('a.size: ', a.size())
print('a: ', a)
print('b.size: ', b.size())
print('b: ', b)
expand()函数使用前后a没有发生变化,输出都是:
a.size: torch.Size([4, 1])
a:
1
2
3
4
[torch.FloatTensor of size 4x1]
b 的输出为:
b.size: torch.Size([4, 2])
b:
1 1
2 2
3 3
4 4
[torch.FloatTensor of size 4x2]
由此得出结论,a通过expand()函数扩展某一维度后自身不会发生变化
a = torch.Tensor([[[[1,2], [2,3], [3,4],[4,5]]]])
b = a.expand(2, 1, 4, 2)
c = a.expand(1, 2, 4, 2)
# 使用expand()函数后的输出
print('a.size: ', a.size())print('b.size: ', b.size())
print('b: ', b)print('c.size: ', c.size())
print('c: ', c)b2 = b.expand(3, 1, 4, 2) # b: torch.Size([2, 1, 4, 2])print('b2.size: ', b2.size())
输出:
a.size: torch.Size([1, 1, 4, 2])
b.size: torch.Size([2, 1, 4, 2])
b:
(0 ,0 ,.,.) =
1 2
2 3
3 4
4 5
(1 ,0 ,.,.) =
1 2
2 3
3 4
4 5
[torch.FloatTensor of size 2x1x4x2]
c.size: torch.Size([1, 2, 4, 2])
c:
(0 ,0 ,.,.) =
1 2
2 3
3 4
4 5
(0 ,1 ,.,.) =
1 2
2 3
3 4
4 5
[torch.FloatTensor of size 1x2x4x2]
b2输出:
Traceback (most recent call last):
File “”, line 1, in
RuntimeError: The expanded size of the tensor (3) must match the existing size (2) at non-singleton dimension 0. at /opt/conda/conda-bld/pytorch_1525796793591/work/torch/lib/TH/generic/THTensor.c:309
由此可见,只要是单维度均可进行扩展,但是若非单维度会报错
Pytorch函数expand()详解相关推荐
- pytorch实战:详解查准率(Precision)、查全率(Recall)与F1
pytorch实战:详解查准率(Precision).查全率(Recall)与F1 1.概述 本文首先介绍了机器学习分类问题的性能指标查准率(Precision).查全率(Recall)与F1度量,阐 ...
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- R语言tidyr包gather()函数实战详解:数据收缩、从宽表到窄表
R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 目录 R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 收缩两列数据
- R语言tidyr包spread()函数实战详解:数据裂变、从窄表到宽表
R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表 目录 R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表
- R语言tidyr包Unite()函数实战详解:多个数据列合并为一列
R语言tidyr包Unite()函数实战详解:多个数据列合并为一列 目录 R语言tidyr包Unite()函数实战详解:多个数据列合并为一列
- R语言tidyr包separate()函数实战详解:一列裂变为多列
R语言tidyr包separate()函数实战详解:一列裂变为多列 目录 R语言tidyr包separate()函数实战详解:一列裂变为多列 一列裂变为两列
- C++中substr()函数用法详解
C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...
- LayoutInflater的inflate函数用法详解
LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...
- python中subplot是什么意思_python matplotlib中的subplot函数使用详解
python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...
最新文章
- 一个免费的css编辑器——Free CSS Toolbox
- 7-9 职工排序题 (20 分)
- 2010年第一届蓝桥杯省赛 —— 第二题
- 先验概率、似然函数与后验概率
- Spring AOP配置
- c语言如何求一个数学表达式的值,浅谈C语言中表达式的求值
- utilities(C/C++)
- 服务器超级电容什么作用,超级电容器基础知识(原理_应用_功能_分类_优缺点)...
- 高频谐振小信号放大器仿真分析
- levelDB源码阅读-skiplist跳表 上
- 九九乘法表的四种打印模式
- 量子计算机技术难,量子计算机是什么工作原理运行的?现在制造还存在什么技术上的难...
- java车机_真·车载版Android来了:车机实现全部功能
- 基础课程11:调试工具
- python实现txt转word
- 不可以色色,色狗柴柴系列表情包,好有趣
- plt.imshow()中cmap参数控制颜色展示
- 【转载】Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- 全屋网络覆盖方案笔记
- 信杂比公式_关于信噪比SNR【转载】