Pytorch:关于numpy与PIL转换的问题
对数据集的处理会遇到很多的问题,相信这些问题也经常困扰各位,尤其是关于transforms的使用。不得不说这个库非常的好用,帮助我们节省了很多的时间,但是不可避免我们会遇到关于pytorch中的Tensor,numpy以及PIL之间的转化,这主要是因为transforms进行转换时接受的是PIL Image类型,要不会报错,下面就这一部分讲解一下这部分的转化。
此文主要讲解的是numpy、PIL Image之间的转化,所以关于transforms的各种转换函数就不说明了,文章的末尾会给个链接。
进入正题:
(1)如何把numpy传入transform中
看似代码很简单,其实还是有需要注意的地方,尤其是transform只接收uint8数据类型的numpy,如果为其他格式,很容易出错。很多人很可能就会想着转换一下就行,但其实转换也需要注意结合具体实际。
比如int16转unint8:
第一种直接使用numpy.uint8
函数进行强转
第二种是先进行0-255范围的标准化,然后使用numpy.uint8
上述两者做的是不同的事情,看自己需要哪一种情况
np.uint8
只考虑数字的最低字节。就像在做value && 0xff
。
第二种先使值正常化
它有效地将一个范围更改为另一个范围,并相应地缩放两者之间的所有值。根据定义,原始最小/最大值将成为目标最小/最大值
opencv中也有函数能直接实现该功能
对于需要不失真的图片格式转换,显然第二种为合理
2)如何把Tensor传入transform中
下面链接的这个博客上是关于transforms的转化函数,放在transforms.Compose([这里放转化函数,以逗号进行分割])
博客地址:https://sakura.blog.csdn.net/article/details/107533668
__EOF__
.jpg)
本文链接:https://www.cnblogs.com/sakura-yuki/p/18532080.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2023-08-26 Python:nii格式的核磁共振图像(MRI)的读取、处理、显示操作(以缩放操作举例)