【2020.02.11】jupyter特点、Pytorch数据加载、dataset类的使用
今天学习来源是:https://www.bilibili.com/video/BV1hE411t7RN
学习python的两个常用函数
两个pytorch常用函数
dir()函数,能让我们知道工具箱以及工具箱中的分隔区有什么东西。
help()函数,能让我们知道每个工具是如何使用的,工具的使用方法。
Tips:在使用help函数时候,后面的括号中不用再加括号
Jupyter的特点
使用三种不同的方式运行下方错误代码
三种不同运行方式的比较
代码是以块为一个整体运行的话
python方式:
python文件的块是所有行的代码,即运行整个文件后报错
优:通用,传播方便,适用于大型项目
缺:需要从头运行
python控制台:
以每一行为块,运行的,当出错的时候,阅读性较差
优:显示每个变量属性
缺:不利于代码阅读及修改
jupyter:
自定义分割块大小以任意行为块运行的,不会影响到其他块的运行
优:利于代码阅读及修改
缺:环境需要配置
(感觉jupyter好特别啊,中和了两种方式)
其中左边的一是错误代码的执行
右边的二是将2019加上双引号,订正了赋值给b的效果
Pytorch数据的加载
dataset 和 dataloader的作用和区别
读取数据涉及到两个类,分别为 dataset
和 dataloader
dataset的作用是:
提供一种方式去获取数据及其label(标签)
主要实现了两个功能:
如何获取每一个数据及其label
告诉我们总共有多少的数据
dataloader的作用是:
为后面的网络提供不同的数据形式
上传数据包到jupyter并解压
因为要在jupyter中进行运行,jupyter只能上传单个文件,因此上传压缩包
点击upload
新建用于解压的文件
代码如下
import zipfile
import os
files = zipfile.ZipFile('这里改为解压包名称', 'r')
files.extractall('这里是解压目录名')
files.close()
点击运行,便会解压到当前目录文件夹下,检查一下,训练集确实在当前目录下
导入的简单测试
按照jupyter的思想,我们分块进行处理
先导入库函数
from torch.utils.data import dataset
# 用于相片操作
from PIL import Image
# 系统操作,获取文件列表会用到
import os
导入一张照片并打开
# 因为在macOS下,目录层级之间是用/进行分隔的,Windows下需要\\进行转义为\
img_path = "hymenoptera_data1/hymenoptera_data/train/ants/0013035.jpg"
# 打印进行检查,特别是Windows
print(img_path)
img = Image.open(img_path)
img.show()
输出正常就行
导入一个文件目录下的所有照片试试
# 这是通过路径获取文件列表
dir_path = "hymenoptera_data1/hymenoptera_data/train/ants"
img_path_list = os.listdir(dir_path)
可以在变量查看的插件里面看到得到的是一个list
插件的安装方法看我之前的博客:https://www.cnblogs.com/mokou/p/14386462.html
此时获得的数据是以数组形式存在