Anaconda Pytorch 深度学习入门记录

环境

我这里用的是Anaconda最新的版本24.9.2,创建的pyton版本是3.9,虚拟环境名叫pytorch,下载的pytorch版本是12.1

初步配置

创建虚拟环境

首先进入Anaconda的终端,然后运行conda create -n xxx python=3.9创建一个虚拟环境,这里xxx是虚拟环境的名字,后面跟着的是python的版本

然后用conda activate xxx激活环境,退出环境用conda deactivate xxx

如果需要删除环境,用conda rm -n xxx --all删除

下载pytorch

然后进入pytorch的官网,下滑找到自己需要的pytroch版本,然后复制出现的命令在conda对应的虚拟环境中进行下载 (漫长的等待...这里由于网络问题会下载失败,重试几次即可,注意有显卡的不要到网上去换镜像源,新版本的pytorch用镜像源下载不成功,是CPU版本的)

下载完成后进入python环境,然后import torch导入torch库,再用torch.cuda.isavailiable()查看是否正确安装好pytorch,如果安装成功,有显卡的出现true,没有的出现false

配置pycharm

这里我下载的是最新的pycharm,进入pycharm之后需要自己配置环境,新建一个项目需要获取Anaconda的环境,如下所示:

如果没有自动弹出,选择自定义环境后选择现有,类型选择conda,然后路径到conda的目录中的Liabrary的bin的conda.bat,就可以自动配置环境了,要注意的是最下面的环境要选择对应的虚拟环境!!!比如前面创建的是pytorch就选择pytorch,不能默认!!!!,之后创建项目就可以了

同样的,进入项目后在终端中import torch导入torch库,再用torch.cuda.isavailiable()查看是否正确安装好pytorch,如果安装成功,有显卡的出现true,没有的出现false

安装Jupyter Notebook

在新版的pytorch和python中,直接用conda install nb_conda是不行的,要用conda install nb_conda_kernels下载,完成之后输入jupyter notebook就可以进入界面,然后创建一个新的jupyter book项目即可

同样的,我们在book中import torch导入torch库,再shift + enter后,用torch.cuda.isavailiable(),然后按下shift + enter查看是否正确安装好pytorch,如果安装成功,有显卡的出现true,没有的出现false

这里shift+enter的作用是切换到下一个代码块并且运行上一个代码块,如果没报错说明成功

pytorch两大法宝函数


其中dir()的作用类似于输出索引,告诉你package中有什么东西,help()的作用就是告诉你如何使用这个包,比如函数的用法
指明索引中的包含关系的时候用.来递进

加载数据集

在pycharm中使用from torch.utils.data import Dataset,或者在jupyter notebook中Dataset??可以看到对于数据集的解释和用,主要就是所有的数据集都要去继承Dataset这个类,然后重写__getitem____len__这两个函数

__getitem__函数主要作用就是获取数据集的对应数据及其label,__len__函数主要作用就是获取数据集的大小/长度

设置数据集

以图片数据集为例,设置图片数据集首先需要图片的路径,这里用导入os库可以将获取一整个文件夹的资源路径,并且作为一个字典列表来使用

具体代码如下

点击查看代码
from torch.utils.data import Dataset
import os
from PIL import Image

class Mydata(Dataset):  #创建一个数据集类,继承Dataset类
    def __init__(self,root_dir,label_dir):
        self.root_dir=root_dir  # 设置数据集的根目录--'dataset/hymenoptera_data/train'
        self.label_dir=label_dir  # 设置数据集的标签目录--'ants'
        self.path =os.path.join(self.root_dir,self.label_dir) # 将目录拼起来,作为一个完整的路径--'dataset/hymenoptera_data/train\\ants'
        self.image_path=os.listdir(self.path)   #数据集路径:读取资源路径中的图片资源,并且变成一个字典列表,每个索引对应一个图片资源

    def __getitem__(self, idx): # 创建一个方法获取每个图片资源的label
        image_name=self.image_path[idx]  # 通过字典列表的索引值获取图片名字
        image_item_path=os.path.join(self.root_dir,self.label_dir,image_name)  # 拼合路径,获取每一个图片资源的路径--'dataset/hymenoptera_data/train\\ants\\0013035.jpg'
        image=Image.open(image_item_path) # 通过图片路径读取图片
        label=self.label_dir # 返回图片对应的标签
        return image,label

    def __len__(self): # 返回数据集的长度
        return  len(self.image_path)


root_dir ="dataset/hymenoptera_data/train"
ants_label_dir="ants"
bees_label_dir="bees"
ants_data_set=Mydata(root_dir,ants_label_dir) # 获取蚂蚁数据集
bees_data_set=Mydata(root_dir,bees_label_dir) # 获取蜜蜂数据集
train_dataset=ants_data_set+bees_data_set # 直接整合成数据集作为训练数据,也是一个字典列表



配置Tensorboard

Tensorboard的作用是进行数据可视化。这里需要先使用pip install tensorboard下载tensorboard包,然后from torch.utils.tensorboard import SummaryWriter导入。具体的代码如下:

点击查看代码
from torch.utils.tensorboard import SummaryWriter  # 导入tensorboard包
writer=SummaryWriter("logs")  # 将输出的文件存放在logs文件夹中

x = range(100)
for i in x:
    writer.add_scalar('y=2x', i * 2, i)  # 参数分别为 图像的描述  Y轴 X轴
writer.close()

运行tensorboard的时候就在终端中输入 tensorboard --logdir=xxx即可,端口号也可以用--port=xxx进行配置,然后注意logdir需要用 绝对路径

Tensorboard中显示图像

通过查看writer.add_image的使用方法可以发现图像的读取要求图像为array数组格式的,所以使用numpy将图像转为array格式(opencv也可以),通过print(type(image))查看图像的格式。然后通过image中的type可以查看是否为CHW,即通道数、高度、宽度,不是的话在后面声明格式即可
globalstep的作用可以说是在哪个阶段显示出什么图片

点击查看代码
image_path ="dataset/hymenoptera_data/train/ants_image/28847243_e79fe052cd.jpg" # 图像路径
image = Image.open(image_path) # 打开图像
image_array= np.array(image) # 将图像转为数组形式

writer.add_image("test",image_array,1,dataformats="HWC")
posted @ 2024-10-27 09:44  cyMessi  阅读(80)  评论(0编辑  收藏  举报