自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 [C++技能提升]类型归一

对于类型统一的问题(vector容器只能存放同一种类型的数据,c++17有其他容器可支持不同类型数据的存放),如果把DataType定义为每个参数的地址,则接口内部无法做类型校验(当然也可以再把类型名称也放入到另一个vector容器一起传入,但是这样不美观且操作繁琐)。最近在设计AI调用架构时,想把各个AI功能的接口定义统一并用基类的多态管理起来(即各个AI功能都继承自同一个基类,并重写init、run、release这三个接口),,想过用模板函数的方式声明这三个接口但是不支持virsual重写。

2025-01-25 18:38:36 225

原创 [C++技能提升]插件模式

public:// 纯虚函数// 虚析构函数。

2025-01-25 10:05:46 721

原创 [C++技能提升]类注册

最近在做AI信息在各个平台流转的框架设计,想要设计一种可以灵活扩展、不改变原有代码的框架,了解到了类注册。具体需求是这样的:AI算法在客户本地电脑和云端都有部署,原先AI在这两个平台下的输出格式并不统一,且每个AI功能都有自己的输出格式,导致两个平台下的AI信息无法共享,带来了计算资源的浪费,管理起来也比较混乱,因此需要一种模式将所有AI输出规范起来。

2025-01-24 20:09:03 780

原创 ubuntu远程桌面开启opengl渲染权限

背景:最近用windows的【远程桌面连接】登录ubuntu后(xrdp协议),发现gl环境是集显的,但是本地登录ubuntu桌面后是独显(英伟达),想要在远程桌面上也用独显渲染环境。如果是有 NVIDIA字眼的说明是独显,如果是Mesa字眼的说明是集显。1、本地登录ubuntu桌面 或者 远程ssh应该也行。2、远程桌面配置(如果还是集显环境的话)第一步:启动桌面时设置独立显卡插位。二、给远程桌面开放独显渲染权限。如果遇到失败,则重启系统也行。一、查看是独显还是集显环境。第三步:启动Xorg服务。

2024-12-10 16:00:10 765

原创 视频处理-2D卷积核处理3D时序

2D卷积核处理3D(时序)数据_pseudoconv3d-优快云博客

2024-10-24 15:49:12 412

原创 Accelerator 入门实践

最近因为做实验的数据集较大(百万条中文语句对),传统的单机单卡的速度实在不可恭维,所以笔者转向尝试单机多卡训练。最开始使用的是torch自带的包,引入了很多配置相关的代码,导致原来的代码结构混乱,再加上本身分布式并行计算就难以调试,笔者不得不花费大量时间一点点纠错才跑起来(一把辛酸泪)然后机缘巧合下看到了hugginface开发的accelerate。在阅读完其简介和例子后,心中不经暗想:这也太方便了,事出反常必有妖!不过笔者还是决定付诸实践,看看这库是否如其宣传的那般好用。目前的体验感想,仅一家之言。

2024-10-24 15:41:52 2058 1

原创 ubuntu安装好后网络里面没有有线网卡连接 已解决

装好ubuntu18.04.6后,发现网络配置里面没有有线网卡连接,怀疑是有线网卡驱动没有安装或者是安装好的有线网卡驱动跟硬件不匹配。简单来说,原因就是安装好的网卡驱动跟硬件不匹配。

2024-10-10 14:48:07 835 1

原创 c++ linux通过实现独立进程之间的通信和传递字符串 demo

函数打开命名管道,并以只写模式打开。然后,我们将字符串 "Hello, parent!" 写入管道中,并使用。要通过信号实现独立进程之间的通信和传递字符串,可以使用命名管道(Named Pipe)来实现。函数打开命名管道,并以只读模式打开。最后,我们打印出从子进程接收到的字符串,并使用。定义中指定为 "/tmp/my_pipe"。函数从管道中读取字符串,并将其存储在缓冲区。函数创建了一个命名管道。在上面的示例中,我们首先使用。在子进程中,我们使用。在父进程中,我们使用。

2024-07-23 19:54:25 304

原创 c++跨平台编译宏区分的两种办法

跨平台编译宏的两种方式

2024-06-28 17:15:51 585

原创 glxinfo报错:Error: unable to open display :10

【代码】glxinfo报错:Error: unable to open display :10。

2024-06-11 19:55:53 1229

原创 记录:linux桌面管理基础-X11协议(X window system)

X11是X协议,版本号为11。X协议是专门被设计为linux桌面管理服务的,而linux桌面环境不像windows那样作为系统内核的一部分,作为一个普通程序运行在用户态上。该协议的设计初衷是为了linux的图形界面满足跨平台、跨网络、与具体硬件剥离、同时被多个用户使用的需求,因此该协议被设计成客户端-服务器的模式,即由xserver和xclient组成,xserver和xclient通过网络架构来进行图形接口的通信和执行绘制

