pytorch学习

pytorch学习

一、安装Anaconda

在安装pytorch之前先安装anaconda,anaconda是python的一个库,包含许多可能要用到的插件

根据自己的python版本来选择anaconda的版本,这里放上anaconda的下载链接

Index of / (anaconda.com)

下载完成后进行安装

just me

默认

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLttfUbO-1668355151403)(D:\Markdown学习\图片\image-20221112214518672.png)]

安装成功的标志是在开始菜单中运行Anaconda Prompt,如果窗口前面显示base则代表安装成功

二、安装pytorch

创建环境

conda create -n pytorch python=3.8
根据电脑中安装的python版本不同,要注意更改后面的参数
如果已经存在环境,可能要先删除原环境

创建成功后会显示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lqhZXjH6-1668355151405)(D:\Markdown学习\图片\image-20221112213844425.png)]

再输入:

conda activate pytorch
前面的base会编程pytorch

pytorch官网:PyTorch

根据自己的电脑选择参数,之后会生成一行代码,复制下来:

比如我的电脑选择的参数就是这样的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wFi70EOa-1668355151406)(D:\Markdown学习\图片\image-20221112183904547.png)]

如果不知道CUDA的版本,可以在cmd中输入nvidia-smi进行查看

查看后,复制产生的代码到Anaconda Prompt中回车

我的电脑中产生的代码是:

conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

之后进行安装,安装成功的标志是:

在Anaconda中输入python,进入python编译环境
输入:import torch
	torch.cuda.is_available()
返回结果为true
则表明系统的显卡是可以用的

三、在PyCharm中打开pytorch

  1. 选择new project
  2. 点击Python Interpreter展开
  3. 在Previously configured interpreter中点击Interpreter后面的…
  4. 在Conda Environment中的Interpreter选择先前创建的环境。在这一步可能不会显示,需要手动去文件中找
  5. 如果4中没有显示,点击Interpreter后面的…;选择Anaconda3->envs->pytorch->python.exe

创建完成后点击IDE下面的Python Console,验证是否可以正常使用pytorch,验证过程和前面在命令行中的验证方法一样

四、使用Jupyter

在base环境中是存在的,但是在pytorch环境中不存在

如果不清楚的话可以在对应的环境下输入以下命令来查看

conda list--显示已经安装的安装包
查看是否存在ipykernel

输入以下命令进行安装

conda install nb_conda

安装成功后在Anaconda Prompt中输入以下命令来使用Jupyter

jupyter notebook

运行后会在浏览器中启动,启动成功后点击new,选择自己使用的环境

tips:Shift+回车可以运行

五、Python中好用的两个函数

dir()和help()

**eg:**dir(torch)显示torch中包含哪些函数

help(torch.cuda.is_available)显示这个函数的用法

>>>dir(torch.cuda.is_available)
['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

>>>help(torch.cuda.is_available)
Help on function is_available in module torch.cuda:
is_available() -> bool
    Returns a bool indicating if CUDA is currently available.

六、pytorch加载数据:

Dataset和Dataloader

Dataset提供一种方式去获取数据及其label

  • 如何获取每一个数据及其label
  • 告诉我们总共有多少个数据

Dataloader为后面的网络提供不同的数据形式

一个示例

from torch.utils.data import Dataset
from PIL import Image
import  os
class MyData(Dataset):

    def __init__(self, root_dir, label_dir):
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(self.root_dir, self.label_dir)
        self.img_path = os.listdir(self.path)

    def __getitem__(self, item):
        img_name = self.img_path[item]
        img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)
        img = Image.open(img_item_path)
        label = self.label_dir
        return img, label

    def __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


因为是在console中进行调试,所以上述代码没有输出的内容

七、Tensorboard的使用

运行以下代码

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter('logs')

for i in range(100):
    writer.add_scalar("y=x", i, i)
writer.close()

程序会报错,提示:ModuleNotFoundError: No module named ‘tensorboard’

这是因为缺少tensorboard组件

安装tensorboard:可以在PyCharm中的Terminal中输入:

pip install tensorboard

安装成功后就可以正常运行上述代码,之后会在目录中产生一个logs文件夹,文件夹中会保存产生的文件,运行这个文件的方法:

在Terminal中输入:

tensorboard --logdir=logs
在命令后可以指定端口
tensorboard --logdir=logs --port=6007

pip install tensorboard


安装成功后就可以正常运行上述代码,之后会在目录中产生一个logs文件夹,文件夹中会保存产生的文件,运行这个文件的方法:

在Terminal中输入:

```base
tensorboard --logdir=logs
在命令后可以指定端口
tensorboard --logdir=logs --port=6007

你可能感兴趣的:(python)