
Pytorch
文章平均质量分 61
pytorch
DLANDML
分享一些正在做的项目
目前正在学习机器学习和深度学习相关知识
目前是一名算法工程师。
CV是我研究生阶段的研究课题,开启了我的算法之路。
NLP是工作需要所学,拓展了我的算法思路与视野,使我对CV有了另一层面的认识。
SLAM亦是工作需要所学,拓展了我的算法落地思想,加深了我对理论落地的理解。
展开
-
PyTorch中的contiguous解读
本文讲解了pytorch中contiguous的含义、定义、实现,以及contiguous存在的原因,非contiguous时的解决办法。并对比了numpy中的contiguous。contiguous 本身是形容词,表示连续的,关于 contiguous,PyTorch 提供了is_contiguous、contiguous(形容词动用)两个方法 ,分别用于判定Tensor是否是 contiguous 的,以及保证Tensor是contiguous的。PyTorch中的is_contiguous是原创 2022-01-25 14:00:20 · 25211 阅读 · 1 评论 -
pytorch张量索引
tens = tensor([[ 101, 146, 1176, 21806, 1116, 1105, 18621, 119, 102, 0, 0, 0, 0], [ 101, 1192, 1132, 1136, 1184, 146, 1354, 1128, 1127, 117, 1463, 119, 102], [ 101, 6816, 1905.原创 2021-11-25 21:44:32 · 74673 阅读 · 0 评论 -
pytorch中squeeze()和unsqueeze()函数介绍
一、unsqueeze()函数1. 首先初始化一个a可以看出a的维度为(2,3)2. 在第二维增加一个维度,使其维度变为(2,1,3)可以看出a的维度已经变为(2,1,3)了,同样如果需要在倒数第二个维度上增加一个维度,那么使用b.unsqueeze(-2)二、squeeze()函数介绍1. 首先得到一个维度为(1,2,3)的tensor(张量)由图中可以看出c的维度为(1,2,3)2.下面使用squeeze()函数将第一维去掉可见,维度已经变原创 2021-11-24 21:05:13 · 74014 阅读 · 0 评论 -
Pytorch搭建Retinaface人脸检测与关键点定位平台
学习前言一起来看看Retinaface的Pytorch实现吧。在这里插入图片描述什么是Retinaface人脸检测算法Retinaface是来自insightFace的又一力作,基于one-stage的人脸检测网络。同时开源了代码与数据集,在widerface上有非常好的表现。源码下载https://github.com/bubbliiiing/retinaface-pytorchRetinaface实现思路一、预测部分1、主干网络介绍Retinaface在实.原创 2021-11-24 21:02:16 · 75926 阅读 · 0 评论 -
脸部关键点检测(数据读取和处理)
参考资料:数据读取和处理官网教程对于初学者来说,编程遇到的头一个问题可能就是不知道怎么编写数据读取的代码以输入网络。本文主要讲解的就是编写该部分代码的常见方法和编程思路。内容基本是官方文档的翻译与总结。数据下载链接下载之后保存在data/faces路径下。里面一共有69张脸部图片,有一个csv文档作为金标准用于保存所有的关键点,每一张脸部图像有68个关键点。打开csv文件可以看到该文档以表格的形式保存着所有图片的文件名和对应关键点的坐标。单张图片和标签的读取在进入原创 2021-11-24 20:47:10 · 75126 阅读 · 0 评论 -
图片二分类在VGG16基础上finetune
# -*- coding: utf-8 -*-"""Created on ${DATE} ${TIME}@author: """import torchimport torchvision#preparemodel1_vgg16 = torchvision.models.vgg16(pretrained=True)#设置网络参数#读取输入特征的维度num_fc = model1_vgg16.classifier[6].in_features#修改最后一层的输出维度,即分类数.原创 2021-11-24 20:30:42 · 73580 阅读 · 0 评论 -
PyTorch:The “freeze_support()“ line can be omitted if the program is not going to be frozen
PyTorch错误:The “freeze_support()” line can be omitted if the program is not going to be frozen to produce an executable.错误代码如下:RuntimeError: An attempt has been made to start a new process before the current process has finished its boo原创 2021-07-16 15:49:07 · 113309 阅读 · 0 评论 -
Pytorch torch.Tensor.detach()方法的用法及修改指定模块权重的方法
detachdetach的中文意思是分离,官方解释是返回一个新的Tensor,从当前的计算图中分离出来需要注意的是,返回的Tensor和原Tensor共享相同的存储空间,但是返回的 Tensor 永远不会需要梯度import torch as ta = t.ones(10,)b = a.detach()print(b)tensor([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])那么这个函数有什么作用?–假如A网络输出了一个Tensor类型的变原创 2021-07-12 16:34:31 · 113496 阅读 · 0 评论 -
pytorch-模型转换与算子读取
目录一、pth转换onnx,并验证转换模型二、模型参数统计三、pth模型参数读取一、pth转换onnx,并验证转换模型当使用用tensorRT加速的时候,需要将pytorch模型转onnx模型。下面将介绍pytorch的pth模型如何转换成onnx,并验证转换模型。先给官网链接:https://pytorch.org/docs/stable/onnx.html咱们直接用一段代码来看:import os.path as ospimport numpy as np.原创 2021-02-18 11:24:25 · 20041 阅读 · 0 评论 -
pytorch-模型压缩与剪枝
PyTorch框架提供了一个方便好用的trick:开启半精度。直接可以加快运行速度、减少GPU占用,并且只有不明显的accuracy损失。之前做硬件加速的时候,尝试过多种精度的权重和偏置。在FPGA里用8位精度和16位精度去处理MNIST手写数字识别,完全可以达到差不多的准确率,并且可以节省一半的资源消耗。这一思想用到GPU里也是完全可以行通的。即将pytorch默认的32位浮点型都改成16位浮点型。只需:model.half()注意1:这一步要放在模型载入GPU之前,即放到model..原创 2021-02-18 09:29:29 · 134765 阅读 · 8 评论 -
pytorch-多卡GPU训练
本文记录cpu张量、cuda张量、list和array之间的转换关系。import torchimport numpy as np# int -> tensor -> inta = torch.Tensor(1)b = a.item() # list -> tensor(cpu)l0 = [1, 2, 3]t = torch.Tensor(l0) # tensor(cpu) -> numpy -> lista = t.numpy()l1 = t..原创 2021-02-17 22:29:24 · 19349 阅读 · 1 评论 -
tensorbord可视化-pytorch
TensorBoard是一款优秀的基于浏览器的机器学习可视化工具。之前是tensorflow的御用可视化工具,由于tensorboard并不是直接读取tf张量,而是读取log进行可视化。所以,其他框架只需生成tensorboard可读的log,即可完成可视化。之前,我一直用visdom做pytorch可视化,也是非常易用。不过现在跟tensorboard对比,我还是更推荐tensorboard。visdom相比tensorboard只有一个优点,那就是自动实时刷新。而tensorboard无论...原创 2021-02-17 22:26:31 · 128893 阅读 · 0 评论 -
pytorch-gather函数和permute()函数
目录一、gather()函数1. 拿到一个张量:2. 生成一个查找规则:3. 根据维度dim开始查找:二、permute()函数结论一、gather()函数首先,给出官方文档的链接:https://pytorch.org/docs/stable/generated/torch.gather.html?highlight=gather#torch.gather然后,我用白话翻译一下官方文档。gather,顾名思义,聚集、集合。有点像军训的时候,排队一样,把队伍.原创 2021-02-17 22:21:49 · 128960 阅读 · 0 评论 -
pytorch-中间层可视化
目录1. 标定目标层位置2. 把模型在某层截断在inference阶段,整个模型会load到GPU上,进行端到端的计算,通常只会给你输出一个最终结果。如果想要获取模型的中间层输出,则需要在计算前标定目标层位置(通过forward返回),或者把模型在那层截断(当作一个小模型)输出。本文介绍2种获取模型中间层输出结果的方法:1. 标定目标层位置def forward(self, x): layer1_out = self.layer1(x) layer2_out =..原创 2021-02-17 22:15:01 · 129608 阅读 · 1 评论 -
pytorch-张量维度size和元素个数numel
1.tensor.size(), 查看张量的维度信息import torcha = torch.tensor([[ 0.0349, 0.0670, -0.0612, 0.0280, -0.0222, 0.0422],[-1.6719, 0.1242, -0.6488, 0.3313, -1.3965, -0.0682],[-1.3419, 0.4485, -0.6589, 0.1420, -0.3260, -0.4795],[-0.0658, -0.1490, -0.1684, 0.原创 2021-02-17 22:09:38 · 112738 阅读 · 0 评论 -
pytorch-张量重构view
view在pytorch中是用来改变张量的shape的,简单又好用。pytorch中view的用法通常是直接在张量名后用.view调用,然后放入自己想要的shape。如tensor_name.view(shape)Example:1. 直接用法: >>> x = torch.randn(4, 4) >>> x.size() torch.Size([4, 4]) >>> y = x.view(16) >>> .原创 2021-02-17 22:05:53 · 128075 阅读 · 0 评论 -
【pytorch】RuntimeError: Integer division of tensors using div or / is no longer supported
pytorch升级到1.6.0,发现tensor和int之间的除法不能直接用'/'。明明1.5.0都是可以用的-_-。这种邻代兼容性有点值得吐槽。对于这个问题直接看官方文档就可以了:https://pytorch.org/docs/stable/generated/torch.div.html或者,看我的解决方案:对于tensor A和整数n之间的除法:result = A / n # not supported in torch 1.6.0# solutionresult原创 2021-02-17 22:02:11 · 110150 阅读 · 0 评论 -
pytorch-构建自己的dataset类
如今,与keras 、tf相比,pytorch高效的资源利用率,越来越多的Aier应用pytorch。我来讲讲初入pytorch最重要的东西:dataset网上有很多介绍pytorch dataset类的文章,不过大多数都是讲解某一类任务的数据集模型建立。不太具有泛化性,本文将提出一个通用的数据集接口解决技巧,供大家参考。实验环境:python==3.7.3ubuntu==16.04pytorch==1.1.0dataset类为什么dataset是初入pytorch最重要的东西?原创 2021-02-17 21:47:47 · 126115 阅读 · 7 评论