深度学习框架入门(更新中)

学习记录:👇

关于图像处理

图片有不同的输入格式:

(1)PIL image

(2)tensor image:

        ·单独的tensor image的形状:(C, H, W)。【C:channel数,H:height ,W:width】

        ·一个batch的Tensor images的形状:(N, C, H, W)。【N:batch中图片的数量】

(3)Numpy image:(H,W,C)

torchvision库——transforms(对图片进行处理)

(有两种:torchvision.transforms,torchvision.transforms.v2(后者是升级版))

例:

import torchvision.transforms as transforms

1、torchvision库的torchvision.transforms.Compose()类

使用transforms.Compose(transforms)将多个transforms操作组合起来用

某某某=transforms.Compose([

            一些操作

            ])
例如:
transform_1 = transforms.Compose([
            transforms.RandomResizedCrop(参数),
            transforms.RandomHorizontalFlip(),
            transforms.ToTensor(),
            transforms.Normalize(参数)])

具体的transforms操作有很多种:
(1)transforms.RandomResizedCrop():裁剪图像的随机部分,并将其调整为给定大小

包含的参数:

 ·size:裁剪输出的尺寸。如果尺寸是一个 int 而不是序列(h, w),则会输出一个正方形尺寸(int, int)

·scale:scale=(0.5, 1.0)裁剪随机区域的上下限最少是图片的50%(面积范围的图),最多是原始的整张图

·ratio:图片高宽比范围

·interpolation:缩放图片时使用的插值方法(估计图像中未知像素值)【包括:PIL.Image.NEAREST最近邻插值、PIL.Image.BILINEAR双线性插值、PIL.Image.BICUBIC双三次插值】

(2)transforms.RandomHorizontalFlip():以给定概率随机水平翻转图像,默认值0.5

(3)transforms.ToTensor()

4)transforms.Normalize():用平均值和标准差对张量图像进行归一化处理。此变换不支持 PIL 图像,所以这步上面要进行transforms.ToTensor()操作

·给定 n 个通道的均值:(mean[1],...,mean[n])和标准差:(std[1],...,std[n]),此变换将对输入张量的每个通道进行归一化处理,即输出[通道] = (输入[通道] - 均值[通道]) /标准差[通道] 

(5)transforms.Resize([h, w]):指定PILImage的高宽值

torchvision库——Datasets

1、datasets.ImageFolder

datasets.ImageFolder(root, transform)

·root:路径

·transform: 接收 PIL 图像,进行transform操作,返回操作后的图像

torch.utils.data.random_split(dataset, lengths)

#随手记:
·(python)

 __getitem__ 方法允许对象使用索引(如列表或字典)来访问其元素

 __len__ 方法允许对象使用 len() 函数来获取其长度

class MyList:  
    def __init__(self, data):  
        self.data = data  
  
    def __getitem__(self, index):  
        return self.data[index]  
  
    def __len__(self):  
        return len(self.data)  
  
my_list = MyList([1, 2, 3, 4])  

print(my_list[1])  # 输出: 2
print(len(my_list))  # 输出: 4

·os.path

os.path.join

import os
path = os.path.join('dir1', 'dir2', 'file.txt')  
print(path)  # 'dir1/dir2/file.txt' 或 'dir1\dir2\file.txt'

参考:Page Redirection

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值