2024-06-05 20:48:10 4812

转载 c++程序的编码与字符集的转换(windows/linux)

运行环境编码指的是,执行程序时,操作系统或终端所使用的编码。程序中输出的字符最终要转换为运行环境编码才能显示,否则就会出现乱码。源程序编译后,c++中的字符串常量变成一串字节存放在可执行文件中,内码指的是在可执行文件中,字符串以什么编码进行存放。程序源文件编码是指保存程序源文件内容所使用的编码方案,该编码方案可在保存文件的时候自定义。(可以通过在程序中打印字符串中每个字节的16进制形式来判断程序使用的内码)。所以不特别指定的话,在windows环境下,c++源文件的编码通常为。的c++程序内码,默认使用。

2024-04-07 13:52:23 532

原创 通过位运算集成各子模块

在很多场景中会有很多模块供不同业务方调用(比如各AI功能算法),比如有A、B、C、D四个子模块供4个业务方调用,业务方1需要这四个功能即A+B+C+D,业务方2需要前面三个功能即A+B+C,业务方3只需要A一个功能,业务方4只需要B一个功能。如果给每个业务方分别开一个接口,那么势必会增加代码的重复率,所以最好都使用同一个接口。

2024-03-18 12:03:05 236

原创 算法耗时通用优化技巧 总结

最近在部署AI相关的算法,并要求减少总耗时,从中总结出的一些比较通用的优化技巧。精髓总结一句话就是:在同一时间尽可能充分利用硬件资源。而怎么尽可能充分利用呢,方式就是多线程并行处理。

2024-03-11 19:36:59 520 1

原创 几个环境下的cuda版本

最近在搭建mmdetection3d环境的时候,报了一个cuda相关的错误"CUDA Toolkit 10.2 is unsupported by Numba - 11.2 is the minimum required version",但是我本地安装的cuda版本是11.3,按道理说不会出现检测到10.2的版本。后来弄懂了,原因是讲cuda版本是要分几个环境的。这个相似的问题包括torch.version.cuda版本与本地安装的cuda版本不一致。

2023-10-17 18:13:16 933 1

原创 用C++或者Python解析gltf文件

gltf是类似于stl、obj、ply等常见的3D对象存储格式,它被设计出来是为了便于渲染的数据转换和传输。如果你的浏览器可以连接外网,可以通过。网址打开浏览gltf的3D对象。这里介绍两种语言下从gltf拿到网格的顶点和面片数据。

2023-09-15 16:29:49 1278

原创 解决 win10开机黑屏

步骤四:最后,在任务管理器中点击左上角的“文件”选项,再点击“运行新任务”。在运行窗口中输入“explorer.exe”,并点击“确定”,就可以重新开启桌面进程了。步骤三:在任务管理器中,找到“进程”选项卡。如果需要重启的是“资源管理器”进程,则在列表中选择“Windows资源管理器”。右键单击该进程,并选择“结束任务”。我的具体问题是:开机后其他功能是正常的,只是没有桌面,这个时候只需要手动启动桌面进程即可。步骤二:在安全选项页面,点击“任务管理器”,打开任务管理器。

2023-09-08 09:12:38 270

原创 git push报403错误

最近在gitlab推送的时候(git pull也会),报了403的错误:The requested RUL returned error: 403。同事说是服务器禁止了http源,需要切换源

2023-07-07 17:01:02 1333

原创 解决vs打开dmp没有堆栈信息

代码崩溃定位崩溃的地方,但是用vs打开dmp点击“使用 仅限本机 进行调试”之后没有调用堆栈,在调用堆栈栏只有提示“[可能缺少框架,没有为***.exe加载二进制文件]”。

2023-04-28 14:36:25 2072

原创 CUDA编程模型与GPU硬件结构关系

这篇文章循序渐进主要解决以下疑问:1、CUDA编程模型为什么要这么设计?2、CUDA编程模型与GPU硬件结构的关系?

2023-02-08 20:16:26 860

原创 bug解决:cl.exe is not able to compile a simple test program & 无法打开文件“kernel32.lib“

最近在win10系统上编译阿里的MNN库,工程的编译配置为Cmake+Ninja+VS2017,在powershell里面输入"./schema/generate.ps1"时输出 cl.exe is not able to compile a simple test program

2023-01-13 14:32:07 1372

原创 一文搞清楚opengl、openglES、GLEW、的关系GLUT、FreeGLUT、GLFW

