当前位置:   article > 正文

pytorch reshape和transpose_pytroch reshape算子

pytroch reshape算子

做数据操作的时候发现计算错误,检查才知道是reshape和transpose混了。这里对两者的对比做个笔记。

代码:

  1. a = torch.rand((3,4))
  2. print(a)
  3. print('transpose',a.transpose(0,1))
  4. print('reshape',a.reshape(4,3))

输出:

  1. tensor([[0.0908, 0.6192, 0.1025, 0.7192],
  2. [0.4392, 0.2334, 0.2123, 0.2559],
  3. [0.5325, 0.2606, 0.4103, 0.6293]])
  4. transpose tensor([[0.0908, 0.4392, 0.5325],
  5. [0.6192, 0.2334, 0.2606],
  6. [0.1025, 0.2123, 0.4103],
  7. [0.7192, 0.2559, 0.6293]])
  8. reshape tensor([[0.0908, 0.6192, 0.1025],
  9. [0.7192, 0.4392, 0.2334],
  10. [0.2123, 0.2559, 0.5325],
  11. [0.2606, 0.4103, 0.6293]])

可以看到transpose是类似于矩阵转置的操作,而reshape则是flatten后再切分成新的数组。

这个区别在深度学习中还是很重要的,或许就因为这种原因使模型表现不好。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/154133
推荐阅读
相关标签
  

闽ICP备14008679号