自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

先锋小牛

我不是知识的创造者,我只是知识的搬运工。

  • 博客(108)
  • 资源 (6)
  • 收藏
  • 关注

原创 深度学习的梯度下降法

目录梯度下降法哈密顿算子最优化问题和回归分析代价函数学习数据和正解误差反向传播法神经单元误差​梯度下降法梯度下降法是一种寻找最小值的点的方法,在数值分析领域,梯度下降法也称最速下降法近似公式表示为两个向量的内积形式向量a,b的内积为,为180时内积的值最小,可得向量a满足以下条件式时,内积取最小值两个变量函数的梯度下降法的基本式子函数z = f(x, y),当x改变,当y改变时,函数 f(x, y)的变化为下式...

2022-04-27 11:08:41 1304

原创 深度学习的数学基础

1,神经元点火公式正在上传…重新上传取消2,单位阶跃函数:正在上传…重新上传取消3,激活函数:将神经元的工作一般化。即,将是单位跃阶函数(u)。一般化为正在上传…重新上传取消将上式变为:正在上传…重新上传取消函数a是自定义的函数,称为激活函数4,Sigmoid:是激活函数中的一种正在上传…重新上传取消将参数z整理为加权输入,即正在上传…重新上传取消将参数z带入Sigmoid中计算结果5,神经网络分为输入层,隐藏层和输出层6,监督学习:根据给定的学习

2022-04-26 23:10:27 1192

转载 常见的损失函数

1、损失函数的意义机器学习中的监督学习本质上是给定一系列训练样本 ,尝试学习 的映射关系,使得给定一个 ,即便这个 不在训练样本中,也能够得到尽量接近真实 的输出 。而损失函数(Loss Function)则是这个过程中关键的一个组成部分,用来衡量模型的输出 与真实的 之间的差距,给模型的优化指明方向。2、回归问题的损失函数2.1 均方差损失均方差 Mean Squared Error (MSE) 损失是机器学习、深度学习回归任务中最常用的一种损失函数,也称为 L2 Loss。从直觉上理.

2022-04-26 21:07:54 8993 1

转载 常见的激活函数

激活函数是神经网络中非线性的来源,因为如果去掉这些函数,那么整个网络就只剩下线性运算,线性运算的复合还是线性运算的,最终的效果只相当于单层的线性模型.(1)Sigmoid函数左端趋近于0,右端趋近于1,且两端都趋于饱和.关于函数饱和解释:参考https://www.cnblogs.com/tangjicheng/p/9323389.html如果我们初始化神经网络的权值为 [0,1] 之间的随机值,由反向传播算法的数学推导可知,梯度从后向前传播时,每传递一层梯度值都会减小为原来的0.25倍,如

2022-04-26 20:58:36 222

原创 UE4 C++ —— UMG和C++交互

简述在UE4开发中,我们想使用UMG创建显示界面,而在C++代码中编写逻辑处理代码。这样就需要UMG和C++进行交互,即在C++中引用UMG中的控件,并进行事件绑定等操作交互方法一,强转子集GetRootWidget()        //获取根节点GetChildAt()            //获取子节点UMG控件呈树状结构,根据根节点可以获取到所有的子节点二,反射绑定UPROPE...

2018-09-20 20:28:50 13491 3

原创 UE4 C++ —— 代理

简述UE4中的代理(或者叫委托)可以动态的绑定类对象的函数,类似于C中的函数指针,但代理更加安全、可靠。UE4提供了三种类型的代理,单播代理,多播代理,动态代理。单播代理宏 详解 DECLARE_DELEGATE( DelegateName ) 无参无返回值 DECLARE_DELEGATE_OneParam(DelegateName, Param1Type ) 一...

2018-09-15 20:07:43 3601

原创 UE4 C++ —— 碰撞检测

