pytorch学习笔记——(一)pytorch简介与基础知识

文章目录


前言

本文记录了一些pytorch学习的相关记录,作为本人查询的笔记。


一、pytorch简介

PyTorch是由Facebook人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,目前被广泛应用于学术界和工业界,而随着Caffe2项目并入Pytorch, Pytorch开始影响到TensorFlow在深度学习应用框架领域的地位。总的来说,PyTorch是当前难得的简洁优雅且高效快速的框架。

二、pytorch安装

1.安装Anaconda

step1:进入官网选择合适的版本安装;

step2:安装后可在开始菜单栏查看;

step3:创建虚拟环境;

conda create -n env_name python==version

 创建的虚拟环境:

conda create -n sun python==3.8
conda env list 可用于查询当前安装的虚拟环境

step4:换源,这里使用windows系统,conda换源(清华源)官方换源帮助

2.安装 pytorch

step1:进入pytorch官网PyTorch官网

step2:找到Install,我们需要结合自己情况选择命令并复制下来,然后使用conda下载或者pip下载。

具体安装此处不详细说明。 

三、pytorch基础知识

1.张量

在深度学习中,我们通常将数据以张量的形式进行表示,比如我们用三维张量表示一个RGB图像,四维张量表示视频。

张量维度

代表含义

0维张量

代表的是标量(数字)

1维张量

代表的是向量

2维张量

代表的是矩阵

3维张量

时间序列数据 股价 文本数据 单张彩色图片(RGB)

在PyTorch中,torch.Tensor  是存储和变换数据的主要工具。

可在虚拟工具中使用notebook来实现编程试验:

运行虚拟环境,选择合适的地址,运行notebook:

 

新建内容如图:

2.创建tensor

1.torch.rand()随机初始化矩阵

import torch
x = torch.rand(4, 3) 
print(x)
tensor([[0.5522, 0.4581, 0.3311],
        [0.9411, 0.3355, 0.3388],
        [0.8535, 0.6223, 0.1819],
        [0.1564, 0.0937, 0.8786]])

 2.torch.zero()构造一个矩阵全为 0

import torch
x = torch.zero(4, 3) 
print(x)
tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])

常见构造张量的方法:

函数

功能

Tensor(sizes)

基础构造函数

tensor(data)

类似于np.array

ones(sizes)

全1

zeros(sizes)

全0

eye(sizes)

对角为1,其余为0

arange(s,e,step)

从s到e,步长为step

linspace(s,e,steps)

从s到e,均匀分成step份

rand/randn(sizes)

rand是[0,1)均匀分布;randn是服从N(0,1)的正态分布

normal(mean,std)

正态分布(均值为mean,标准差是std)

randperm(m)

随机排列

3.张量的操作

1.加法

import torch
# 方式1
y = torch.rand(4, 3) 
print(x + y)

# 方式2
print(torch.add(x, y))

# 方式3 in-place,原值修改
y.add_(x) 
print(y)
tensor([[1.4521, 0.8000, 1.1564],
        [1.9135, 1.1953, 0.9734],
        [1.6804, 1.0618, 0.2125],
        [0.7221, 0.6130, 1.7743]])
tensor([[1.4521, 0.8000, 1.1564],
        [1.9135, 1.1953, 0.9734],
        [1.6804, 1.0618, 0.2125],
        [0.7221, 0.6130, 1.7743]])
tensor([[1.4521, 0.8000, 1.1564],
        [1.9135, 1.1953, 0.9734],
        [1.6804, 1.0618, 0.2125],
        [0.7221, 0.6130, 1.7743]])

2.索引操作 

需要注意的是:索引出来的结果与原数据共享内存,修改一个,另一个会跟着修改。如果不想修改,可以考虑使用copy()等方法

import torch
x = torch.rand(4,3)
# 取第二列
print(x[:, 1]) 
tensor([0.6358, 0.4822, 0.5770, 0.6834])
y = x[0,:]
y += 1
print(y)
print(x[0, :]) # 源tensor也被改了了
tensor([1.1131, 1.6358, 1.4098])
tensor([1.1131, 1.6358, 1.4098])

PyTorch中的 Tensor 支持超过一百种操作,包括转置、索引、切片、数学运算、线性代数、随机数等等,具体使用方法可参考官方文档

jupyter notebook运行结果如图:

可进行单块运行,比较方便,推荐使用。


 

总结

以上是本次学习的相关整理内容,简单学习了pytorch的相关简介与基础操作。之后将继续深入学习,利用pytorch编写相关程序及深度学习算法,实现更多操作内容。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值