- 博客(165)
- 资源 (13)
- 收藏
- 关注
原创 应届生岗位直达服务
详情请私信了解技术面试:C++技术深入学习资源礼包(岗位技术栈查漏补缺/非卖品)系统设计面试的准备模拟技术面试和问题纠错反馈职业发展和软技能:简历优化和面试技巧职业规划和目标设定沟通和团队协作技能实际项目经验:实际项目开发经验的分享参与开源项目的机会实习和工作机会的推荐简历优化:确保简历简洁明了,突出技能和成就。使用具体的项目数据和成果来支持你的经历。适应每个职位的要求,定制简历以突出与岗位相关的经验和技能。全程面试模拟面试准备:
2024-03-18 14:51:21 373
原创 C++11 bind function forward 用法详解
它的主要作用是在函数模板中将传入的参数按照它们的值类别(左值或右值)进行转发,以保持它们的值类别不变,从而避免不必要的拷贝和移动操作。在转发的过程中,如果参数是左值引用类型,那么转发后的类型也是左值引用类型。如果参数是右值引用类型,那么转发后的类型也是右值引用类型。它的作用是将一个可调用对象(比如函数、函数指针、成员函数、成员函数指针等等)以及若干个参数绑定到一个新的函数对象上,形成一个新的可调用对象。返回一个新的函数对象,这个函数对象可以被调用,调用时会执行绑定后的可调用对象,并将绑定的参数传递给它。
2023-08-01 13:51:25 648
原创 C++设计模式-知识回顾总结
抽象工厂模式适用于比较复杂的多变的业务场景,总体上就是给一系列功能相同但是属性会发生变化的组件添加一个抽象类,这样就可以非常方便地进行后续的拓展,再搭配工厂类就可以创建出我们需要的对象了。简单来说:将一个类的接口转换成用户希望的另一个接口,使不兼容的对象能够相互配合并一起工作,这种模式就叫适配器模式。在使用一个已有的类时,发现它的接口与需求不符合,可以使用适配器模式将其接口转换成客户端所期望的接口。源接口(Adaptee):需要被适配的接口,即原本不符合客户端需要的接口。
2023-07-06 15:07:13 604
原创 Windows搭建C++开发环境(visual studio 2022)
此时就可以在在此文件中,安安静静地编写你的C++代码了。此时屏幕上打印出 Hello World ,运行成功!点击源文件,鼠标右键选择添加->新建项。安装完成后会自动打开出现以下界面。点击绿色的三角符号运行该程序。下载完成后打开 步骤如下。选择空项目,点击创建。
2023-05-06 11:08:08 2985 1
原创 FPS游戏实战数据集|yolov8训练模型导出|C/C++项目|驱动鼠标模拟人工|加密狗USB硬件虚拟化
本文介绍了如何使用YOLO识别游戏人物。通过收集数据集、标注数据、训练模型和部署模型等步骤,可以快速准确地识别游戏场景中的人物。在实际应用中,需要根据游戏场景和需求进行调整和优化,以达到最佳的识别效果。
2023-03-24 16:14:41 3364 4
原创 Easy Deep Learning——加载数据集
PyTorch是一个广泛使用的深度学习框架,它提供了许多方便的函数和工具,用于加载和处理各种数据集。在本文中,我们将介绍PyTorch中加载数据集的步骤。
2023-03-17 13:50:48 1048
原创 Easy Deep Learning——全连接层
我们还是回到之前的草地场景中,假设现在的问题变成让机器判断该草地上是不是有一只猫存在,由于之前做的卷积操作,将草地分成了许多网格,如果场地上只有一只猫,那么只有一个网格是有猫的,而其他的网格都不存在猫,一个卷积核运算可以得到一个特征,如果按比例计算,显然存在猫的网格只有一个,大部分都是不存在的场景,那机器根据概率判断大概率会认定该草地上没有猫,这是不符合结果的。全连接层是这样做的好,那么接下来再用比较通俗的语言来总结,可以这样解释。
2023-03-10 14:34:42 758
原创 Easy Deep Learning——池化层
同时,由于池化操作的缩小特征图的空间大小,因此在池化操作之前,可以通过增加卷积层的数量或通道数来提高模型的表达能力,从而保持对目标的识别能力。池化(Pooling)是卷积神经网络中的一种常用操作,其目的是通过减小特征图的空间大小来降低模型的复杂度。在池化操作中,我们将特征图划分为多个子区域,然后对每个子区域进行聚合操作,生成一个较小的特征图。通常,池化操作的聚合操作可以是取最大值(Max Pooling)、取平均值(Average Pooling)等,其中最大值池化是最常用的一种。以下是python代码。
2023-03-10 11:26:02 669
原创 Easy Deep Learning——激活函数
ReLU(Rectified Linear Unit):是目前使用最广泛的激活函数之一,它将小于零的值设为零,大于零的值不变。可以通过来使用。Sigmoid:将实数映射到区间 (0,1) 内,对于二分类问题非常有用。可以通过来使用。Tanh:将实数映射到区间 (-1,1) 内,比 Sigmoid 函数的输出范围更广。可以通过来使用。Softmax:主要用于多分类问题,将实数映射到 (0,1) 区间内的概率值,且所有输出的概率和为1。可以通过来使用。以下使用pytorch的API 来实现这四种函数。
2023-03-10 11:01:23 506
原创 Easy Deep Learning——卷积层
由于卷积核尺寸可以远远小于输入尺寸,即减少需要学习的参数的数量,并且针对每个卷积层可以使用多个卷积核获取输入的特征映射,对数据(尤其是图像)具有很强的特征提取和表示能力,并且在卷积运算之后,使得卷积神经网络结构对输入的图像具有平移不变的性质。下面使用一张图像来展示经过卷积后,输出的特征映射的结果。在PyTorch中针对卷积操作的对象和使用的场景不同,有一维卷积、二维卷积三维卷积与转置卷积(可以简单理解为卷积操作的逆操作),但它们的使用方法比较相似,都可以从torch.nn模块中调用,需要调用的类如表所示。
2023-03-09 19:06:58 2283 2
原创 Easy Deep Learning——PyTorch中的自动微分
为什么选择这一章作为第一章而不是介绍深度学习的核心数据结构张量呢?原因在于张量运算实际就是矩阵的运算,另外PyTorch关于张量的数据处理函数很多,没必要逐个介绍,用到的时候去查文档即可,介绍过多张量的计算方式其实并无意义。在入门深度学习时,我相信初学者最关心的是什么是深度学习?它的基本原理是怎么样的,而不是上来就列一大堆代数式,然后去进行各种了数据计算。
2023-03-09 17:42:25 1155 1
原创 常用的深度学习优化方式
L2正则化通过对模型的权重向量的平方进行惩罚,鼓励模型使用所有的特征,但使权重向量中的值不会过大。全连接层的作用是将输入数据进行线性变换,并将其映射到一个新的空间中,从而得到更高层次的特征表示。总之,全连接层是神经网络中最基本的一种层,它可以将输入数据进行线性变换并将其映射到一个新的空间中。在深度学习中,我们通常将多个全连接层组合起来构成一个神经网络,从而得到更高层次的特征表示。全连接层将输入数据的每个元素与该层中的每个神经元相连接,输出结果是输入数据与该层的权重矩阵相乘,并加上该层的偏置向量。
2023-03-08 17:04:20 1101
转载 激活函数与Loss的梯度
因为:z0时,梯度是1。因为在向后传播时候,因为梯度是1,所以对于搜索最优解,梯度计算时候非常方便,也不会被放大和缩小,很难出现梯度弥散和梯度爆炸的情况。b)sigmoid的缺点:因为sigmoid函数在处于+∞和-∞时候,导数趋近于0,会使得数据处于更新非常缓慢(长时间loss保持不变的情况),即:梯度弥散问题。函数的自变量的方向,函数的自变量越多,偏微分就越多。有的快,有的准确率高。2)所有概率之和等于1。不断更新自变量,当偏导(梯度)趋近于0的时候,函数值也就趋近于极小值。
2023-03-06 18:17:57 531
原创 详解PyTorch Tensor 数据类型——张量
在PyTorch中,视频可以被表示为一个5维的张量,其中第0维表示批次数,第1维表示帧数,第2维表示通道数,第3维表示高度,第4维表示宽度。在PyTorch中,图片可以被表示为一个4维的张量,其中第0维表示批次数,第1维表示通道数,第2维表示高度,第3维表示宽度。例如,一个形状为(1, 3, 224, 224)的张量可以表示一张RGB格式的224x224的图片。总之,不同类型的数据在计算机中都有自己的存储方式和编码方式,而在PyTorch中,这些数据都可以被表示为张量,并且可以方便地进行各种张量操作。
2023-03-06 02:25:37 4494
原创 C++17 文件与目录操作 <filesystem>
头文件提供了一组强大的工具来处理文件系统。你可以使用它来管理文件和目录,获取文件和目录的信息,以及执行文件操作。这些功能使得处理文件和目录变得更加容易,而且可移植性更好,因为头文件可以在多个平台上使用。
2023-03-03 16:54:53 6889 5
原创 详解Linux下的环境变量以及C++库文件和头文件、python库的配置
我们都习惯在Windows 上配置环境变量,例如 Windows设置系统环境变量即在path中添加配置路径即可;使用VS则在项目设置中配置库文件和头文件路径;使用vscode 则常用cmake编译,编写CMakeLists.txt 链接库文件或头文件即可。而在Linux 环境中,则需要记住一些常用命令和常量值,在此总结如下,以供参考。
2023-03-03 00:54:36 2344
原创 详解ROS时间戳
ROS(Robot Operating System)是一个用于机器人开发的开源软件框架,其中涉及到了一些与时间相关的概念和工具,如时间戳、计时器等。本文将主要介绍ROS中时间戳的概念和应用,并提供一个Python代码案例演示如何处理ROS时间戳。
2023-02-27 13:32:02 7152
原创 Python日志模块logging基本用法
例如,你可以将INFO级别的日志写入磁盘文件,将WARNING级别的日志输出到控制台,将ERROR级别的日志发送到Email。你可以将日志输出到不同的地方,实现日志的分级和分模块管理。它会在一定的时间间隔后自动将日志内容写入新的日志文件,以便更好地管理日志文件大小和数量。Formatter:Formatter定义了日志输出的格式,可以定义日期格式、日志级别、日志信息等内容。你可以根据不同的过滤条件来实现日志的过滤。文件中,如果文件大小超过了指定的大小,将会自动创建一个新的日志文件,最多保留7个日志文件。
2023-02-21 02:55:58 542
原创 Python机器学习入门笔记(3)—— 线性回归
线性回归是一种基本的机器学习算法,它用于建立自变量和因变量之间的线性关系模型。它假设自变量和因变量之间存在线性关系,通过最小化误差平方和来找到最优的模型参数,包括截距和斜率,以使模型的预测值尽可能地接近真实值。在实际应用中,线性回归算法广泛用于预测房价、股票价格、销售量等连续性数值型数据的预测问题。
2023-02-20 12:47:40 1404
原创 Python机器学习入门笔记(2)—— 分类算法
分类算法是机器学习中的一类常见算法,它通过学习已知类别的样本数据,建立分类模型,用来预测新样本所属的类别。本文对几种常用的分类算法进行了详细介绍。
2023-02-17 15:59:28 1465 1
原创 Python机器学习入门笔记(1)—— Scikit-learn与特征工程
在Scikit-learn中,Bunch是一个类似于字典的对象,用于存储机器学习中的数据集和相关信息。Bunch对象的结构通常由以下三个属性构成:data:特征数据,是一个n_samples * n_features的矩阵。target:目标数据,是一个n_samples的数组,通常用于监督学习。feature_names:特征的名称,是一个长度为n_features的字符串列表。
2023-02-17 01:09:49 1270 1
原创 ROS笔记(6)——自定义消息类型
在ROS中,可以使用自定义消息类型来表示应用程序中使用的特定数据类型。自定义消息类型可以用于发布和订阅ROS主题,也可以用于ROS服务和ROS动作等。这个目录通常被称为“消息目录”,其中包含了用于定义自定义消息类型的.msg文件。消息定义文件中还可以使用其他ROS标准消息类型或用户自定义的消息类型。这些行将告诉ROS在构建过程中使用消息生成器,并将自定义消息类型添加到该包的构建中。接下来,需要编写发布和订阅节点,这些节点将使用自定义消息类型。是自定义消息的名称。应该是在第一步中创建的消息定义文件的名称。
2023-02-15 14:03:17 1265
原创 ROS笔记(5)——Bag包概述与解析
ROS Bag可以将ROS节点发布的消息记录下来,然后在需要的时候将这些消息再次播放回ROS系统中。它可以记录指定主题的消息,将消息保存到一个ROS Bag文件中。2.在ROS程序中使用ROS API来记录消息,将消息保存到ROS Bag文件中。是ROS Bag文件中的一组消息的视图,它提供了一些方便的方法来遍历和访问这些消息。函数,但是它会将消息输出到ROS的日志系统,这有助于调试和记录机器人的运行情况。函数来输出消息,C++ 中可以使用 ROS 的日志系统来输出消息,例如使用。
2023-02-15 12:25:30 6709 2
原创 ubuntu 安装支持GPU的Docker详细步骤
步骤中的第 4 步中安装了 NVIDIA Docker 2,这是 Docker 官方推荐的一种支持 NVIDIA GPU 的解决方案。步骤中的第 7 步可以测试 Docker 是否成功识别并使用了您的 NVIDIA 显卡。请注意,在安装 NVIDIA Docker 2 之前,需要先在 Ubuntu 上安装 NVIDIA 显卡驱动程序。这将登录您的 Docker 客户端,并允许您下载和推送 Docker 镜像。安装 Docker CE 和 NVIDIA Docker 2。验证 Docker 是否安装成功。
2023-02-14 17:55:23 1251
原创 ROS笔记(4)——发布者Publisher与订阅者Subscribe的编程实现
在搜索框中输入“C++: Edit Configuration”,并选择“C++: Edit Configurations (UI)”选项。在菜单栏中,选择“查看”(View) -> “命令面板”(Command Palette)。在“编译”(Compile)标签页下,选择“高级”(Advanced)选项。在“includePath”中添加ROS的include文件夹的路径,如。在“browse.path”中添加ROS的lib文件夹的路径,如。单击“确定”(OK)保存您的更改。节点发送消息,流程如图。
2023-02-14 13:55:17 466
原创 ROS笔记(3)——工作空间的创建
在ROS中,工作空间(Workspace)是一个ROS项目的基本组成部分,它是包(Package)的容器。包是ROS系统中的基本代码单元,包含了ROS节点、Topic、消息、服务等定义。创建工作空间是ROS项目的第一步,以下是创建ROS工作空间的步骤:1.创建工作空间目录首先,我们需要在计算机上创建一个目录来作为工作空间。这个目录可以被命名为任何名称,通常我们使用catkin_ws作为ROS工作空间的默认名称。2.初始化catkin工作空间。
2023-02-14 10:41:45 1859
原创 ROS笔记(2)——ROS的基本命令
在ROS中运行小海龟需要执行以下步骤:打开终端并启动ROS核心:在终端中输入 "roscore" 并按回车键。打开另一个终端并启动小海龟节点:在终端中输入 "" 并按回车键。打开第三个终端并启动小海龟运动控制节点:在终端中输入 "" 并按回车键。在运动控制节点的终端中使用方向键控制小海龟的移动。当我们在终端中输入命令时,计算机会根据命令来执行一些特定的操作。以下是命令中每个部分的实际含义:"rosrun":这是一个ROS命令,用于在ROS包中运行节点。
2023-02-14 09:57:35 2647
原创 如何在 Ubuntu 18.04.1 LTS 上安装 ROS Melodic 的详细过程
如果一切利,你将看到一个小海龟图形界面。可以使用键盘控制小海龟移动。
2023-02-13 16:12:35 391
原创 ROS笔记(1)——ROS的核心概念
(1)具有一定的数据和数据结构,包括ROS提供的标准类型和用户自定义类型。(1)使用C/S模型,客户端发送请求数据,服务器完成处理后的应答数据。(2)不同节点可使用不同的编程语言,可分布式运行在不同的主机。(2)跟踪和记录话题/服务通信,辅助节点相互查找、建立连接;(3)提供参数服务器,节点使用此服务器检索和存储运行时的参数。(1)执行具体任务的进程、独立运行的可执行文件。(3)适合存储静态、非二进制的配置参数,不适合存储动态的数据。(2)节点使用此服务器来存储和检索运行时的参数。话题——异步通信机制。
2023-02-13 14:58:03 423
原创 Unity学习笔记[一] RollBall小游戏
一些常用的向量 Vector3.right Vector3.left Vector3.forward Vector3.back Vector3.up Vector3.down。2、场景基本操作 聚焦:双击游戏物体 或者 F 放大缩小视野:鼠标滚轮 围绕物体旋转:Alt+鼠标左键 使用MoveTool下 移动物体。三维向量 (x,y,z) Vector3.forward 等于 (0,0,1):检视面板(属性面板),查看一个游戏物体由哪些组件组成。Transform:变换组件,位置、旋转、缩放。
2022-11-20 03:29:27 1188 1
原创 C++ Hook DirectX 11的内部Imgui绘制的框架封装
【代码】C++ Hook DirectX 11的内部Imgui绘制的框架封装。
2022-10-07 21:10:49 687
原创 C++封装Detours库挂钩函数
DetourTransactionCommit():执行当前的Transaction过程。在这个函数中才会真正进行截获或者解除截获操作。DetourUpdateThread():列入一个在DetourTransaction过程中要进行update的线程。DetourTransactionBegin():开始一次截获或者解除截获过程。DetourAttach():添加一个要截获的目标函数。DetourDetach():用来解除截获的函数。这个函数的作用稍微有一些复杂,会在后面专门说明。
2022-10-07 03:27:01 439
原创 C++使用imgui框架的绘制封装-绘制矩形-直线-文字-菜单-(复制即用)
【代码】C++封装imgui框架封装的绘制-绘制矩形-直线-文字-菜单-(复制即用)
2022-10-06 20:20:31 2784 1
原创 FPS类游戏的逆向分析通用方法与C++逆向功能开发详解
Setp 1 课程初探 (1)课程介绍 (2)开发工具与环境 (3)CE工具使用入门 (4)C++实现FPS之无限生命与无限子弹 Setp 2 数据分析 (1)FPS之人物结构分析 (2)C/C++读取人物结构数据 (3)C/C++遍历人物结构链表 (4)分析人物阵营 (5)认识矩阵 (6)快速定位矩阵 Setp 3 透视功能 (1)C/C++实现透明窗口与消息循环 (2)C/C++三维坐标转二维坐标算法 (3)DirectX sdk 环境配置 (4)D3D绘制 (5)C++实现FPS之人物方框透视 Set
2022-10-05 17:44:56 2622 1
C++ Hook DirectX 11的内部Imgui绘制的框架封装C++ Hook DirectX 11的内部Imgui绘制的
2022-10-07
C++ 面向对象实现的雷霆战机游戏,带音乐 ,主角带动态特效。完整源码 EasyX
2022-07-28
MFC 标签页 TabSheet.h TabSheet.cpp
2022-07-19
Inject.exe
2020-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人