totensor
时间: 2025-06-21 16:11:19 浏览: 17
### 使用 `ToTensor` 进行数据转换
在 PyTorch 中,`torchvision.transforms.ToTensor()` 是一种常用的图像预处理方法[^1]。该类可以将 PIL Image 或 NumPy 数组形式的图片转换成张量 (tensor),并将其像素值范围从 [0, 255] 归一化到 [0.0, 1.0]。
#### ToTensor 转换过程
当应用 `ToTensor` 变换时:
- 输入图像是 H×W×C 格式的数组或 PIL 图像;
- 输出是一个 C×H×W 的 FloatTensor;
- 对于多通道输入(如 RGB),每个颜色通道都会被独立地归一化[^3]。
```python
from torchvision import transforms
from PIL import Image
transform = transforms.ToTensor()
img = Image.open('example.jpg') # 打开一张测试图片
tensor_img = transform(img) # 将其转化为 tensor 类型
print(tensor_img.shape) # 查看形状变化情况
```
此代码片段展示了如何创建一个简单的 `ToTensor` 变换器实例,并应用于单个图像文件上。通过打印输出可以看到原始尺寸发生了怎样的改变——即由高度 × 宽度 × 颜色通道数转变为颜色通道数 × 高度 × 宽度的形式[^4]。
#### 结合其他变换一起使用
通常情况下,在实际项目里不会单独只用 `ToTensor` 来做全部的工作;而是会与其他多种变换组合起来形成完整的 pipeline。比如先调整大小再转为 tensor 后接着执行标准化等操作[^2]。
```python
data_transforms = transforms.Compose([
transforms.Resize((224, 224)), # 改变分辨率至指定大小
transforms.RandomHorizontalFlip(), # 随机水平翻转
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) # 正则化参数可以根据具体任务微调
])
```
上述例子中定义了一个复合变换序列,它不仅包含了基本的 `ToTensor` 功能还加入了额外的操作来增强模型训练效果或者适应特定应用场景下的需求。
阅读全文
相关推荐

