简述UE4集成了PhysX物理引擎,用来模拟刚体的物理行为,包括常用的碰撞响应。碰撞基础概念碰撞对象通道每个碰撞体都会设置一种(Object Responses)碰撞对象通道,碰撞对象通道可以是ue4默认的几种,也可以新建自定义的碰撞对象通道新建自定义的碰撞对象通道,点击Project Settings->Collision在Collision窗口里,找到Object Cha...

2018-09-15 20:06:48 11298 1

原创 Direct3D11程序框架搭建

 简述以简单直观的方式搭建Direct3D11程序框架,其中包含了顶点缓存,索引缓存,顶点着色器,像素着色器,变换矩阵等基本的功能,在此基础上学习Direct3D11和HLSL。简要流程程序主实现了窗口的创建,D3D中设备,缓存等一些东西的初始化,并在事件循环中进行渲染,渲染结束后释放资源。程序以C语言风格编写,总共有6个函数,六大步骤。(1)Windows窗口的创建,程序入口函数...

2018-05-16 22:11:08 1622

原创 蓝图通信(10) —— 直接蓝图通信

简述蓝图类之间有多种通信方法,其中直接蓝图通信比较常用,通过在当前蓝图类中创建一个目标蓝图类的引用变量,并在关卡中指定目标蓝图的实例。创建两个蓝图类新建继承Actor的蓝图类,命名为Actor_1,复制一份,命名为Actor_2打开Actor_1,添加Static Mesh组件并设置Mesh为1M_cube,编译保存打开Actor_2重复上述操作(设置Mesh为Ramp_StaticMesh),将...

2018-05-12 15:46:27 2480

原创 蓝图通信(11) —— 事件分配器

简述事件分配器可以绑定一个或多个事件,调用事件分配器后,与其绑定的所有事件将触发创建事件分配器打开关卡蓝图,在My Blueprint面板,点击Event Dispatchers后面的“+”创建事件分配器,命名为EventDispatcherTest,(蓝图类中的事件分配器使用方法和关卡蓝图中相同)选中EventDispatcherTest,转到Details面板,设置输入,点击N...

2018-05-12 15:46:23 2591 4

原创 蓝图通信(12) —— 蓝图投射

简述通过引用全局蓝图类来实现两个蓝图的信息交互,在ue4中有几个默认注册的全局蓝图类,游戏中的任何蓝图类或关卡蓝图都可以引用到,一般在Game Model中设置配置全局蓝图转到内容浏览器,找到Default Pawn Class设置的默认蓝图ThirdPersonCharacter打开ThirdPersonCharacter,新建两个变量,这两个变量类型设为Actor_1和Actor_2两个蓝图类...

2018-05-12 15:46:17 1695

原创 OpenGL读取帧缓存数据

简述有些时候我们可能需要获取渲染后的图像数据,比较常用的函数是glReadPixels,它可以直接把显存中的数据拷贝到内存中glReadPixels读取帧缓存数据void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)功  能:读取帧缓...

2018-05-09 12:43:01 8416 1

原创 状态模式(C++)

简述当一个对象内在状态改变时,允许改变其行为,这个对象看起来像改变了其类,单控制一个对象的状态转换的条件表达式过于复杂时,把状态的判断逻辑转移,到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化场景说明状态模式中,不同状态对象表现的也不同。就像变色龙一样,它随自己心情的变化会变成不同的颜色,它心情平静时为蓝色,心情兴奋时就变成了黄色UML类图对象说明State, 抽象的状态类CalmState...

2018-05-08 17:21:54 389

原创 建造者模式(C++)

简述将一个复杂对象的构建与它的表示分离,使同样的构造过程可以创建不同的表示,用户通过指定建造的类型就可以得到它们,而不需要关心具体的建造过程和细节,场景说明,建造一辆车是比较复杂的,一辆车的部件必须包括车身,轮胎和引擎,但不同车辆的部件是不同的。比如卡车和小轿车,它们建造流程相同,都需要车身,轮胎和引擎,但它们的建造的部件规格,大小显然是不同UML类图对象说明Director 指挥者,指挥建造产品...

