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()详解相关推荐

  1. pytorch实战:详解查准率(Precision)、查全率(Recall)与F1

    pytorch实战:详解查准率(Precision).查全率(Recall)与F1 1.概述 本文首先介绍了机器学习分类问题的性能指标查准率(Precision).查全率(Recall)与F1度量,阐 ...

  2. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  3. R语言tidyr包gather()函数实战详解:数据收缩、从宽表到窄表

    R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 目录 R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 收缩两列数据

  4. R语言tidyr包spread()函数实战详解:数据裂变、从窄表到宽表

    R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表 目录 R语言tidyr包spread()函数实战详解:数据裂变.从窄表到宽表

  5. R语言tidyr包Unite()函数实战详解:多个数据列合并为一列

    R语言tidyr包Unite()函数实战详解:多个数据列合并为一列 目录 R语言tidyr包Unite()函数实战详解:多个数据列合并为一列

  6. R语言tidyr包separate()函数实战详解:一列裂变为多列

    R语言tidyr包separate()函数实战详解:一列裂变为多列 目录 R语言tidyr包separate()函数实战详解:一列裂变为多列 一列裂变为两列

  7. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  8. LayoutInflater的inflate函数用法详解

    LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...

  9. python中subplot是什么意思_python matplotlib中的subplot函数使用详解

    python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...

最新文章

  1. 一个免费的css编辑器——Free CSS Toolbox
  2. 7-9 职工排序题 (20 分)
  3. 2010年第一届蓝桥杯省赛 —— 第二题
  4. 先验概率、似然函数与后验概率
  5. Spring AOP配置
  6. c语言如何求一个数学表达式的值,浅谈C语言中表达式的求值
  7. utilities(C/C++)
  8. 服务器超级电容什么作用,超级电容器基础知识(原理_应用_功能_分类_优缺点)...
  9. 高频谐振小信号放大器仿真分析
  10. levelDB源码阅读-skiplist跳表 上
  11. 九九乘法表的四种打印模式
  12. 量子计算机技术难,量子计算机是什么工作原理运行的?现在制造还存在什么技术上的难...
  13. java车机_真·车载版Android来了:车机实现全部功能
  14. 基础课程11:调试工具
  15. python实现txt转word
  16. 不可以色色,色狗柴柴系列表情包,好有趣
  17. plt.imshow()中cmap参数控制颜色展示
  18. 【转载】Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
  19. 全屋网络覆盖方案笔记
  20. 信杂比公式_关于信噪比SNR【转载】

热门文章

  1. 聊斋志异 - 善恶篇,诡异录,苍穹斗
  2. 记录一下环状RNA高通量测序数据分析pipeline
  3. 整合经营模式之道(序)——暨“一路一起舞吧”开博之作
  4. 一般论文投稿应该注意哪些要求
  5. 困扰老子好久啊!!tomcat的两个错…
  6. 加入收藏 设为首页 代码
  7. 毕业设计 基于单片机的便携抽湿加湿器
  8. 千兆万兆以太网测试仪
  9. 计算机知识竞赛活动工作总结,知识竞赛活动工作总结
  10. 基于PHP后台的购物商城微信小程序的设计与实现 毕业设计毕设参考