深度学习入门笔记——Transform的使用
Transfrom是什么?
可以看作是一个图像处理的工具箱,通过查看Transform类可以找到不同的图像处理方法
更准确的说,Transform中有各种类的的定义,我们可以通过继承或者构造这些类,然后调用里面的方法来实现相应的功能

可以通过结构来便捷的查看transform中的类和方法,然后实现对应的对象即可。其中__call__函数的作用就是在调用这个对象的时候自动调用的函数比如这是Totensor类的定义,可以看到就是将其他格式的图像转化为tensor格式的图像
具体的代码如下,输出的就是tensor类型的图像
from torchvision import transforms
from PIL import Image
image_path="dataset/hymenoptera_data/train/ants_image/7759525_1363d24e88.jpg"
image=Image.open(image_path)
transform_class = transforms.ToTensor() # 构造transform中的ToTensor类
image_tensor =transform_class(image) # 调用类将图像转化为tensor格式(__call__函数)
print(type(image_tensor))
Tensor格式有什么用
相较于PIL的image格式和numpy的array格式,tensor图像格式的作用在于它包含了用于神经网络的一些属性,比如反向传递、使用的是CPU还是GPU进行训练等等,所以tensor图像格式更适合用来进行神经网络的训练
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
from PIL import Image
image_path="dataset/hymenoptera_data/train/ants_image/7759525_1363d24e88.jpg"
image=Image.open(image_path)
transform_class = transforms.ToTensor() # 构造transform中的ToTensor类
image_tensor =transform_class(image) # 调用类将图像转化为tensor格式(__call__函数)
writer = SummaryWriter("logs")
writer.add_image("tensor_image",image_tensor,1) # 用tensor格式显示图像
writer.close()
此外,我们可以看到,使用PIL处理的图像格式是Jpeg格式,opencv处理的图像是numpy的array格式,transform处理的图像是tensor格式,三者是不相同的

各种格式以及对应的调用方法如下:

深度学习入门笔记——Transform的使用的更多相关文章
- PyTorch深度学习入门笔记(一)PyTorch环境配置及安装
@ 目录 一.工具安装 1.1 Anaconda 安装 1.2 Pytorch安装 二.编辑器安装 2.1 Pycharm安装 2.2 Jupyter安装 OS: ubuntu 20.04(虚拟机) ...
- 深度学习课程笔记(十二) Matrix Capsule
深度学习课程笔记(十二) Matrix Capsule with EM Routing 2018-02-02 21:21:09 Paper: https://openreview.net/pdf ...
- 深度学习课程笔记(一)CNN 卷积神经网络
深度学习课程笔记(一)CNN 解析篇 相关资料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html 首先提到 Why CNN for I ...
- 深度学习入门者的Python快速教程 - 基础篇
5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明 ...
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- 深度学习word2vec笔记之算法篇
深度学习word2vec笔记之算法篇 声明: 本文转自推酷中的一篇博文http://www.tuicool.com/articles/fmuyamf,若有错误望海涵 前言 在看word2vec的资料 ...
- 深度学习入门实战(二)-用TensorFlow训练线性回归
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者 :董超 上一篇文章我们介绍了 MxNet 的安装,但 MxNet 有个缺点,那就是文档不太全,用起来可能 ...
- (转)深度学习word2vec笔记之基础篇
深度学习word2vec笔记之基础篇 声明: 1)该博文是多位博主以及多位文档资料的主人所无私奉献的论文资料整理的.具体引用的资料请看参考文献.具体的版本声明也参考原文献 2)本文仅供学术交流,非商用 ...
随机推荐
- [POI2015] MOD 题解
前言 题目链接:洛谷. 题意简述 给定一棵树,求断掉一条边再连上一条边所得的新树直径最小值和最大值,以及相应方案(你可以不进行任何操作,即断掉并连上同一条边). 题目分析 假设我们枚举断掉某一条边,得 ...
- 【简单菊花图】Codeforce 1583Problem - B.md
1583Problem - B - Codeforces 题目大意:n个点的无根树 给出m个限制条件 (a,c,b)在a到b路径上不能存在c点,求任意一种可能的树的所有边 注意数据范围:1<m& ...
- Git删除当前分支下的所有历史版本与log
- 零基础学习人工智能—Python—Pytorch学习(五)
前言 上文有一些文字打错了,已经进行了修正. 本文主要介绍训练模型和使用模型预测数据,本文使用了一些numpy与tensor的转换,忘记的可以第二课的基础一起看. 线性回归 结合numpy使用 首先使 ...
- 【VMware VCF】VMware Cloud Foundation Part 07:管理工作负载域中的主机和集群。
一个标准 VMware Cloud Foundation 实例中具有管理工作负载域和 VI 工作负载域两种类型,管理域有且只有一个,而 VI 域可以创建多个,每种工作负载域中可以具有多个 vSpher ...
- zabbix报错大全
zabbix报错 https://www.cnblogs.com/losbyday/category/876878.html作者总结的很全棒 1.在启动zabbix-agent 时系统日志输出 PID ...
- Python 潮流周刊#66:Python 的预处理器(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 编译 Qt 项目
参考:Qt 编程指南 一个最小化工作示例:qt-minimal | GitHub 源文件 main.cpp #include <QApplication> #include <QLa ...
- maven 插件之 maven-shade-plugin,解决同包同名 class 共存问题的神器
开心一刻 有一天螃蟹出门,不小心撞倒了泥鳅泥鳅很生气地说:你是不是瞎啊!螃蟹说:不是啊,我是螃蟹 概述 maven-shade-plugin 官网已经介绍的很详细了,我给大家简单翻译一下 This p ...
- python pyqt6 QComboBox 圆角边框
圆角边框周围显示黑色直角 QComboBox 新增 如下设定即可 xxx_source.view().window().setWindowFlag(Qt.WindowType.NoDropShado ...