2018-05-08 17:21:40 572

原创 OPenGL--几何着色器的应用(多视口输出)

简述在OpenGL中,可以将一个物体的渲染结果输出到不同的帧缓冲区域,实现多个的视口效果,着色器中提供了一个内置的输出变量gl_ViewportIndex来重定向输出,它的值也可以作为片元着色器的输入使用。多视口在三维建模软件中比较常见,如3DMAX。在OpenGL应用程序中可以通过glViewportIndexedf()或glViewportIndexedfv()函数来设置,可以指定剪切坐标窗口...

2018-05-08 17:20:03 1789 2

原创 蓝图基础(1) —— 变量和变量类型

概述蓝图 - 是虚幻4实现的一套完整的可视化脚本系统。它和其他脚本语言(python,lua等)的不同之处在于,它无需编写代码,可以通过拖拽节点来直观的实现所需的功能。但它本质上还是属于一种编程语言,也有变量,数据类型,函数等概念,开发中也需遵循者面向对象的思想,以学习一门新语言的方法来学习它,相信会事半功倍的。变量:存放一个值或引用世界中的一个Actor的属性,游戏中加载进去的任何游戏对象都是由...

2018-05-06 19:42:14 5985 1

原创 蓝图基础(2) —— 结构体和枚举

简述UE4中除了基础的数据类型,还有一些聚合数据类型。结构体:存储相同类型或不同类型数据的集合。枚举:是被命名的整型常数的集合,通过对整型类型的重命名,可以更加直观的表达。结构体创建结构体类型在内容浏览器内,右键 -> Blueprintd -> Structure创建结构体,命名为Struct双击Struct,打开结构体设置界面点击New Variable添加5个新变量,分别设置变量...

2018-05-06 19:42:09 5500 4

原创 蓝图基础(3) —— 分支与循环

简述在所有的开发语言中分支与循环都是必不可少的,它能有效的控制程序执行的流程,在蓝图中是由一些分支与循环节点来实现的。点击右键 -> Utilities -> Flow Control 弹出一些标准的流程控制节点,如图(一)、BranchBranch是一个判断节点,当输入参数Condition为true时,程序走True分支,反之走false分支。例如,当勾选Condition时,程序...

2018-05-06 19:41:05 3565

原创 蓝图基础(4) —— 容器(Array,Map,Set)

简述容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型,ue4提供了三种不同的容器,即Array, Map, Set。Array:直译过来是数组,是有序的元素序列,可以存储多个相同类型的数据。数组在内存空间是连续存储的,可以通过下标来访问。Map:是一种键值对容器,里面的数据都是成对出现的(Key,Value),Value通过Key值来获取,且Key值不能重复。Set:一种包...

2018-05-06 19:41:00 8154

原创 蓝图基础(5) —— 函数

简述在UE4中函数其实就是节点,对完成一定的功能的模块进行封装,使程序结构更清晰,易读。函数有唯一的入口和出口,但它的传入值和传出值可以有多个。比如当前有一功能需要实现,求出两个数之间的所有水仙花数,保存到Array并返回。注:水仙花是指一个3位数,他的每个位上的数字的3次幂之和等于它本身,(如1*1*1+3*3*3+5*5*5=153)创建函数转到My Blueprint面板,在Function...

2018-05-06 19:40:50 1991

原创 蓝图类型(6) —— 关卡蓝图

简述Ue4提供了几种不同类型的蓝图,分别为关卡蓝图,蓝图类,宏,接口,它们有者不同的使用方式和适用场景,关卡蓝图可以作用于整个关卡的全局事件图表。它保存了关卡中所以实例化Actor的引用,可以对关卡内的所以Actor实例进行操作。打开关卡蓝图每一个关卡对应一个关卡蓝图,关卡蓝图无法新建,只能打开默认的关卡蓝图并使用。点击Blueprints的下拉按钮,选择Open Level Blueprint项...

