Pytorch-learn1-torch的基础操作

1.什么是Pytorch

提到深度学习,就不得不提一提如今主流的开发工具,Pytorch。PyTorch 是一个开源的深度学习框架,用于构建神经网络,将 Torch 的机器学习(ML) 库与基于 Python 的高级 API 相结合。它的灵活性和易用性以及其他优点使其成为学术和研究界领先的机器学习框架。它由 Facebook 的 AI 研究团队开发并维护,以灵活性和易用性著称,广泛用于学术研究和工业应用中。PyTorch 提供了强大的工具,允许开发者轻松构建、训练和部署深度学习模型。

 

 2.使用Pytorch的优异性

PyTorch 支持 GPU 加速计算,能够显著提升深度学习模型的训练速度,尤其是在处理大规模数据时。同时,PyTorch 有活跃的社区和大量的开源资料,能够帮助开发者更快地上手并解决问题。

 3.Pytorch与面向对象

  1. 误差传播灵活性: 使用类的写法,即面向对象编程,可以在方法中定义误差传播的逻辑。这使得模型在误差传播中进行灵活的操作,如在不同条件下选择不同的激活函数,或添加一些自定义的计算。

  2. 与PyTorch API的良好集成: PyTorch 的许多功能(如 torch.nn.Moduletorch.optim 等)都基于面向对象的设计。使用类的写法来继承开发者封装好的方法,可以更好地利用 PyTorch 提供的功能。

  3. 类的简单介绍 

import winsound
from datetime import datetime as dt
#导入库
#在类当中,函数叫方法
class MyClock:
    def __init__(self,name):#魔术方法
        self.name=name
    def beep(self):#函数(方法)
        time=dt.now()
        winsound.Beep(2000,1500)
        print(f'{self.name}闹钟提醒您,现在的时间是:',time)
    def __str__(self):#将我的对象返回为字符串而不是内存地址
        return f"闹钟的名字:{self.name}"
clock1=MyClock('MyClock')#我的闹钟
clock1.beep()#调用对象执行方法
print(clock1)

以上我定义了一个类来简单代表闹钟这个产品。 我将报时和响铃这个功能写成方法让我的闹钟来执行,即面向对象。

  4.torch的简单操作

torch的tensor(张量)与numpy库的ndarray操作近似,故经常一起使用。不同的是,ndarray不支持GPU,tensor支持GPU。

#--库的导入--
import torch
import numpy as np

 首先,在进行Pytorch的基础操作之前,我们先需要对库进行导入。

my_array1=torch.empty(5,3)#创建5*3的张量
my_array2=torch.rand(5,3)#随机内容为0-1数的5*3张量
my_array3 = torch.ones(5, 3, dtype=torch.double)#内容为1的5*3张量
my_array4=torch.ones_like(my_array3,dtype=torch.float)#和my_array3大小一样的1张量
my_array5=torch.randn_like(my_array4,dtype=torch.float)#和my_array3大小一样的随机张量
my_array6=torch.tensor([5,3])#内容为5,3的一维张量
my_array7=torch.empty(5,3)
#赋值传播,将4,5张量相加得到7
torch.add(my_array4,my_array5,out=my_array7)
my_array8=my_array7.view(3,5)#和numpy的reshape方法相同
# print(torch.rand(1).item())#只有一个数的时候可以用item
my_array8.add_(1)#加法操作,也可以直接+1

 之后就是张量的一些基础操作

# 检查GPU是否可用
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")#转到GPU上训练
print(f"Device: {torch.cuda.get_device_name()}")#打印设备名称
my_array9=torch.rand(100,100,device=device)
my_array9 = my_array9.cpu()  # 将张量从 GPU 移动到 CPU,numpy不支持GPU
my_array10=np.stack([my_array9,my_array9],axis=0)#转成numpy的操作

对于张量的运算,我们还能转到GPU上,相对于CPU具有多线程,操作快的优点。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤在 Ubuntu 20.04 上安装 PyTorch GPU 版本: 1. 安装 CUDA 和 cuDNN 在 Ubuntu 20.04 上安装 CUDA 和 cuDNN 的步骤如下: 1.1 安装 CUDA 首先,你需要在 NVIDIA 官网上下载适合你的 CUDA 版本。CUDA 11.7 可以从以下链接下载:https://developer.nvidia.com/cuda-downloads。 下载完成后,你可以使用以下命令将其安装到系统中: ```bash $ sudo dpkg -i cuda-repo-ubuntu2004-11-7-local_11.7.109-1_amd64.deb $ sudo apt-key add /var/cuda-repo-ubuntu2004-11-7-local/7fa2af80.pub $ sudo apt-get update $ sudo apt-get install cuda ``` 1.2 安装 cuDNN cuDNN 库是用于深度学习加速的 CUDA 拓展库。你可以从 NVIDIA 官网下载适合你的 cuDNN 版本。cuDNN 8.2.4 可以从以下链接下载:https://developer.nvidia.com/rdp/cudnn-download。 下载完成后,你可以使用以下命令将其解压到 `/usr/local/cuda` 目录下: ```bash $ tar -xzvf cudnn-11.7-linux-x64-v8.2.4.15.tgz $ sudo cp -r cuda/include/* /usr/local/cuda/include/ $ sudo cp -r cuda/lib64/* /usr/local/cuda/lib64/ $ sudo ldconfig ``` 2. 创建虚拟环境并安装 PyTorch 为了避免与系统中已有的 Python 库冲突,我们可以使用 Python 虚拟环境。可以使用以下命令创建虚拟环境: ```bash $ python3 -m venv venv $ source venv/bin/activate ``` 然后,你可以使用以下命令安装 PyTorch: ```bash $ pip install torch torchvision torchaudio -f https://download.pytorch.org/whl/cu111/torch_stable.html ``` 这将安装适合 CUDA 11.1 的 PyTorch 版本。 安装完成后,你可以使用以下命令验证是否安装成功: ```bash $ python >>> import torch >>> print(torch.cuda.is_available()) ``` 如果返回 `True`,则说明安装成功。 3. 安装其他依赖项 在使用 PyTorch 进行深度学习时,你可能还需要安装其他一些库。你可以使用以下命令安装常用的深度学习库: ```bash $ pip install numpy matplotlib scikit-learn jupyterlab ``` 以上是在 Ubuntu 20.04 上安装 PyTorch GPU 版本的步骤,希望能够帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值