在安装pytorch之前先安装anaconda,anaconda是python的一个库,包含许多可能要用到的插件
根据自己的python版本来选择anaconda的版本,这里放上anaconda的下载链接
Index of / (anaconda.com)
下载完成后进行安装
just me
默认
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jLttfUbO-1668355151403)(D:\Markdown学习\图片\image-20221112214518672.png)]
安装成功的标志是在开始菜单中运行Anaconda Prompt,如果窗口前面显示base则代表安装成功
创建环境
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
则表明系统的显卡是可以用的
创建完成后点击IDE下面的Python Console,验证是否可以正常使用pytorch,验证过程和前面在命令行中的验证方法一样
在base环境中是存在的,但是在pytorch环境中不存在
如果不清楚的话可以在对应的环境下输入以下命令来查看
conda list--显示已经安装的安装包
查看是否存在ipykernel
输入以下命令进行安装
conda install nb_conda
安装成功后在Anaconda Prompt中输入以下命令来使用Jupyter
jupyter notebook
运行后会在浏览器中启动,启动成功后点击new,选择自己使用的环境
tips:Shift+回车可以运行
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.
Dataset和Dataloader
Dataset提供一种方式去获取数据及其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中进行调试,所以上述代码没有输出的内容
运行以下代码
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