2018-05-06 19:40:37 5609 2

原创 蓝图类型(7) —— 蓝图类

简述蓝图类(Blueprint Class)定义对象的属性和功能,根据需求,可以通过继承现有的蓝图类来实现特定的功能,蓝图类使用可视化蓝图脚本来定义。创建蓝图类转到内容浏览器,在空白区域点击右键,在弹出的菜单栏中点击Blueprint Class(当前工程模板为Third Person)在弹出框中需要指定继承的父类,常用的父类如下也可以通过下面的All Class部分选择需要的其他父类,类的层级关...

2018-05-06 19:40:29 5400

原创 蓝图类型(8) —— 蓝图宏

简述蓝图宏和和函数一样,都是对一些功能算法进行了封装,它们都有一个输入点和输出点,调用方法也类似创建蓝图宏蓝图宏可以在蓝图类,关卡节点和宏库中创建,这里我门在关卡蓝图中创建,打开关卡蓝图,转到My Blueprint面板,点击Macros后面的“+”,创建蓝图宏,命名为Macro_0双击Macro_0,打开蓝图宏,默认有一个输入节点和一个输出节点转到蓝图宏的Details面板,这里可以设置蓝图宏的...

2018-05-06 19:40:19 3061

原创 蓝图类型(9) —— 蓝图接口

简述蓝图接口,可以实现同类功能的在不同的Actor中表达各自的特点,比如,两个Actor都有在三维空间中变换的功能,在接口中定义一个变换函数SetTransform(),两个Actor通过包含这个接口,并实现各自的变换功能,新建接口转到主界面,在内容浏览器中依次  右键 -> Blueprints -> Blueprint Interface创建蓝图接口,命名为BlueInterfac...

2018-05-06 19:39:59 3460 1

翻译 UE4 蓝图教程(四) UI

简述在游戏中,开发人员使用图像和文字向玩家显示游戏信息,如血量或得分。这就是所说的用户界面(UI)。在虚幻引擎4中你可以用Unreal Motion Graphics(UMG)创建UI。UMG允许您通过拖拽UI元素,例如拖拽按钮和文本标签快捷的构建UI。在本教程中,您将学习如何:1,创建显示信息标签(HUD),显示计数和时间。2,显示HUD3,更新数和时间并显示到界面注意,本教程中将会使用蓝图。如...

2018-03-18 21:02:26 17553 4

翻译 UE4 蓝图教程(三) 材质

简述和现实世界一样,游戏中也包含各种各样的物体,每个物体都有自己的外表。在虚幻引擎中,材质定义了这些外部。它是什么颜色的?有多亮的?是透明的吗?这些都是在材质中定义的。在虚幻引擎中,几乎所有的外表元素都使用了材质。你可以将材质应用于各种物体,例如网格,粒子和UI元素。在本教程中,您将学习如何:1 操作纹理改变它们的亮度和颜色2 使用材质实例快速改变物体3 使用动态材质实例改变物体颜色在本教程中,您...

2018-03-01 22:49:58 15687 1

翻译 UE4 蓝图教程(一) 开始

简述Unreal Engine 4是一款游戏开发引擎, 能够开发从2D移动游戏到AAA级主机游戏的的所有产品。基于这款引擎开发的游戏有发方舟,生存进化,铁拳7和王国之心。对于初学者来说,在虚幻引擎4中开发是非常简单的。使用蓝图可视化脚本系统,您可以创建完整的游戏,而无需编写一行代码!结合一个易于使用的界面,您可以快速地获得一个原型并运行。本教程的重点是帮助初学者入门。以下是本教程将介绍的要点:1 ...

2018-03-01 21:56:44 54719 6

翻译 UE4 蓝图教程(二) 蓝图

