语义分割学习系列(四)cpu和gpu版本的pytorch及其环境安装

前言

追根溯源,pytorch来自于torch,不过torch使用小众化的luna语言,而pytorch则是python,当然,pytorch在很多框架设计思想方面都做了更新。 我们这里也打算用pytorch框架来训练语义分割模型。

安装pytorch

在使用pytorch框架前,必须先安装。 其过程相对还是比较简单的。我这里的平台是:ubuntu18.0.4+python3.6

先尝试下面这个安装命令:

pip3 install torch, torchvision

但是发现下载速度非常慢,很难安装成功。后来在网上找到这个命令就很快安装好了:

python3 -m pip install --upgrade torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple

安装好,输入下面命令来进行验证,并打印出torch和torchvision的版本号:

后续补充:

上面安装的是cpu版本,这样模型训练会非常慢。下面讲解gpu版本的pytorch安装。

先从https://download.pytorch.org/whl/cu90/torch_stable.html下载torch-1.1.0-cp36-cp36m-linux_x86_64.whl和torchvision-0.3.0-cp36-cp36m-manylinux1_x86_64.whl两个安装包,然后敲入命令:

pip3 uninstall torch
pip3 uninstall torchvision

sudo pip3 install xxx/torch-1.1.0-cp36-cp36m-linux_x86_64.whl xxx/torchvision-0.3.0-cp36-cp36m-manylinux1_x86_64.whl

 验证时输入: import torchvision可能会出现下面的错误:

>>> import torchvision
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  。。。 。。。
  。。。 。。。
    from . import functional as F
  File "/home/xxx/.local/lib/python3.6/site-packages/torchvision/transforms/functional.py", line 5, in <module>
    from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION
ImportError: cannot import name 'PILLOW_VERSION'

解决办法是安装相对更低版本的pillow,如下所示

 pip3 install Pillow==6.2.2

torch和torchvision import成功后,最后再使用下面命令确认pytorch的cuda状态是否正常 

 如上图所示,如果cuda状态正常的话,其打印值应该为True。至此,cuda版本的pytorch安装完毕。

其它环境依赖包的安装

pip3 install matplotlib pillow tensorboardX tqdm

上面这个命令很简单,应该很快就能下载和安装完成。

此外,可能还需要安装以下两个包:

Cython的安装命令:

 python3 -m pip install --upgrade Cython -i https://pypi.tuna.tsinghua.edu.cn/simple

pycocotools的安装命令如下:

 pip3 install pycocotools

至此,pytorch框架以及环境依赖包的安装 基本完成。

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在深度学习语义分割模型中,优化器参数通常是存储在模型权重中的。当模型在GPU上训练时,优化器参数也会存储在GPU内存中。为了将模型从GPU转换到CPU,需要将优化器参数从GPU内存中拷贝到CPU内存中。 以下是在PyTorch中将优化器参数从GPU转换到CPU的示例代码: ``` import torch # 创建一个模型和优化器 model = MyModel() optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) # 将模型和优化器移动到GPU device = torch.device("cuda") model.to(device) optimizer.to(device) # 训练模型... for epoch in range(num_epochs): for batch in data_loader: # 将数据移动到GPU inputs, labels = batch[0].to(device), batch[1].to(device) # 前向传播和反向传播 outputs = model(inputs) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() optimizer.step() # 将优化器参数从GPU移动到CPU optimizer_cpu = torch.optim.Adam(model.parameters(), lr=1e-3) optimizer_cpu.load_state_dict(optimizer.state_dict()) optimizer = optimizer_cpu # 在CPU上评估模型... ``` 首先,我们创建一个模型和优化器,并将它们移动到GPU上。在训练过程中,我们将数据移动到GPU,并执行前向传播、反向传播和优化器步骤。在每个epoch结束时,我们将优化器参数从GPU移动到CPU,并使用新的CPU优化器评估模型。 要将优化器参数从GPU移动到CPU,我们需要首先创建一个新的CPU优化器,然后使用`load_state_dict`方法将GPU优化器的状态字典加载到新的CPU优化器中。最后,我们将原始优化器替换为新的CPU优化器。 需要注意的是,当我们在CPU上评估模型时,我们不需要将模型和优化器移动回CPU。因为模型权重已经在CPU内存中,而且我们已经使用新的CPU优化器替换了原始GPU优化器的状态字典。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ltshan139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值