pytorch(introduction)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ASZYRZZL-1643209337710)(image/1.png)]
应用:
图片分类
物体检测与分割(检测具体像素点)
样式迁移(背景变换)
人脸合成
文字生成图片
文字生成
无人驾驶(计算机视觉)
安装pytorch
首先进行anaconda的安装
然后安装pytorch会比较卡,转化为清华镜像源
然后莫名其妙的不行了
有个.condarc
的文件中
加入如下代码:
注意,是http,不是https(被折磨了好久)
show_channel_urls: true
default_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- defaults
跟着知乎上李沐(26 封私信 / 6 条消息) Windows下安装CUDA和Pytorch跑深度学习 - 知乎 (zhihu.com)进行安装
前面都非常顺利,到了运行实例的时候出现了:CUDA out of memory
网上搜索教程知道:明明显示free的空间比较大,但是就是无法运行
在命令行中输入navidia-smi
惊喜的发现,不是内部或者外部命令
需要在环境变量的path中加入C:\Program Files\NVIDIA Corporation\NVSMI
重新打开即可
手动输入
taskkill -PID 进程号 -F
显示:已终止ID为“进程号”的进程
再重新查看GPU的情况
发现已经可以,换了一个报错:RuntimeError: DataLoader worker
batch_size
改小一点貌似就ok,但是电脑带不动,直接反手死机了
数据操作与数据预处理
N维数组
0-d(标量):一个类别
1-d(向量):一个特征向量
2-d(矩阵):一个样本-特征矩阵
3-d(RGB图片):宽*高*通道
4-d(RGB图片批量)3-d*批量
5-d(一个视频批量)
创建数组:形状,数据类型,数据的值
访问元素:一个元素[1,2]
,一行[1,:]
,一列[:,1]
,子区域[1:3,1:]
,子区域
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahp3ZQmo-1643209337712)(image/2.png)]
注意
- 导入的时候是torch
- shape访问张量的形状和元素总数(numl)
- 改变形状而不改变元素数量和元素值,用
reshape
- zeros,ones全0全1
- 通过python列表来决定有几层
- 常见的算术运算符(+,-,*,/,**)升级为元素运算,可以exp运算
- 张量之间连接(cat),参数
dim
按照哪一维堆叠起来 - X==Y,构造M*N的布尔张量
X.sum()
对所有张量求和- 广播机制:形状不同 维度一样(直接两个维度取max相加)
- 指定索引来将元素写入矩阵
- numpy可以与tensor相互转化
线性代数
∣ ∣ a ∣ ∣ 2 = [ ∑ i = 1 m a i 2 ] 1 2 ||a||_2=[\sum\limits_{i=1}^ma_i^2]^{\frac{1}{2}} ∣∣a∣∣2=[i=1∑mai2]21
点乘 a T b = ∑ i a i b i a^Tb=\sum_ia_ib_i aTb=∑iaibi
矩阵乘法:对空间进行扭曲
范数: c = A b h e n c e ∣ ∣ c ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ∣ ∣ b ∣ ∣ c=Abhence||c||\le||A|| ||b|| c=Abhence∣∣c∣∣≤∣∣A∣∣∣∣b∣∣
矩阵范数:最小的满足的上面公式的值
Frobenius范数: ∣ ∣ A ∣ ∣ F r o b = [ ∑ i j A i j 2 ] 1 2 ||A||_{Frob}=[\sum\limits_{ij}A_{ij}^2]^\frac{1}{2} ∣∣A∣∣Frob=[ij∑Aij2]21
对称矩阵,反对称( A i j = − A j i A_{ij}=-A_{ji} Aij=−Aji)
正定 ∣ ∣ x ∣ ∣ 2 = x T x ≥ 0 g e n e r a l i z e s t o x T A x ≥ 0 ||x||^2=x^Tx\ge0 \ generalizes\ \ to \ x^TAx \ge 0 ∣∣x∣∣2=xTx≥0 generalizes to xTAx≥0
正交矩阵,置换矩阵:所有行相互正交,满足 U U T = I UU^T=I UUT=I
特征向量,特征值: A x = λ x Ax=\lambda x Ax=λx 不被矩阵改变方向的向量 对称矩阵总是可以找到特征向量
( A i j = − A j i A_{ij}=-A_{ji} Aij=−Aji)
正定 ∣ ∣ x ∣ ∣ 2 = x T x ≥ 0 g e n e r a l i z e s t o x T A x ≥ 0 ||x||^2=x^Tx\ge0 \ generalizes\ \ to \ x^TAx \ge 0 ∣∣x∣∣2=xTx≥0 generalizes to xTAx≥0
正交矩阵,置换矩阵:所有行相互正交,满足 U U T = I UU^T=I UUT=I
特征向量,特征值: A x = λ x Ax=\lambda x Ax=λx 不被矩阵改变方向的向量 对称矩阵总是可以找到特征向量