| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 0.2 pytorch深度学习--数据读取和存储(图片) -> 正文阅读 |
|
[人工智能]0.2 pytorch深度学习--数据读取和存储(图片) |
这里主要想写一下图片的读取和存储。尽管李沐大神通过绘制精确度折线图的方式展示了学习的结果,但由于本人希望能得到对应的结果,例如输出图片。 在对本章熟悉后,可以做把训练后的模型用于实际应用,例如对fashion-mnist图片集按类别输出图片。 用到的技术有图片的读取,PIL和numpy的转化,numpy和torch的转化。通过简单的格式转化后输出文件。内容简单,但网上内容纷繁,为了完成这个目标,确实也花费了大量的精力,希望你看完本篇内容能有所收获。 读取图片首先请出我们都认识的Lena 我想应该大家都认识这张照片,咱们就依然拿这张图片开始。
首先下载一张图片并复制地址,任意均可(格式jpeg或者png都可以,剩下的没有试过),可以是RPG的也可以是灰度的,甚至如果你想,四色的CMYK应该也可以,(我没试过)。
Image.open非常简单,即以PIL格式打开路径中的文件。类型是jpeg图片插件.jpeg图片文件 debug的过程中可以查看img的信息: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=789x431 at 0x16C5B3E6D90> 除了类型外,还显示了格式是RGB,图片大小是789x431。(这里是长×宽) 然后通过pyplot在python中显示这个读取进来的文件。 转成灰度照片?接下来我们想干的是什么呢,因为我们知道fashion-mnist是一个通道,即是灰度图片。所以不管是为了练习还是为了贴近数据集,我们希望将图片转成向量并将三通道图片转化成灰度图。其实有一些很简单的函数调用可以轻松实现,但是为了锻炼动手能力,我选择自己修改。
注意这个尺寸,根据刚刚对加载为PIL的img属性查看,我们能知道前两项是宽×长,第三项则是通道。 关于三通道转灰度,已经有转化的公式。公式如下: Gray = R*0.299 + G*0.587 + B*0.114
如果有人问说为什么要转成tensor计算再转回去(纯粹是我没用过numpy)。 ?不要问为什么还有颜色,这是pyplot自己根据数值大小增加的颜色。 存储及前期准备接下来的任务就是怎么把numpy转化成图片并保存到硬盘,并看到真正的灰色图片,但在此之前,我们还应该稍微看看numpy的数据类型和数值。
首先能看到数值应该都是非负数。如果用过Photoshop,应该知道其实他们应该是0-255之间的整数,因此为了转化成图片,需要对这些数字取整并将数据类型改为uint8。
为什么改成uint8呢。因为2^8-1等于255。 更改后,可以准备把图片存起来了,解铃还须系铃人,还需要将numpy类转成PIL类并最终保存到硬盘。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 20:28:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |