Pytorch
文章平均质量分 93
-柚子皮-
╰☆ゞ不染纤尘,不忘初心ゞ☆╮
展开
-
深度学习:batch_size和学习率 及如何调整
-柚子皮-学习率衰减import torch.optim as optimfrom torch.optim import lr_scheduler# 训练前的初始化optimizer = optim.Adam(net.parameters(), lr=0.001)#学习率衰减scheduler = lr_scheduler.StepLR(optimizer, 10, 0.1) # # 每过10个epoch,学习率乘以0.1# 训练过程中for n in n_epoch: ...原创 2020-10-21 00:17:08 · 34951 阅读 · 2 评论 -
PyTorch:可视化TensorBoard
PyTorch 1.2.0 版本开始。安装及更新pip3install --upgrade torch torchvisionpip3 install tensorboardBugs:1 AttributeError: module 'tensorflow._api.v1.io' has no attribute 'gfile'出现这个问题的根本原因在于pytorch调了Tensorflow,最后由Tensorflow报出的错误,tensorflow的新版本与旧版本的不兼容。..原创 2020-10-29 00:03:05 · 2148 阅读 · 1 评论 -
PyTorch:输出层和损失函数loss function
输出和目标的维度是(batch,C),batch是样本数量,C是类别数量,对于每一个batch的C个值,对每个值求sigmoid到0-1之间,所以每个batch的C个值之间是没有关系的,相互独立的,所以之和不一定为1。,输出和目标的维度是(batch,C),batch是样本数量,C是类别数量,每一个C之间是互斥的,相互关联的,对于每一个batch的C个值,一起求每个C的softmax,所以每个batch的所有C个值之和是1,哪个值大,代表其属于哪一类。Note: 这里加view[两个神经元算loss时。原创 2020-10-21 00:16:47 · 2533 阅读 · 0 评论 -
PyTorch:模型推理加速之onnx
Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互。ONNX的规范及代码主要由微软,亚马逊 ,Facebook 和 IBM 等公司共同开发,以开放源代码的方式托管在Github上。原创 2021-01-18 20:38:53 · 3508 阅读 · 0 评论 -
PyTorch:模型和数据的save和load
上面“保存加载整个模型”加载的 net.pt 其实一个字典,通常包含如下内容:网络结构:输入尺寸、输出尺寸以及隐藏层信息,以便能够在加载时重建模型。模型的权重参数:包含各网络层训练后的可学习参数,可以在模型实例上调用 state_dict() 方法来获取,比如只保存模型权重参数时用到的 model.state_dict()。优化器参数:有时保存模型的参数需要稍后接着训练,那么就必须保存优化器的状态和所其使用的超参数,也是在优化器实例上调用 state_dict() 方法来获取这些参数。原创 2020-10-29 00:02:51 · 6133 阅读 · 3 评论 -
PyTorch:模型训练-分布式训练
-柚子皮-不同数据并行方案(parameter server 模式和 allreduce 模式,同步更新和异步更新)的详细介绍。分布式算法原理Parameter server 模式以参数????为同步基础,我们可以采用 master-slave 的同步模式:将 node 分成两种角色:parameter server(ps) 负责维护一份最新的参数 ,worker 负责利用从 ps 读到的最新参数计算出梯度(forward 和 backprop),并对 ps 发送梯度和参数更新请求。这被原创 2021-01-10 23:36:16 · 1652 阅读 · 0 评论 -
PyTorch:模型训练、评估和预测
模型训练、评估和预测。原创 2020-10-21 00:16:20 · 16083 阅读 · 1 评论 -
PyTorch:模型训练-parameters和optimizer
迭代打印model.named_parameters()将会打印每一次迭代元素的名字和paramparam.requires_grad=False # 顺便改下属性。原创 2020-10-20 23:39:40 · 8805 阅读 · 2 评论 -
PyTorch:nn模型层container
命名方式 {自动识别名称如bn_layers}.0.weight。原创 2020-10-20 23:41:19 · 897 阅读 · 1 评论 -
PyTorch:nn模型层+nn方法
embedding + rnn + cnn等原创 2020-10-20 23:38:23 · 1592 阅读 · 1 评论 -
PyTorch:全局函数
求tensor中某个dim的前k大或者前k小的值以及对应的index。(1)mean为张量,std为张量。(2)mean为标量,std为标量。(3)mean为标量,std为张量。(4)mean为张量,std为标量。# 生成一个4*3*2维的张量。原创 2020-10-29 00:02:24 · 693 阅读 · 1 评论 -
PyTorch:tensor-数学API
-柚子皮-乘法API1. 二维tensor相乘:torch.mma是 [m, k],b是[k, n],结果是 [m, n]c = torch.mm(a, b)2. 三维tensor相乘torch.bmm只能用于三维tensor相乘,这个函数不支持广播,也就是第一维必须相同,另外两维符合矩阵相乘法则c = torch.bmm(a, b)3. 任意多维tensor相乘:torch.matmul支持广播;当两个都是一维时,表示点积c = torch.matmul(a, b)利用这原创 2020-10-22 23:04:54 · 2108 阅读 · 2 评论 -
PyTorch:tensor-张量维度操作(拼接、维度扩展、压缩、转置、重复……)
张量维度操作(拼接、维度扩展、压缩、转置、重复……)-柚子皮-torch.cat(seq, dim=0, out=None) 多个tensor拼接在指定的维度dim上对序列seq进行连接操作。参数:seq (sequence of Tensors) - Python序列或相同类型的张量序列dim (int, optional) - 沿着此维度连接张量out (Tensor, optional) - 输出参数例子:x = torch.randn(2, 3)x-0.5866 -0.原创 2020-10-22 23:04:20 · 56212 阅读 · 1 评论 -
PyTorch:tensor-基本操作
相同点:tensor.data和tensor.detach() 都是变量从图中分离,都是“原位操作 inplace operation”,都是变成require s_grad = False。不同点:(1).data 是一个属性,.detach()是一个方法;(2).data 是不安全的,.detach()是安全的。原创 2020-10-28 22:09:34 · 6008 阅读 · 2 评论 -
PyTorch:向量相似度度量、距离度量
两个张量之间的欧氏距离即m*e和n*e张量之间的欧式距离理论分析算法实现import torchdef euclidean_dist(x, y): """ Args: x: pytorch Variable, with shape [m, d] y: pytorch Variable, with shape [n, d] Returns: dist: pytorch Variable, with shape [m, n]...原创 2021-04-22 14:49:33 · 5506 阅读 · 0 评论 -
PyTorch:数据读取2 - Dataloader
Dataloader的处理逻辑是先通过Dataset类里面的函数获取单个数据,然后组合成batch,再使用collate_fn所指定的函数对这个batch做一些操作(比如每个batch中实际lengths,padding,cuda之类的)。因为dataloader是有batch_size参数的,我们可以通过自定义来设计数据收集的方式,意思是已经通过上面的Dataset类中的函数采样了batch_size数据,以一个包的形式传递给collate_fn所指定的函数。示例1:通过collate_fn进行解包。原创 2020-09-11 10:10:51 · 6014 阅读 · 1 评论 -
PyTorch:数据读取1 - Datasets和TensorDataset
PyTorch提供了一个工具函数。通过这个类,我们可以让数据变成mini-batch,且在准备mini-batch的时候可以多线程并行处理,这样可以加快准备数据的速度。Datasets就是构建这个类的实例的参数之一。DataLoader的使用参考[PyTorch:数据读取2 - Dataloaderdataset必须继承自内部要实现两个函数:一个是__lent__用来获取整个数据集的大小,一个是用来从数据集中得到一个数据片段item。原创 2020-09-10 22:31:02 · 6253 阅读 · 0 评论 -
PyTorch:安装和配置
安装pip安装pip3 install torch torchvisionmacos还需要安装brew install libomp否则出错:ImportError: dlopen(/...torch/_C.cpython-36m-darwin.so, 9): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib...原创 2019-07-13 17:09:56 · 2184 阅读 · 0 评论