蓝图蓝图是虚幻4中的可视化脚本系统,是一种快速开发游戏原型的方法。无需逐行编写代码,您可以直观的做所有事情:拖放节点,将它们的属性设置在UI中,并拖动连接线来连接。除了成为一个快速的原型开发工具之外,蓝图还使得非编程人员可以很快速地上手编写脚本。在本教程中,您将用蓝图:1 设置一个从上向下看的摄像机2 创建一个由玩家控制的具有基本动作actor 3 设置玩家输入4 创建一个物品,当玩家碰到它时消失...

2018-03-01 21:56:33 9243 2

原创 OPenGL点精灵

简述点精灵使使用片元着色器渲染的OpenGL点。运行的时候需要考虑点内的片元坐标,这个坐标由内置的两维向量gl_PointCoord保存,这个变量最常见的作用是当作纹理坐标使用或者用于计算颜色和覆盖率。 给点精灵贴上纹理在OpenGL绘制的点,只有一个位置坐标。如果要给一个点贴上纹理,则需要使用内置变量gl_PointCoord来查询纹理中的纹素,这样就可以生成一个带纹理的点精灵了

2018-01-19 19:11:35 2572

翻译 OPenGL--Transform feedback示例解析

简述英文地址https://open.gl/feedback到目前为止,我们总是将顶点数据发送到图形处理器,并且只在帧缓存中生成绘制的像素。如果我们想要在经过顶点着色器或几何着色器之后捕获这些顶点呢?在这一章中,我们将探讨一种方法,即transform feedback。到目前为止,我们已经使用了VBO(顶点缓冲区对象)来存储用于绘制操作的顶点。Transform feedback

2018-01-12 10:41:45 8709 1

原创 OPenGL--Transform feedback基础

简述TransformFeedback是OpenGL管线中,顶点处理(如果有几何着色器,那么就在几何着色器后)之后,图元装配之前的一个步骤。它可以重新捕获即将装配为图元(点,线段,三角形)的顶点,然后将部分或全部属性传递到缓存对象上来。每当一个顶点传递到图元装配阶段时,将所有需要捕获的属性记录到一个或多个缓存对象上,用户程序可以回读这些缓存对象的内容。根据这个特性,它和顶点着色器可以组

2018-01-11 18:32:40 1086

原创 OPenGL纹理基础

简述纹理是一个2D/1D/3D图片,可以更加逼真的描述物体,把一张砖的图片贴合到3d的房子上,这样房子看起来就像有砖墙了。OpenGL支持多类型多维数的纹理对象,每个纹理对象表示一组可以组成纹理的一组图象,纹理可以包括1维,2维或多维的数组,称为纹理数组。 纹理环绕方式纹理坐标的范围通常是0倒1,如果超出后,可以设置不同的环绕方式处理。环绕方式

2018-01-02 19:26:16 865

原创 OpenGL缓存数据

简述缓存对象(buffer  object)在OpenGL中十分重要,几乎所有的功能都需要用到它。常见操作包括它的创建,数据的输入, 数据的输出,销毁。 创建在OPenGL中可以使用函数glGenBuffers()来创建缓存对象,调用之后只是得到了一个缓存对象名称的数组,这些名称只是个标记,并不是真正的缓存对象,需要绑定到OPenGL系统中才会创建出来,可以调用函数glBindVe

2017-12-29 16:34:45 3098 1

原创 OpenGL绘制方式详解

简述OpenGL绘制方式OpenGL可以支持很多不同的图元类型,最基础的为点,线,或三角形。线和三角形可以组合成条带,循环体或者扇面三角形。点,线,或三角形也是大部分图象硬件设备支持的基础图元类型。 点点可以通过单一的顶点来表示,点实际上不存在面积,在OpenGL中它通过屏幕上的一个矩形区域来模拟,在渲染点源的时候,OpenGL会通过光栅化规则类判断点的位置。以点位中心绘制一个

2017-12-29 16:27:57 5178 2

原创 OpenGL帧缓存

