• 4:张量操作


     1:view reshape合并维度

     【注】:合并维度。若:x=torch.randn(4,4)。x.view(-1,8)其中的-1为自动计算剩余维度的大小即为2。x.view(-1)其中的-1表示拉直张量。

    2:unsqueeze()插入维度/squeeze()删除维度

     【注】当参数为正数是在前面插入,为负数时在后面插入。当一个tensor为4个维度时,可插入范围为[-5,5):

    如果需要在最后一个维度之后插入一个维度可以用unqueeze(4)也可以用unqueeze(-1);

    如果需要在最前面插入一个维度可以用unqueeze(0)也可以用unqueeze(-5).

    [注]unqueeze(5)会报错。

     

     【注】当不给参数(维度的索引)时,删除所有size为1的维度。

    【注】只能删除size为1的维度

    3:expand/repeat维度扩展

     [注]维度扩展只能扩展size为1的维度,当expand()中某一维度的参数为-1时表明该维度不进行扩展,主要用于某一维度的size需要计算才能得到,故可以用-1表示该维度不进行扩展。

     [注]不推荐使用repeat会增加使用的内存

    4:t()/transpose()/permute()维度交换

     [注]在维度变化之后(转置),会导致数据不连续,故需要用contiguous()将数据连续起来。

    view()展开时应该根据合并之前的维度size展开

     【注】permute()函数的参数为原来维度的索引,可以一次实现多次维度交换,由于交换之后被打乱故也需要用contiguous()连续起来。

     5:打平层(网络层):Flatten()该层是自定义的一个网络层,pytorch中没有提供实现的类

     【注】pytorch中未提供这个打平,需要自己定义。以上我已经定义好,大家可以在后面网络构建时使用。

  • 相关阅读:
    Java的synchronized的同步代码块和同步方法的区别
    关于java字节码框架ASM的学习
    说说cglib动态代理
    Java虚拟机-JVM各种参数配置大全详细
    Permanent Space 和 Heap Space
    OOM三种情况
    Java性能调优(一):调优的流程和程序性能分析
    数学之路-python计算实战(17)-机器视觉-滤波去噪(中值滤波)
    使用 Pascal 脚本编写网页, PWP 项目
    android 4.0主线程訪问网络问题
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/14989797.html
Copyright © 2020-2023  润新知