You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PIL读取的.tif格式图像转换为torch张量?

PyTorch PIL图像转张量的最优实现方案

你可以直接使用torchvision.transforms.ToTensor()完成转换,这是PyTorch官方提供的标准接口,写法更简洁也符合框架通用实践:

from torchvision.transforms import ToTensor
from PIL import Image

img = ToTensor()(Image.open('path/image.tif'))

方案优势

  • 自动完成维度格式适配:会把PIL图像默认的(H, W, C)维度自动调整为PyTorch张量要求的(C, H, W)格式,无需手动转置
  • 自动完成像素值归一化:将输入的[0, 255]整数像素值统一归一化到[0.0, 1.0]的浮点区间,适配绝大多数深度学习模型的输入要求
  • 兼容所有PIL支持的图像格式:包括你用到的.tif格式,单通道、三通道、多通道tif都可以正常转换,无需额外处理

特殊场景替代方案

如果你不需要归一化,需要保留原始[0, 255]的整数像素值,可以用下面的写法,比你当前的写法兼容性更好:

from PIL import Image
import torch
import numpy as np

img = torch.as_tensor(np.array(Image.open('path/image.tif')))
  • 这里用torch.as_tensor替代torch.from_numpy,可以自动处理numpy数组的可写性问题,避免不必要的内存拷贝,性能更优。

内容的提问来源于stack exchange,提问作者Olli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:09:01