pytorch中的数据增强
时间: 2023-09-09 20:08:24 浏览: 116
人工智能-项目实践-数据增强-pytorch实现MaxViT,可以在ImageNet或自己的数据集上训练,支持apex混合
在 PyTorch 中,可以使用 `torchvision.transforms` 模块来进行数据增强。以下是一些常见的数据增强操作:
1. 随机裁剪(RandomCrop):随机裁剪图像,以增加数据的多样性。示例代码:
```
transform = transforms.Compose([
transforms.RandomCrop(size=224),
transforms.ToTensor(),
])
```
2. 随机翻转(RandomHorizontalFlip):随机对图像进行水平翻转,以增加数据的多样性。示例代码:
```
transform = transforms.Compose([
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
])
```
3. 随机旋转(RandomRotation):随机旋转图像,以增加数据的多样性。示例代码:
```
transform = transforms.Compose([
transforms.RandomRotation(degrees=45),
transforms.ToTensor(),
])
```
4. 随机亮度调整(RandomAdjustBrightness):随机调整图像亮度,以增加数据的多样性。示例代码:
```
transform = transforms.Compose([
transforms.ColorJitter(brightness=0.4),
transforms.ToTensor(),
])
```
5. 随机色彩调整(RandomAdjustColor):随机调整图像颜色,以增加数据的多样性。示例代码:
```
transform = transforms.Compose([
transforms.ColorJitter(hue=0.5),
transforms.ToTensor(),
])
```
6. 随机噪声(RandomNoise):在图像中添加随机噪声,以模拟真实场景中的噪声影响。示例代码:
```
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Lambda(lambda x: x + torch.randn_like(x) * 0.1),
])
```
可以将这些操作组合使用,以生成更多的训练数据。示例代码:
```
transform = transforms.Compose([
transforms.RandomCrop(size=224),
transforms.RandomHorizontalFlip(),
transforms.ColorJitter(brightness=0.4, contrast=0.4, saturation=0.4, hue=0.4),
transforms.ToTensor(),
transforms.Lambda(lambda x: x + torch.randn_like(x) * 0.1),
])
```
阅读全文