目录
- 一、安装pytorch
- 1、用conda指令创建一个pytorch的环境
- 2、安装pytorch(无独显)
- 二、编译器选择
- 1、pycharm
- (1)安装pycharm
- (2)选择编译器
- (3)检测能否正常运行
- 小技巧
- pycharm 的创建项目及使用
- 2、Jupyter Notebook
- 三、两个法宝函数 dir() help()
- 四、三种代码编辑方式对比
- 1、python文件
- 2、python控制台
- 3、Jupyter
- 五、pytorch中加载数据
- Dataset(数据集)
- Dataloader(数据装载器)
- dataset类代码实战
- 1、创建地址图片的列表
- 2、地址拼接:
- 3、得到单张图片的相对路径
- 4、在数据集中打开图片
一、安装pytorch
1、用conda指令创建一个pytorch的环境
1、输入创建指令
conda create -n pytorch python=3.6
# -n后面跟环境的名字,eg:"pytorch"
(在 cmd 和 anaconda prompt 的终端里一样😅
2、安装一些包,“Y”
3、创建成功
4、进入创建的环境
2、安装pytorch(无独显)
官网地址: https://pytorch.org/
下载1.12的版本
没独显,选only cpu的
emm!!!emm 安装时出现问题:
conda版本有问题,按它提示的运行了一下,还是出错了
嘿嘿…一直出问题,狠心把本科下载的 anaconda 卸载了(夸张哈哈哈
重新安装miniconda!
详见俺滴另篇文章:https://blog.csdn.net/weixin_49538228/article/details/134842972
继续安装
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cpuonly -c pytorch
安装成功!
检查是否安装成功:
输入下面两条命令行,没有报错就安装成功了
cpu的会false
二、编译器选择
1、pycharm
pycharm官网:https://www.jetbrains.com/pycharm/
(1)安装pycharm
(我之前就安装过了专业版,省略安装步骤了~)
(2)选择编译器
选已经创建的pytorch
没有自动出现
解决方案:
1、添加系统环境变量(还没出现)
环境变量是给命令行服务的
2、手动选择路径
(1)在scripts文件夹里找到conda的可执行文件
(2)选择之前建的pytorch环境
(3)检测能否正常运行
小技巧
左边输入,右边会有相应的变量的属性,便于尝试不熟悉的代码,不熟悉的语法。
pycharm 的创建项目及使用
1、新建项目 (省略)
设置 --> 查看项目解释器
2、新建python文件
3、为python文件设置相应的python解释器
方法一(细致了):
方法二:
右键运行
4、在python console中写代码
python控制台
以每一行作为一个块执行
2、Jupyter Notebook
因为我安装的是Miniconda,所以需要单独安装Jupyter Notebook。
jupyter默认安装在base环境中,无法使用之前安装的pytorch。
解决方案:
(1)在base环境里再安装一遍pytorch
⭐(2)在pytorch环境里安装jupyter
进入pytorch环境,在命令行输入:conda install nb_conda
安装完成!
运行jupyter notebook
可以自动跳转,不能自动跳转的复制网页链接打开~
(附)要在指定文件夹中打开 jupyter:在文件夹中运行 cmd
创建新代码:
运行:
(按Shift+Enter:运行并进入下一行)
三、两个法宝函数 dir() help()
package(pytorch):工具箱
1、dir()
提供打开操作,看见里面有什么
让我们知道 工具箱 以及 工具箱中的分隔区有什么东西
2、help()
说明书
让我们知道每个工具是如何使用的,工具的使用方法
dir(pytorch)
输出:1、2、3、4
dir(pytorch.3)
输出:a,b,c
help(pytorch.3.a)
输出:将此板手放在特定地方,然后拧动
示例:
前后有双下划线,不可更改,是函数了,不是分隔区了
help出现官方解释(help中函数后不加括号查询):
四、三种代码编辑方式对比
1、python文件
错误示例:
修改后
如果代码是以块为一个整体运行的话,python文件的块是所有行的代码。
优:通用,传播方便,适用于大型项目
缺:在运行时出错时,再运行从头开始!
2、python控制台
错误示例:
修改后
以每一(任意)行为块运行的,修改后从上次错误处开始运行
(按Shift+回车可以继续输入)
优:可以看到每一个变量的属性
缺:如果出现一个错误,代码的可阅读性就大大降低了
一般用来调试
3、Jupyter
错误示例:
修改后
以任意行为块进行运行(手动切分)
优:利于代码的阅读及修改
缺:环境需要配置
五、pytorch中加载数据
Dataset(数据集)
提供一种方式去获取数据及其label。
实现功能:
(1)如何获取每一个数据及其label
(2)告诉我们总共有多少的数据
Dataset:
(1)读取一张图片:
from PIL import Image
img_path = "D:\\learn_pytorch\\hymenoptera_data\\train\\ants\\0013035.jpg"
img = Image.open(img_path)
img.show()
windows中正反斜杠都可以,只是反斜杠要转义
双斜杠表转义
✳ 如果图片加载报错,则是路径有问题,把路径里的 ‘\’ 改成 ‘/’ ,因为如果 \ 后面是 ‘ \t ’就会出问题。或者使用双斜杠 ‘\\’
✳ 在字符串前加 r 可以防止转义字符生效
Dataloader(数据装载器)
为后面的网络提供不同的数据形式
dataset类代码实战
1、创建地址图片的列表
dir_path = "hymenoptera_data\\train\\ants" #用的相对路径
import os
img_path_list = os.listdir(dir_path) #将文件夹下的所有东西变成一个列表
img_path_list[0]
2、地址拼接:
import os
root_dir = "hymenoptera_data/train"
label_dir = "ants"
path = os.path.join(root_dir, label_dir)
3、得到单张图片的相对路径
import os
root_dir = "hymenoptera_data/train"
label_dir = "ants"
path = os.path.join(root_dir, label_dir)
img_path = os.listdir(path)
idx = 0
img_name = img_path[idx]
img_item_path = os.path.join(root_dir, label_dir, img_name)
4、在数据集中打开图片
(1)单个蚂蚁的数据集
(2)加入蜜蜂的数据集
(3)两个数据集拼接
(仿造数据集)
from torch.utils.data import Dataset
from PIL import Image
import osclass MyData(Dataset):def __init__(self, root_dir, label_dir): #初始化函数self.root_dir = root_dirself.label_dir = label_dirself.path = os.path.join(self.root_dir, self.label_dir)self.img_path = os.listdir(self.path) #图片所有地址列表def __getitem__(self, idx): #获取其中的每一个图片img_name = self.img_path[idx]img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)img = Image.open(img_item_path)label = self.label_dirreturn img, labeldef __len__(self): #数据集的长度 = 列表长度return len(self.img_path)root_dir = "hymenoptera_data/train"
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = MyData(root_dir, ants_label_dir) #蚂蚁的数据集
bees_dataset = MyData(root_dir, bees_label_dir) #蜜蜂的数据集train_dataset = ants_dataset + bees_dataset
注:
1、一个函数的变量不能传递给另一个函数,self 可以把指定的变量给后面的函数使用(指定了类中的全局变量)