transpose在numpy和torch中的不同

numpy和torch中transpose的功能不同

numpy.ndarray.transpose的官方文档
torch.transpose的官方文档

numpy.transpose需指定一个新的axis的顺序

import numpy as np
array_ = np.arange(24).reshape(1,2,3,4)
print(array_)
# [[[[ 0  1  2  3]
#    [ 4  5  6  7]
#    [ 8  9 10 11]]
# 
#   [[12 13 14 15]
#    [16 17 18 19]
#    [20 21 22 23]]]]

array_t = array_.transpose([0,3,2,1])
print(array_t)
# [[[[ 0 12]
#    [ 4 16]
#    [ 8 20]]
# 
#   [[ 1 13]
#    [ 5 17]
#    [ 9 21]]
# 
#   [[ 2 14]
#    [ 6 18]
#    [10 22]]
# 
#   [[ 3 15]
#    [ 7 19]
#    [11 23]]]]

array_tt = array_.transpose([0,3,2,1])
print(array_tt)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下代码将 PyTorch 的 Tensor 转换为 NumPy 数组: ``` import numpy as np import torch tensor = torch.randn((3, 4)) # 创建一个大小为 3x4 的张量 numpy_array = tensor.numpy() # 将张量转换为 NumPy 数组 ``` 要将 NumPy 数组转换为 PyTorch 的 Tensor,可以使用以下代码: ``` import numpy as np import torch numpy_array = np.random.rand(3, 4) # 创建一个大小为 3x4 的 NumPy 数组 tensor = torch.from_numpy(numpy_array) # 将 NumPy 数组转换为张量 ``` 要将 PyTorch 的 Tensor 转换为 OpenCV 的图像,可以使用以下代码: ``` import cv2 import torch tensor = torch.randn((3, 256, 256)) # 创建一个大小为 3x256x256 的张量 image = tensor.permute(1, 2, 0).numpy() # 将张量转换为 NumPy 数组,并将通道顺序从 CxHxW 转换为 HxWxC cv2.imshow("Image", image) # 显示图像 cv2.waitKey() # 等待关闭窗口 ``` 要将 OpenCV 的图像转换为 PyTorch 的 Tensor,可以使用以下代码: ``` import cv2 import torch image = cv2.imread("image.png") # 读取图像文件 tensor = torch.from_numpy(image.transpose((2, 0, 1))) # 将图像转换为张量,并将通道顺序从 HxWxC 转换为 CxHxW ``` 要将 PyTorch 的 Tensor 转换为 Pillow 的图像,可以使用以下代码: ``` from PIL import Image import torch tensor = torch.randn((3, 256, 256)) # 创建一个大小为 3x256x256 的张量 image = tensor.permute(1, 2, 0).numpy() # 将张量转换为 NumPy 数组,并将通道顺序从 CxHxW 转换为 HxWxC pil_image = Image.fromarray((image * 255).astype('uint8')) # 将 NumPy 数组转换为 PIL 图像 pil_image.show() # 显示图像 ``` 要将 Pillow 的图像转换为 PyTorch 的 Tensor,可以使用以下代码: ``` from PIL import Image import numpy as np import torch pil_image = Image.open("image.png") # 打开图像文件 numpy_array = np.array(pil_image) / 255.0 # 将 PIL 图像转换为 NumPy 数组,并将像素值转换为 0 到 1 之间的浮点数 tensor = torch.from_numpy(numpy_array.transpose((2, 0, 1))) # 将 NumPy 数组转换为张量,并将通道顺序从 HxWxC 转换为 CxHxW ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值