简要来说,opengl、openglES、GLEW这三个都是一个图形库,可以理解为是在显卡驱动上给渲染用户一个统一的API;而GLUT、FreeGLUT、GLFW这三个是用于图形开发的辅助工具库,主要用于创建和管理OpenGL环境、操作窗口等。

2022-09-28 13:27:13 4022

原创 深度学习的简单原理(最适合初学者)

笔者写这篇文章的初衷是帮助即将入门深度学习的亲们,笔者在这个行业混了也小有几年了,希望从几年从业者的角度给新人们发表一下自己的理解,这些理解都是从最简单的原理出发。

2022-03-27 14:45:54 7854

原创 Ubuntu安装配置ftp服务器

1)安装ftp服务器sudo apt install install vsftpd ftp2)配置文件使远程可读写sudo vim vim /etc/vsftpd.conf添加:write_enable=YESutf8_filesystem=YES3)重启ftp服务器systemctl restart vsftpd

2022-03-11 15:53:08 1753

原创 ubuntu远程桌面win10,ubuntu远程桌面ubuntu,win10远程桌面ubuntu(亲测有效)

想要知道怎么远程的,首先得要了解两种远程桌面协议(如果不想了解的,可以直接跳过第一节)。一、远程桌面协议目前主流的实现远程桌面连接的有两种协议:远程帧缓存协议(RFB:Remote Frame Buffer)、远程显示协议(RDP:Remote Display Protocol )。RFB:这个协议实现起来比较简单,传输的主要是桌面的帧缓存信息,基本上支持所有的窗口系统,如果想要详细了解的可以看这篇文章:RFB协议解析_卡索-优快云博客_rfb协议。目前主要针对这个协议采用的服务是VN

2022-03-11 15:32:07 9327 1

原创 程序“编译/运行“错误分析原理

本篇文章从宏观上能让你学会这样一些大致原理:操作系统架构、程序从编写到编译运行经历的过程、可执行文件内容;并且能解决你这样一些疑问:为什么应用程序不能兼容运行在不同的操作系统上?安卓手机上的应用程序为什么就不能在同是linux内核的pc端上跑?为什么有些程序编译的时候对编译器版本有要求?为什么操作系统升级之后某些库或者应用就用不了了呢?不同种类的编译器编译出的二进制库可以相互链接吗?;最重要的是能让你学会分析解决程序从编写到编译运行过程中遇到的绝大多数问题。一、操作系统架构操作系统架...

2021-11-15 20:55:23 943

原创 分类中交叉熵损失函数的推导

一般我们在做分类任务中会在模型的最后加入一层softmax去预测样本对于每个类别的概率,然后通过交叉熵损失函数去计算loss,但是交叉熵损失函数为什么能让模型work呢?为什么计算交叉熵损失函数时要把样本标签变成一个one-hot向量呢?下面我们就来讨论一下。 首先我们来描述一下问题:表示真实分布中N个样本,表示其中的一个随机变量,表示随机变量的类别标签,M表示总共有M个类别,求新采样的样本属于哪一个类别? 对于这个分类问题,我们一般希望构建一个概率模型...

2021-10-24 23:16:28 2028

原创 C++ DLL的生成与调用

一、制作DLL库1、构建visual studio工程可以直接打开vs构建DLL工程,方法如下:New --> Project --> Dynamic-Link Library(DLL) --> 取名,选路径 --> OK另外一种方法就是通过cmake构建(建议大家掌握cmake构建工程,这对于跨平台编译来说非常有用),首先建立好源文件myDll.hpp、myDll.cpp,然后建立CMakeLists.txt文件并编写:# CM...

2021-10-21 11:19:02 2698

原创 计算定点到曲线上最近的点

如图所示要求曲线f(x)上距离定点A最近的点,假设这个最近点为B点,先说结论(如果对推导不敢兴趣的就不用往下看了):其中Dx、Dy为如下方程组的解:下面我们来推导这个公式,如上图所示,很容易推导出,且,所以。因此得到如下关系:由于B点在曲线上,所以有:联立上面的公式就可以推导出我们的结论了。...

2021-10-20 20:02:10 2361 4

原创 论文解读PointNet(用于点云处理的深度学习框架)

点云在3D几何表示中作为一种非常重要的数据格式,

2021-10-09 17:04:58 4520

原创 论文解读PCT: Point Cloud Transformer(用于点云处理的Transformer)

最近几年transformer越来越火,在NLP、CV等领域都取得了很大的成功。这篇文章作者利用了transformer能够处理无序数据的特点,将transformer应用到点云的处理上。它的想法是基于最原始的transformer那篇文章(Attention Is All Your Need),关于那篇文章的解读可以参考:庖丁解牛Transformer原理。 论文的整体架构如下图所示,首先左边是一个encoder结构,右边是一个decoder。对于encoder点云数据先...

