li三河
码龄10年
关注
提问 私信
  • 博客:180,922
    社区:20
    180,942
    总访问量
  • 101
    原创
  • 2,287,732
    排名
  • 24
    粉丝
  • 0
    铁粉

个人简介:图像算法、3D开发、深度学习

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2014-11-09
博客简介:

qq_23123181的博客

查看详细资料
个人成就
  • 获得48次点赞
  • 内容获得5次评论
  • 获得303次收藏
  • 代码片获得1,800次分享
创作历程
  • 4篇
    2023年
  • 88篇
    2022年
  • 8篇
    2021年
  • 1篇
    2017年
成就勋章
TA的专栏
  • 深度学习算法总结
    7篇
  • Pytorch
    6篇
  • C++
    15篇
  • 算法优化汇总
    7篇
  • 系统工具总结
    13篇
  • git管理学习
    3篇
  • 数据结构和算法
    10篇
  • 机器学习算法汇总
    1篇
  • 软件架构设计
  • apollo模块研读
    1篇
  • 项目总结
  • python知识学习
    5篇
  • openmp学习篇章
    3篇
  • 3D算法处理
    3篇
  • 图像算法
    24篇
兴趣领域 设置
  • 人工智能
    opencvcaffetensorflowmxnetpytorch聚类集成学习迁移学习分类回归
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

1、sklearn模型保存

【代码】1、sklearn模型保存。
原创
发布博客 2023.07.11 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

(三)旋转矩阵和旋转向量的相互转化

通过分析可知,度数为正值,沿着对应轴逆时针进行,度数为负值,沿着对应轴顺时针进行。如代码所示中:(原位置先绕X轴旋转90度,再绕Y轴旋转90度)在2中给的角度值为90度,接下来测试的角度值为-90度。蓝色是先绕X轴旋转,再绕Y轴旋转。输出值: (角度是弧度)左乘是固定坐标系进行操作。1、旋转矩阵转旋转向量。绿色是绕X轴的数据。
原创
发布博客 2023.06.09 ·
1052 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

(四)pytorch中激活函数

2)relu单元在训练中将不可逆转的死亡,导致数据多样化的丢失。如果学习率设置的太高,可能会发现网络中40%的神经元都会死掉(在整个训练集中这些神经元都不会被激活)。在神经网络中,隐含层的激活函数,最好选择Relu。1)relu的导数在大于0时,梯度为常数,不会导致梯度弥散。在小于0时导数为0,当神经元激活值进入小于0,梯度为0,也就是说,这个神经元不会被训练,即稀疏性。Relu是将所有的负值都为零,相反,leakyRelu。绿色曲线为原函数,红色曲线为导函数。
原创
发布博客 2023.01.05 ·
438 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

(十四)C语言杂项

str为局部变量,当传递给函数时,函数不能真正使用str,用的只是str的一个备份,str的值不变。此处str的值仍然为null,malloc分配的内存地址并没有赋给str。要输出某个值的地址写成printf("%x",&变量);若变量为指针时,则应写成printf("%x",指针)指针变量存储的是地址,所以在函数调用的时候能否将指针变量传递给函数。C语言中要输出地址需要16进制的方式输出,需要用%x格式。1、printf()输出某个值的地址。2、C语言中指针变量如何向函数中传递。
原创
发布博客 2023.01.04 ·
255 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

openmp交叉编译

target:这个选项只有在建立交叉编译环境的时候用到,正常编译和交叉编译都不会用到。他用build主机上的编译器,编译一个新的编译器(binutils, gcc,gdb等),这个新的编译器将来编译出来的其他程序将运行在target指定的系统上。程序所执行的主机,因为绝大多数是本机编译,本机执行,所以这个值就等于build。只有交叉编译的时候(也就是本机编译,其他系统机器执行)才会build和host不同。build: 执行代码编译的主机,一般指自己的主机系统。host: 编译出来的。
原创
发布博客 2022.12.08 ·
1139 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

(七)标签分配

标签分配策略,是一个预定义的规则,能够分配每个anchor的正负,也就是一个gt会对应多个anchor。1、ATSS2、OTA: Optimal Transport Assignment for Object Detection3、Freeanchor、AutoAssign 等通过使用预测的 confidence score 来动态分配正负
原创
发布博客 2022.12.07 ·
1452 阅读 ·
0 点赞 ·
0 评论 ·
9 收藏

视频动作算法任务

时序动作检测:任务的输入是一个未经裁剪的视频,即在这个视频里有些帧是没有动作发生的,因此需要检测出动作开始和结束的区间,并判断区间内动作的类别。即输入未经裁剪的视频序列,得到动作出现的区间和对应的类别。时空动作检测:相比于时序动作检测略有不同,时空动作检测不仅需要识别动作出现的区间和对应的类别,还要在空间范围内用一个包围框标记出人物的空间位置。动作识别:是对每个输入视频进行分类,识别出视频中人物做出的动作。时序动作分割:任务的输入是一个未经裁剪的视频,输出是视频中每一帧的动作类别。
原创
发布博客 2022.10.18 ·
422 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

(六)交叉编译aarch64下ncnn框架并进行模型转化

交叉编译aarch64下ncnn框架并进行模型转化
原创
发布博客 2022.07.16 ·
522 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

(十三)valgrind在ARM上交叉编译和内存泄漏检测

valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。1、下载valgrind-3.17.02、交叉编译修改configure: armv7*) 改成 armv7*|arm)然后进行make -j8编译和安装make install。/gzy_mnt/valgrind目录下生成好的bin、include、lib、libexec、share目录3、运行/gzy_mnt是挂载在arm板子上的共享目录。我们对NanoDet的MNN进行内存泄露检测。在目录/gzy_mnt/valgrin
原创
发布博客 2022.06.07 ·
2256 阅读 ·
1 点赞 ·
0 评论 ·
12 收藏

(四)pytorch中张量数据转化关系

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.numpy().tolist() # list -> numpy.
原创
发布博客 2022.05.31 ·
168 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

(十二)解决nvidia中glxserver_nvidia不能加载问题

明明已经正常安装nvidia驱动,但是关闭屏幕后(例如挂起,或者重新启动后),出现nvidia lost。nvidia无法启动X的问题。1、使用dmesg可以查看到,使用nvidia-bug-report.sh进行得到日志2、在当前文件夹下获取日志,nvidia-bug-report.log[ 5.283] (II) LoadModule: "glxserver_nvidia"[ 5.283] (WW) Warning, couldn't open module glxser
原创
发布博客 2022.05.16 ·
2779 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

(十一)vscode代码格式化配置

1、在vscode界面,按"ctrl+"进行设置界面,搜索Format2、设置保存文件时,按格式对代码排版3、向下拉,在框内输入Google,按照谷歌代码格式排版4、 使用方式,打开c++代码文件当文件保存时,自动按照谷歌代码风格进行格式化代码。或者进行shift+ctrl+i进行保存。...
原创
发布博客 2022.04.21 ·
14287 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

(三)ubuntu20.04搭建gitlab服务器

1、安装依赖sudo apt install ca-certificates curl openssh-server postfix对于postfix的安装,域名后续可以更改2、安装gitlabcd /tmpcurl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh可以随意检查下载的脚本,执行下面可找到该脚本的托管脚本less /tmp/script.deb
原创
发布博客 2022.04.16 ·
7904 阅读 ·
3 点赞 ·
0 评论 ·
36 收藏

(三)pytorch中损失函数

损失函数可以分为三类:回归损失函数、分类损失函数和排序损失函数1、L1 loss计算实际值和预测值之间的绝对值之和的平均值。y表示标签,pred表示预测值。(回归问题),当目标变量的分布具有异常值时,即与平均值相差很大的值,它被认为对异常值具有很好的鲁棒性。import torchdef lossTest(): input=torch.randn(3,5,requires_grad=True) target=torch.randn(3,5) mae_loss=
原创
发布博客 2022.04.11 ·
5899 阅读 ·
4 点赞 ·
0 评论 ·
25 收藏

(六) 量化研究

1、基本概念量化就是将浮点型实数量化为整型数(FP32->INT8)反量化就是将整型数转化为浮点型实数(INT8->FP32)2、量化操作比如有一个FP32的浮点型数字x=5.234,将这个数变为整型。这个数字乘以一个量化系统s,比如s=100,那么量化后的值,然后对这个数字进行四舍五入(round操作)整型INT8的范围是[-128,127],无符号INT8的范围也才[0,255]。所以需要进行截断,假设INT8范围是,那么上述可以变为:这样计算方式不对
原创
发布博客 2022.04.07 ·
2114 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

(十三) C++中虚函数的作用和多态

C++中的虚函数作用主要是实现多态的机制。基类定义虚函数,子类可以重写该函数;在派生类中对基类定义的虚函数进行重写时,需要在派生类中声明该方法为虚方法。当子类重新定义了父类的虚函数后,当父类的指针指向子类对象的地址时,[即B b; A a=&b;]父类指针根据赋给它的不同子类指针,动态的调用子类的该函数,而不是父类的函数(如果不使用virtual,请看后面★*),且这样的函数调用发生在运行阶段,而不是发生在编译阶段,称为动态编译。而函数的重载可以认为是多态,只不过静态的。注意,非虚函数静态联编,效率
原创
发布博客 2022.04.06 ·
140 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

(二)pytorch中算法分析和总结

1、卷积算子 torch.nn.Conv2d(1)原理:假设输入图像input尺寸为4x4,元素矩阵为:卷积核kernel尺寸为3x3,元素矩阵为:步长strides =1,填充padding=0,即i=4,k=3,s=1,p=0,则按照卷积计算公式,输出图像output的尺寸为2x2。(2)代码import torchimport numpy as npimport cv2import os# convdef conv(): randed_data=np
原创
发布博客 2022.04.02 ·
3513 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

(十) yaml-cpp编译和使用

1、版本选择建议使用yaml-cpp-0.6.0这个版本。它有以下特点:1)只需要c++112)去掉对boost等其他的依赖,干净下载链接:https://github.com/jbeder/yaml-cpp/releases/tag/yaml-cpp-0.6.02、编译和安装将yaml-cpp装在指定目录下,工程下有cmakelists.txt文件,新建build,然后cmakecmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_P
原创
发布博客 2022.03.21 ·
4680 阅读 ·
0 点赞 ·
2 评论 ·
12 收藏

(一) pytorch中API总结

1、unsqueeze(增维度)和squeeze(减维度)函数分析import torchimport numpy as npimport matplotlib.pyplot as plta = torch.arange(0,6).view(2,3) #tensor([[0, 1, 2],[3, 4, 5]]) 维度:(2,3) print(a) #在第二维增加一个维度b= a.unsqueeze(1)#tensor([[[0, 1, 2]],[[3, 4
原创
发布博客 2022.03.10 ·
1626 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

(九)在vscode中更改anaconda运行环境

快捷键ctrl+p,在弹出的框框中,输入>select interpreter来选择相应的Anaconda环境。
原创
发布博客 2022.03.04 ·
1031 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏
加载更多