torchvision 笔记:ToTensor()

1 ToTensor

shape(H, W, C)numpy.ndarrayimg转为shape(C, H, W)tensor

在一定条件下,将每一个数值归一化到[0,1],归一化方法比较简单,直接除以255即可。(一定条件后面会说明)

1.1 Ndarray

只有Ndarray是np.uint8 类型的时候,才会归一化

1.1.1 np.uint8 类型

看得出来确实归一化了

import torchvision.transforms as transforms
import numpy as np

a=np.array([[100,200],
                [400,500],
                [700,800]],dtype=np.uint8)

a=a.reshape(3,2,1)
a.shape
#(3, 2, 1)


t=transforms.ToTensor()
ta=t(a)
print(a)
'''
[[[100]
  [200]]

 [[144]
  [244]]

 [[188]
'''

print(ta)
'''
tensor([[[0.3922, 0.7843],
         [0.5647, 0.9569],
         [0.7373, 0.1255]]])
'''

print(ta.shape)
#torch.Size([1, 3, 2])

1.1.2 非np.uint8 类型

没有归一化

import torchvision.transforms as transforms
import numpy as np

a=np.array([[100,200],
                [400,500],
                [700,800]],dtype=np.uint8)

a=a.reshape(3,2,1)
a.shape,a.dtype
((3, 2, 1), dtype('int32'))


t=transforms.ToTensor()
ta=t(a)
print(a)
'''
[[[100]
  [200]]

 [[144]
  [244]]

 [[188]
'''

print(ta)
'''
tensor([[[100, 200],
         [400, 500],
         [700, 800]]], dtype=torch.int32)
'''

print(ta.shape)
#torch.Size([1, 3, 2])

1.2 图片

以DeepFasion数据集里面的一张图片为例:

from PIL import Image
from torchvision import transforms, utils
a=Image.open(b+'img/00000.jpg')
a

 

y=transforms.ToTensor()
a=y(a)
a
'''
tensor([[[0.9255, 0.9255, 0.9255,  ..., 0.9176, 0.9176, 0.9176],
         [0.9255, 0.9255, 0.9255,  ..., 0.9176, 0.9176, 0.9176],
         [0.9255, 0.9255, 0.9255,  ..., 0.9176, 0.9176, 0.9176],
         ...,
         [0.7882, 0.7882, 0.7882,  ..., 0.7922, 0.7922, 0.7922],
         [0.7882, 0.7882, 0.7882,  ..., 0.7922, 0.7922, 0.7922],
         [0.7882, 0.7882, 0.7882,  ..., 0.7922, 0.7922, 0.7922]],

        [[0.9255, 0.9255, 0.9255,  ..., 0.9216, 0.9216, 0.9216],
         [0.9255, 0.9255, 0.9255,  ..., 0.9216, 0.9216, 0.9216],
         [0.9255, 0.9255, 0.9255,  ..., 0.9216, 0.9216, 0.9216],
         ...,
         [0.7961, 0.7961, 0.7961,  ..., 0.7922, 0.7922, 0.7922],
         [0.7961, 0.7961, 0.7961,  ..., 0.7922, 0.7922, 0.7922],
         [0.7961, 0.7961, 0.7961,  ..., 0.7922, 0.7922, 0.7922]],

        [[0.9255, 0.9255, 0.9255,  ..., 0.9294, 0.9294, 0.9294],
         [0.9255, 0.9255, 0.9255,  ..., 0.9294, 0.9294, 0.9294],
         [0.9255, 0.9255, 0.9255,  ..., 0.9294, 0.9294, 0.9294],
         ...,
         [0.7922, 0.7922, 0.7922,  ..., 0.8000, 0.8000, 0.8000],
         [0.7922, 0.7922, 0.7922,  ..., 0.8000, 0.8000, 0.8000],
         [0.7922, 0.7922, 0.7922,  ..., 0.8000, 0.8000, 0.8000]]])
'''

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值