pytorch 常见函数

概率分布

torch.randn_like() 函数:返回一个与 input 形状相同的服从 N(0,1) 的张量

GPU 相关

查看 torch 的版本

1
torch.__version__

查看 cuda 是否 available:

1
torch.cuda.is_available()

查看 GPU 数量

1
torch.cuda.device_count()

  

数据读入

从文件中读取数据是必要的操作.  

从文件中读取

遍历数据每一行

判断字符串是否能转换成是数字

  

 

 

构建矩阵

  

基本操作

这里是一些常见的对于 tensor 的操作,如果手写的话速度会很慢而且不方便.   

防止类型转换错误

赋值

输出第 i 列 / 行

改变尺寸

拼接

dim = 0: 上下拼接 x 和 z  
dim = 1: 左右拼接 x 和 z

矩阵乘法  

矩阵对应元素相乘

将 tensor 变量转为数值变量

矩阵每个位置乘/加数字

numpy 和 torch 共享地址

numpy 转为 tensor

普通矩阵转为 tensor  

压缩数组与解压数组

dim = 0: 变为 (1, n)  

dim = 1: 变为 (n, 1)  

交换/重排矩阵的维度

 

将 numpy 数据保存到文件中   

  

保存网络框架

1
2
torch.save(net, './net'
net = torch.load('./net')

  

梯度计算

手写反向传播过程是深度学习中最困难的过程之一,极易出错而且不好写。

pytorch 威力最大之处就是提供自动计算梯度的功能,可以极大方便反向传播的构建。

追踪梯度

将变量从计算图中移除

  

深度学习框架

Pytorch 提供了可以直接调用的深度学习框架,速度和准确率都很高.    

损失函数

CrossEntropyLoss 

交叉熵函数,这里注意训练样本不能用 one - hot 表示,要直接存入结果

 

参数初始化

高斯初始化

这里 mean 是正态分布均值,std 是正态分布标准差

1
torch.nn.init.normal_(self.hidden.weight, mean = 0, std = 1

均匀分布

a,b 分别为均匀分布的下界和上界

Xavier均匀分布初始化  

Xavier正态分布初始化

kaiming正态分布初始化

原则上只能配合 relu 函数使用

 

正则化

为了防止过拟合,可以加入 L2 正则化:

框架默认是不进行正则化的,这里要正则化的矩阵是 hidden 矩阵,lambda=wd

 

 

 

回归问题

基本框架:

super(Net,self) 意味着继承 torch.nn.Module 中的属性并在起之上进行修改. 

调用函数:

  

CNN 

基础知识

设原图为 (n,n), 过滤器为 (f,f), 填充为 p, 步长为 s

则有新图 o=n+2pfs+1, 且一般过滤器长度为奇数.    

流程:卷积 -> 激活函数激活 -> 池化 -> 下一轮卷积......    -> 平展为向量并连向全连接神经网络

基本框架

  

例:吴恩达第 3 次课程作业.  

训练数据正确率达到 99% 的时候测试准确率达到了 84%,对于二维图片的识别率非常好.  

 

 

posted @   guangheli  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示