简述一般在OpenGL环境搭建过程中,窗口系统会创建一个默认的帧缓存,这个帧缓存是唯一可以被图形服务器的显示系统所识别的帧缓存,所以应用程序自定义的帧缓存只能用于离屏渲染的场合。帧缓存不会直接存储渲染数据,必须将渲染的结果保存到一些附件中(颜色,深度和模板)。窗口系统的帧缓存在创建之初就有自己的缓存附件,自定义的帧缓存对象还需要手动添加这些附件。帧缓存的内存模型如下:红色区域就是实际存储数据的内存...

2017-12-29 16:05:49 3986 2

原创 OPenGL--几何着色器的应用(多实例绘制)

简述多实例渲染是一种连续执行多次相同的渲染命令的方法,并且每个渲染命令所产生的结果都会有轻微的差异。这是一种使用少量API来渲染大量几何体的有效方法。当一个模型需要创建多个实例时,一般地可以在程序中循环调用glDrawArrays()函数完成多次绘制,这样,顶点着色器对每次输入的顶点运行一次,就会从内存中重复提取一次的数据,绘制多次相当于多次运行OPenGL整个管线。给GPU造成了潜在的处

2017-12-29 15:37:41 2552

原创 OPenGL--几何着色器的应用(法线向量可视化)

简述几何着色器可以多次调用EmitVertex()输出多种数量的图元,它产生的输出图元比输入的图元更多,这种方法叫扩充。使用这种方法可以显示任意物体顶点的法线向量。首先需要创建两个着色器程序,一个不适应几何着色器正常绘制物体,另一个通过几何着色器生成法线向量,然后输出直线(法线向量)。顶点着色器在顶点着色器中可以得到模型每个顶点的法线向量,为了适配模型缩放和旋转,我们在将法线变换到裁剪

2017-12-27 19:12:54 1923

原创 OPenGL--几何着色器基础入门

简述几何着色器在渲染管道中几何着色器位于片段着色之前,它接收的是一系列顶点组成的图元,并且以数组的形式输入。基本的几何着色器#version 330 core//设置输入的图元类型为三角形layout (triangles) in;//设置输出的图元类型为三角形带,产生的最大顶点个数为3layout (triangles_strip, max_vertces =

2017-12-27 18:57:38 912

原创 封装一个Window线程类

概述封装一个简单的线程类,线程函数结束后线程不会自动退出,而是阻塞到了事件函数上,当再次运行该线程时,会触发事件解除阻塞运行函数,而不会重新创建线程。想要使线程退出,必须手动设置线程才会退出。共有两个基类CThread和CThreadFunc,其中CThread是主要的线程类,它保存线程句柄和线程ID等属性,CThreadFunc是线程处理函数类,处理线程的具体工作。实现的方法有两

2017-12-25 15:34:46 513

原创 Window多线程同步(事件)

概述事件是内核对象,用于线程间通信和同步。事件分为无信号状态和有信号状态,无信号状态会阻塞到WaitForSingleObject()函数,直到触发事件(即调用SetEvent)。有信号状态则会忽略事件触发信号,不会阻塞到WaitForSingleObject()函数。 相关APIResetEvent(), WaitForSingleObject(), CreateEvent(

2017-12-25 14:53:07 987

STL 容器API

罗列了STL中容器的常用的API, 并有中文注释,使用的时候可以随时查阅,提高开发效率, 哦

2017-09-24

tinyxml库文件

tinyXML一款很优秀的操作C++类库,文件不大,但方法很丰富,可以满足绝大部分功能需要。而且它使用很简单,只需要拷贝六个文件到你的工程中就可以使用了。

2017-09-11

json中文文档

json是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

2017-09-09

json中文教程

几个不错的json中文教程,希望可以带大家入门,描述就这么多吧,没啥说的类,但字数不够上传不了,所以还得写

2017-09-09

cJSON库文件

cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器,cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器

2017-09-09

Qt5.7图解 类图 模块图

Qt类图

2017-05-21

空空如也

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

TA关注的人

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