zoukankan      html  css  js  c++  java
  • pytorch学习笔记

    1.class torchvision.transforms.Compose(transforms)

    对PIL.Image进行变换torchvision.transforms.Compose(transforms)就是将多个transform组合起来使用。

    例子:

    import torchvision
    import torch
    train_augmentation = torchvision.transforms.Compose([torchvision.transforms.Resize(256),
                                                        torchvision.transforms.RandomCrop(224),                                                                            
                                                        torchvision.transofrms.RandomHorizontalFlip(),
                                                        torchvision.transforms.ToTensor(),
                                                        torch vision.Normalize([0.485, 0.456, -.406],[0.229, 0.224, 0.225])
                                                        ])

    这里定义了resize、crop、normalize等数据预处理操作,Compose这个类是用来管理各个transform的,可以看到主要的__call__方法就是对输入图像img循环所有的transform操作。

    主要代码在transformas.py脚本中,这里仅介绍常见的data augmentation操作,源码如下:
    from __future__ import division
    import torch
    import math
    import random
    from PIL import Image, ImageOps, ImageEnhance
    try:
        import accimage
    except ImportError:
        accimage = None
    import numpy as np
    import numbers
    import types
    import collections
    import warnings
    
    from . import functional as F
    
    __all__ = ["Compose", "ToTensor", "ToPILImage", "Normalize", "Resize",
    "Scale", "CenterCrop", "Pad", "Lambda", "RandomCrop", 
    "RandomHorizontalFlip", "RandomVerticalFlip", "RandomResizedCrop", 
    "RandomSizedCrop", "FiveCrop", "TenCrop","LinearTransformation", 
    "ColorJitter", "RandomRotation", "Grayscale", "RandomGrayscale"]

    首先是导入必须的模型,这里比较重要的是from . import functional as F,也就是导入了functional.py脚本中具体的data augmentation函数。__all__列表定义了可以从外部import的函数名或类名。

    ToTensor类是实现:Convert a PIL Image or numpy.ndarray to tensor的过程,在PyTorch中常用PIL库来读取图像数据,因此这个方法相当于搭建了PIL Image和Tensor的桥梁。另外要强调的是在做数据归一化之前必须要把PIL Image转成Tensor,而其他resize或crop操作则不需要
    参考博客:
  • 相关阅读:
    连续3年!SpreadJS 纯前端表格控件荣获“中国优秀软件产品”
    终于有一款组件可以全面超越Apache POI
    List<Object> 多条件去重
    xml文档的解析并通过工具类实现java实体类的映射:XML工具-XmlUtil
    soap get/post请求
    map转java对象
    springboot postman 对象里传时间格式问题
    spring boot的多环境部署
    Hibernate 之 @Query查询
    利用maven命令将外部jar包导进maven仓库
  • 原文地址:https://www.cnblogs.com/yuehouse/p/12025254.html
Copyright © 2011-2022 走看看