2021-10-01 23:19:22 5679 2

原创 庖丁解牛Transformer原理

近年来Transformer不管是在NLP、CV、推荐等领域都有比较大的应用,短短4年左右的时间Attention Is All You Need 文章的引用量接近3万,其实Transformer原先是解决在sequence2sequeence任务中RNN的并行性差、CNN远距离依赖性弱的问题,本文主要从这篇文章出发解读Transformer的原理、作者为什么要这么设计网络结构。一、网络整体架构 首先认识一下它的网络架构,然后再对它庖丁解牛。如图1所示,它是...

2021-09-29 15:52:28 826

原创 还不知道IEEE、ACM、SCI、EI、nature、期刊、会议论文之间的关系?一幅关系图搞定~

如上图展示了出版社、期刊、会议论文、第三方论文收集数据库之间的关系,首先可以把出版社理解成一个很大的容器,它平时不只是刊印出版物,还下辖了很多各行各业的论文评审团和学术机构,论文评审团主要是行业专家对每期收到的论文进行评审,如果论文通过评审则在相应期刊对应时期出版,学术机构一般是组织各种学术交流会议,这样会产生很多会议论文,比较出名的出版社有IEEE,ACM;然后为了便于各行各业的研究人员能检索到这些优秀的论文,会有第三方专门将这些优秀的期刊和会议论文收录进数据库,比较出名的数据库有:Science、n..

2021-09-18 14:27:43 4840

转载 深度学习反向传播算法

本文转载至  https://blog.youkuaiyun.com/sunpeng19960715/article/details/52639478?utm_source=blogxgwz1反向传播算法一、简介反向传播算法(Backpropagation)是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。·其主要思想是:将训练...

2018-10-24 20:28:04 1563

转载 【机器学习】softmax函数

2017年05月25日 21:13:16阅读数:8672转载至 https://blog.youkuaiyun.com/haolexiao/article/details/72757796原本以为softmax函数求导没啥难度的,结果自己写CNN的时候,梯度算的一直不对,查了半天才发现是因为softmax求导没求对。索性就开一篇Blog把softmax相关的都给记录一下。softmax的定义...

2018-10-24 20:25:16 546

原创 浅析Java语言与C++语言的区别

1.    java中类继承,如果父类方法要重写,不用加任何关键字;而C++却要加 virtual 关键字。2.    Java中,super可以表示父类,this表示类本身。3.    C++的类可以多继承,即一个类有多个父类;而java只能单继承,即一个类只能由一个父类继承。4.    C++类继承采用符号“:”,而java类继承采用关键字“extends”。5.    C++

2017-11-21 16:44:57 3327

原创 空间两条直线的最短距离及最近点计算

直线的信息可以以两个端点的形式给出,也可以以一个直线上的点和直线的方向向量给出。本文中假设这两条直线不共线,即这两条直线既不重合也不相交。1.如果这两条直线是以两个端点的形式给出,那么假设直线l0的两端点为:P0、P1;直线l1的两端点为Q0、Q1,;求两直线的最短距离?直线l0我们可以用方程表示为:        (1)直线段l1我们也可以用方程表示为:           

2017-11-19 21:49:11 21875 4

原创 空间两条直线段的最短距离及最近点计算

假设直线段l0的两端点为:P0、P1;直线段l1的两端点为Q0、Q1,;求两直线段的最短距离?直线段l0我们可以用方程表示为:        (1)直线段l1我们也可以用方程表示为:            (2)式中,P、Q分别表示两直线段上的点。那么点P和点Q的距离为:(3)我们将(3)式等式两边平方得到:               (4)那么求解这两条

2017-11-19 20:49:26 5260 2

原创 点到平面的距离计算

在工程计算过程中,往往要求我们计算点到平面的距离,特别是在计算机图形学中的运用最多。如图1所示,已知一个平面Plan的方向n和该平面上的顶点B,求空间中某一个顶点P到该平面的距离。假设点P在平面Plan上的投影点为P1,那么我们知道proj(P1P)便是点P到该平面的距离。如果我们连接点P和点B,其实会发现,proj(P1P)就是向量BP在该平面法矢上的投影。图1所以会有:

2017-11-19 11:10:19 13735 11

转载 DOS 命令大全

本文转载自:https://zhidao.baidu.com/question/59940919.html一、基础命令 1 dir 无参数:查看当前所在目录的文件和文件夹。 /s:查看当前目录已经其所有子目录的文件和文件夹。 /a:查看包括隐含文件的所有文件。 /ah:只显示出隐含文件。 /w:以紧凑方式(一行显示5个文件)显示文件和文件夹。 /p:以分页方式(显示一页之后会自动暂停)显示。

2017-11-18 21:12:03 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除