自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ctrlturtle的博客

互助、共勉

  • 博客(125)
  • 收藏
  • 关注

原创 聊聊最近chatGPT对程序员的焦虑攻击

我985硕毕业,呆过大厂和小厂,现工作5年的程序员, 抛开那些胡吹海谈的软文,想和大家深入聊聊chatgpt和程序员这个话题。如果你正想入行或已经是程序,也在遭受各种gpt的焦虑攻击,请耐心看完,可能会对你有一些启发。gpt有点类似于几年前我们就在谈的自然语言编程,视角还要再高出一个层次,它极大地降低了编码的门槛,解放了程序员很多时候的重复低级劳动。

2023-04-06 18:32:44 5199 1

原创 从UE4到UE5:新特性的限制

Nanite原理:划分culster,按层级进行三角形的culling和lod selection(HLOD),基于compute shader,和N卡的mesh shader同目的不同路(纯软件和硬件路线)开启导入时勾选build nanite / 批量选中网格体右键Enable几何体集合在Chaos面板的nanite settings启用一些关键限制(Nantie Checklist)支持静态网格,不支持骨骼动画和变形!不支持spline mesh!(一句话,只支持刚性网格体)支

2022-03-17 11:44:05 2699

原创 从UE4到UE5:工程及资产迁移的原理和一般方法

按照官方建议,明年早些时候发布正式版本,UE5EA仅用于新技术探索和尝鲜,项目开发还是应该在UE4上进行,现在迁移只是为了解新的features,提前规划哪些可能用于现在的工程。迁移步骤参考官方文档:https://docs.unrealengine.com/5.0/zh-CN/MigrationGuide/必要项确认工程兼容性:UE4.26是可以直接以副本拷贝的方式迁移过来的,但是不能将5的工程迁移回4拷贝UE4项

2022-03-17 11:39:34 19691 3

原创 谈谈对MVP框架模式的理解(工作总结)

工作几年,发现代码写的越久,写代码前考虑的东西越多,越小心也越慢了。如果之前总是20%编码时间需要80%时间来debug和维护,那现在当然希望debug所占的时间越少越好,在编码之前更多的构思和设计,尽可能规避可能出现的问题。不知道从什么时候开始,项目进度总是在拖着我们往前疯狂地写需求,打补丁,当脏代码越来越多,结构越来越臃肿,我们开始想起来一个叫架构的东西。然后又开始计划重构代码,甚至重新设计框架,可惜一堆接一堆的新bug等着去解,重构计划一拖再拖,似乎这才是该做的事情,慢慢忘记了软件里那些真正绚丽的

2022-02-18 11:52:49 5673

原创 从信息熵到模型量化

​今天做模型量化的时候想了解下背后的原理,然后发现又用到了KL散度,在模型量化中用它去评估量化前后的精度损失,同时也看到了老朋友交叉熵,整理一番之后又有了新的收获。交叉熵与KL散度问题:KL散度和交叉熵是什么关系?为什么之前深度学习分类问题中使用交叉熵而不是KL散度作为loss函数??信息论里的熵是什么熵(Entropy)最早由热力学引入,而信息论中的熵指的是随机变量的不确定性。信息论认为百分百概率发生的事件信息量为0,概率越低的事件信息量越大,所以可以用事件发生概率的倒数取对数来量化

2021-12-20 16:25:45 808

原创 卷积尺寸计算公式(速查备用)

torch代码计算def paras_cnn(k,s,p,i=64): x=torch.ones(1,1,i,i) conv = torch.nn.Conv2d(1, 1, kernel_size=k, stride=s, padding=p) convt= torch.nn.ConvTranspose2d(1, 1, kernel_size=k, stride=s, padding=p) h1=conv(x) h2=convt(x) y=convt(...

2021-07-06 11:24:20 3265 1

原创 Niagara官方示例笔记 - 盘点自带重要模块

Emitter State -life cycle生命周期控制发射器选择system, 所有发射器都在system的state里设置生命周期选择self, 发射器独立控制可以给发射器创建不同类型变量,使用set parameter模块计算系统自带一些默认属性如浮点变量Age(粒子年龄),particle position(粒子位置)等,参数面板右边上锁表示自带属性,数字显示引用次数按User , System, Emitter,Particle划分变量可见性级别只有User.par..

2021-07-03 23:42:03 4080 2

原创 简单谈谈模型的泛化性能

泛化性能的首要因素是样本:防止过拟合就是提高泛化性能,训练的数据量越小越容易过拟合,模型泛化性不好首先应该考虑的是训练样本的数量和质量提高泛化性能的本质是引入更多的噪声:为loss函数搜索最优解时加入更多随机性,从而尽可能避免陷入局部最优,逼近一个相对全局更优的解不需要一上来就考虑泛化的问题:搭建模型的初期先要保证模型的复杂度能够充分拟合数据(先避免欠拟合并且保证模型能正确训练),代价函数能够快速的下降,在训练集上达到一个非常高的准确率,再考虑泛化的问题。check模型能正确训练的tri..

2021-04-27 17:22:24 9775

原创 多任务学习(MTL) --- 知识小结+实现

What通常一个模型训练时有多个目标函数loss同时训练就可以叫多任务学习,预测时输出多个结果的模型就是多任务模型Why工业界实际应用时维护单个模型比同时维护k个模型更方便,成本更低提高泛化性能How思路1:手工加权平均基本思想:对于多任务的loss,最简单的方式是直接将loss函数对于每个任务的loss进行加权- 这种方式手工设置权重,模型性能对权重的选择非常敏感,而且loss的权重作为超参数进行调参很不方便,更好的加权方式应该是自适应动态调整的..

2021-04-27 17:14:56 4199

原创 深度学习移动端在线训练 --- 基于MNN的端侧Finetune实现

开篇吐槽​ 在决定使用MNN实现在线训练之前,也比较了TNN/NCNN,但是发现目前各大端侧推理引擎的训练框架都不成熟,半斤八两的状态,可能都把精力放在在线预测和op支持上,但是端侧训练的需求真的少么?fine-tune在端侧应用难道不是刚需?查了下NCNN关于训练框架的文档或教程几乎没有,移植到端侧应用的更是没找到案例,NCNN发布几年至今没有完善的官方文档,目前只有github里的几个关于编译和入门的简单markdown(可能大神都是直接撕源码),这一点同是开源的MNN好一丢丢,至少文档结构清晰,代码

2021-04-15 17:58:36 2246 2

原创 深度学习数据增强方法小结

数据至上: 深度学习依赖数据的数量和质量,很大程度影响模型性能的好坏数据增强: 利用现有的数据产生等价于数据扩增的价值,提高模型的泛化能力数据增强技术分为有监督的和无监督的有监督的数据增强图像领域的几何变换(如翻转,旋转,裁剪,变形,缩放等),颜色变换(如随机噪点,模糊,扰动,擦除填充)SMOTE: 基于K近邻随机插值,将小样本合并成新的样本,常用于解决数据不均衡的分类问题算法基本流程:第一步,定义好特征空间,将每个样本对应到特征空间中的某一点,根据样本不平衡比..

2021-03-26 17:09:42 1514

原创 神经网络调优 --- batch_size

batchsize和收敛速度/性能的关系1. 一般来说,在合理的范围之内,越大的 batch_size 使下降方向越准确,震荡越小;但batch_size越大越容易陷入局部最优。2. 小的 bath_size 引入的随机性更大,单次epoch耗时更久,且震荡大难以收敛,但一般会获得更好的泛化性能。3. 同时,更小的bath_size需要更大的学习率learning_rate调参经验1. 当有足够算力时,选取batch size为32或更小一些,需要更长的训练耗时。2. 算力不够时,..

2021-03-16 11:36:54 1481 2

原创 神经网络调优 ---学习率lr

Pytorch学习率调整策略通过 torch.optim.lr_sheduler 接口实现。pytorch提供的学习率调整策略分为三大类,分别是:有序调整:等间隔调整(Step),多间隔调整(MultiStep),指数衰减(Exponential),余弦退火(CosineAnnealing);自适应调整:依训练状况伺机而变,通过监测某个指标的变化情况(loss、accuracy),当该指标不怎么变化时,就是调整学习率的时机(ReduceLROnPlateau);自定义调整:通过自定义关于epoc..

2021-03-16 11:34:05 2301 2

原创 深度学习移动端部署方案 --- MNN端侧推理引擎

MNN简介及应用场景一个轻量级的深度学习端侧推理引擎,核心解决深度神经网络模型在端侧推理运行问题,涵盖深度神经网络模型的优化、转换和推理。MNN为提供面向不同业务算法场景,不同训练框架,不同部署环境的简单、高效、安全的端侧推理引擎 MNN 。能够抹平 Android 和 iOS 的差异,碎片设备之间的差异,不同训练框架的差异,实现快速的在端侧部署运行,并且能够根据业务模型进行 OP 灵活添加和 CPU/GPU 等异构设备深入性能优化。深度学习模型应用流程:模型训练---->模型导..

2021-03-15 10:28:27 1480

原创 深度学习优化 --- 批标准化(知识总结&工作随记)

特征缩放的两种方法:归一化, 标准化归一化/标准化的作用1.统计建模中,如回归模型,自变量X XX的量纲不一致导致了回归系数无法直接解读或者错误解读;需要将X XX都处理到统一量纲下,这样才可比;2.机器学习任务和统计学任务中有很多地方要用到“距离”的计算,比如PCA,比如KNN,比如kmeans等等,假使算欧式距离,不同维度量纲不同可能会导致距离的计算依赖于量纲较大的那些特征而得到不合理的结果;3.参数估计时使用梯度下降,在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度..

2021-03-09 11:18:23 255

原创 机器学习数据预处理 --- 异常点检测(知识总结&工作随记)

异常检测算法 & PyoD算法库一般情况下,可以把异常检测看成是数据不平衡下的分类问题。但在现实情况中,异常检测问题往往是没有标签的,训练数据中并未标出哪些是异常点,因此必须使用无监督学习。引入PyOD库, 提供20多种异常值检测算法的APIpip install pyod前人经验:(来自zhihu/csdn)1. 不存在普遍意义上的最优模型,不过有些模型的表现一直不错,建议优先考虑。对于大数据量和高纬度的数据集,Isolation Forest算法的表现比较好。低维

2021-03-05 13:52:54 2141

原创 Conda常用命令行整理

conda更新# 更新condaconda --versionconda update conda环境管理conda create -n xxx python=3.5 # 创建python3.5的xxx虚拟环境conda activate xxx # 开启xxxx环境conda deactivate # 关闭环境conda env list # 显示所有的虚拟环境conda..

2021-03-02 15:13:53 330 1

转载 [转载] 如何学习大型项目的源码

最近有朋友突然问我一个问题 “你怎么把UE4引擎代码看的那么深入的?” 看到问题后我还愣了一下,因为这是第一次有人给我打了个”深入UE4”的标签。其实我接触虚幻引擎满打满算也就两年,确实谈不上深入。只是靠着平时的学习习惯积累,写了一些相关的技术文章。 但这个事却让我突然意识到最容...

2021-02-08 10:10:16 283

转载 [转载] UE4性能分析

UE4性能优化 在使用虚幻4做项目的过程中性能一直是不可忽视的话题,为了画面效果我们至少需要每秒20帧左右。根据不同的项目要求这个帧数可以能要40或者60,甚至在某些情况下会要求更高。 本文根据官方文档博客等综合而来,意在发现问题所在更高效的解决问题,下文将根据CPU,GPU来分...

2021-02-07 15:51:30 4718 1

转载 [转载] UE4网络基础 - Client和Server的区分

判断当前是在Client or Server执行方法,敏感信息应放在服务端计算,而客户端只做展示 区分当前运行的是客户端还是服务器 蓝图中,有个 SwitchHasAuthority 宏: FORCEINLINE_DEBUGGABLE bool AActor::...

2021-02-07 15:13:41 3124

原创 Python在自动化分析工具中的应用-工作随记

目录文件及路径相关操作正则表达式数据格式转换数据分析神器Pandas最近工作中使用Python进行了大量的自动化工具的开发,剖除业务逻辑,记录一些要点。文件及路径相关操作涉及模块: os模块 shutil模块import osimport shutil常用接口os.getcwd() # 当前Python脚本工作的目录路径os.path.abspath(path) # 获取path路径的绝对路径os.chdir(path) # 切换路径到pathos.listd

2021-02-03 17:57:49 319 4

原创 UE4 网络基础

UE4网络基础client-server架构一个服务器,一个或多个服务端 (对比:P2P一对一全链接,去中心化网络)客户端不可信,所有重要信息经过服务器验证两种服务器类型Listen Server: 服务器上可以有游戏客户端Dedicated Server:专用服务器,没有游戏客户端运行网络信息传递的三种方式Replication (服务器–>客户端)Rep_Notify (服务器–>客户端)RPC (双向)网络复制Replicatio

2021-02-02 11:05:18 840 2

原创 UE4 UMG基础笔记

目录Runtime UI关联控件和数据拾取UI拾取逻辑的实现背包UI和逻辑实现UI节点动画UI拖放UIRuntime UI UIWidget蓝图类包括Event Graph 和 Designer UI控件布局: 边界 网格框 水平/垂直框 尺寸框 包裹框 间隔区 GameInstance中自定义UI控件创建事件并保存控件变量 get player controller create widget ad

2021-02-02 00:27:04 1972

原创 UE4 实时渲染原理&优化策略笔记

目录Rendering Before几何体渲染光栅化和GBuffer渲染和纹理像素着色器和材质反射静态光照和静态阴影动态光照和动态阴影雾和半透明后期处理[实时渲染补充内容]LOD贴花Decals次表面散射补充(PS:前方高能预警,官方大佬实时渲染进阶教程的笔记总结,大佬对渲染的原理解释很到位,只有知道原理才能理解为啥这样设置就可以优化性能,才能在实战中举一反三,保证干货满满,建议看完视频后再来,或者结合视频食用...)Rendering Bef

2021-02-02 00:22:37 5246

原创 UE4相关的一些常规技术随记

目录 Daz人物导出选项游戏打包蓝图配置数据表CameraShake蓝图样条场景采集组件+RenderTargetUE4调试技巧Daz人物导出选项游戏打包 注意事项 项目设置 - 地图 - 初始&默认关卡设置 项目设置 - 支持的平台设置 编辑器中设置预览渲染平台为对应平台 - preview rendering level 窗口 - 开发者工具 - 设备描述(Deviece...

2021-02-02 00:04:25 727

原创 UE4 Sequencer基础入门笔记

目录基础概念快速入门进阶设置基础概念 Sequencer 编辑器使用户能够用专业的多轨迹编辑器(类似于Matinee )创建游戏内过场动画。通过创建 关卡序列(Level Sequences) 和添加 轨迹(Tracks),用户可以定义各个轨迹的组成,轨迹可以包含动画(Animation)(用于将角色动画化)、变形(Transformation)(在场景中移动各个东西)、音频(Audio)(用于包括音乐或音效)和数个其他轨迹(Track)类型等 Sequencer通过添加关键

2021-02-01 23:59:49 7787

原创 UE4 Niagara粒子系统基础笔记

目录Niagara基础概念Niagara官方建议Niagara堆栈面板Niagara渲染模式&材质Niagara和蓝图Niagara常用模块Niagara常用技巧Niagara ModuleScriptNiagara基础概念 插件启用Niagara 和 Niagara Extras 创建粒子发射器Niagara Emitter 和 粒子管理系统Niagara System Fx - Niagara Emitter 右键Em

2021-02-01 23:50:23 14466 2

原创 UE4 LandScape基础笔记

目录Landscape基本工具LandMass插件工具landscape材质landscape根据权重绘制植被地貌材质相关节点地形材质像素深度偏移三种植被工具Landscape基本工具 雕刻 - 雕刻工具:基本雕刻工具 雕刻 - 侵蚀工具&雨水侵蚀工具:模拟自然形成的山脉山脊、沟壑效果 雕刻 - 平滑工具:平滑地形 雕刻 - 平整工具:类似球场方形规整地形 雕刻 - 噪点工具:给全局地形加噪点,随机起伏 雕刻 -

2021-02-01 23:41:55 4785

原创 UE4 AI基础笔记

目录AI controller行为树与黑板导航组件普通蓝图中的检测节点EQS环境查询系统AI两种巡逻方式AI动画AI运行时调试信息显示AI controller 新建继承AI Controller蓝图类,角色使用该类来控制 行为树的控制在该蓝图中处理 行为树与黑板 BehaviorTree run behavior tree 三种流程控制 sequence 顺序执行 ..

2021-02-01 23:39:27 1041

原创 UE4 GamePlay框架要点 - 基础对象

目录UObjectActor与组件APawn&AcharacterAController & APlayerStateAPlayerController & AAIControllerULevel关卡 & UWorldUGameMode & UGameStateUGameInstanceUSaveGameUSubsystemUDamage UObject UE一切对象的起点,提供反射、序列化等机制

2021-02-01 23:37:02 691

原创 UE4碰撞专题笔记

目录碰撞基础碰撞查询详解碰撞应用碰撞基础 静态网格体里需要区分复杂碰撞和简单碰撞 简单碰撞可以通过盒体、球体、凸包分解等算法生成,适用于简单的单个模型 复杂碰撞适用于组合的复杂模型,比如带有门的一面墙需要部分阻挡部分不阻挡,可以将碰撞模式设置为将复杂碰撞用于简单碰撞(影响性能) 植被工具设置碰撞 需要模型(Static Mesh)设置好碰撞的同时,植被工具里设置植物的碰撞预设 Actor的碰撞是组件的碰撞, 触发事件:on com

2021-02-01 23:33:04 1101

原创 UE4光照学习笔记

目录光照基础静态光照与烘焙动态光照结合使用静态光照和动态光照光照特效反射雾和立体光源全局烘焙ligthmass进阶其他光照技巧关于体积雾的设置光照基础 四种基本光照Actor SkyLight是一种特殊的光照:采集一张天空360度全景图(立方体贴图cubemap),读取贴图颜色信息后设置天空光照,然后投射回场景。用于模拟天空大气的散射光照 光照可移动性设置极其重要 决定将那些光照烘焙进静态贴图,哪些实时渲染

2021-02-01 23:26:25 5333 4

原创 UE4动画系统笔记

目录0、UE4动画基础概念1、模型 - 骨骼 - 动画 - 动画蓝图基础2、 动画/模型导入及骨架重定向3 、动画类型&动画融合UE中动画相关类型主要包括:UE中动画融合主要有两类方法:混合动画的轴向设置(Axis Settings):瞄准偏移动画蒙太奇动画:4、蒙太奇动画专题5 、动画蓝图中的重要节点事件图表特定事件和重要节点:动画图表重要节点:6、装备物品附加到角色7、RootMotion8、动画IK9、动画通知10、动画曲

2021-02-01 23:17:39 4926

原创 UE4场景搭建小记

目录场景搭建工作流天光性能问题设置自动LOD指数级高度雾DirectLight后期处理盒子场景搭建工作流 整体布局+地形制作+模型摆放 地形&模型材质制作或调整 打光&后期:静态烘培+动态光照+阴影+后期盒子 场景交互:可交互模型蓝图+关卡蓝图 场景特效:粒子+后期材质 场景物理:物理模拟+物理破碎 整体布局微调+性能统计优化 (个人学习一段时间理解的场景搭建步骤,非专业,大佬轻喷,欢迎评论区指

2021-02-01 23:03:32 3463

原创 UE4材质基础总结

目录图形学基础知识材质和材质实例概念动态材质实例概念材质细节面板关键参数PBR基础(Physically based rendering)材质节点基础参数材质图表的计算节点使用贴图制作PBR材质玻璃&水材质制作(初级)角色皮肤、毛发材质制作(初级)材质函数材质UV计算技巧材质常用属性设置&节点后处理材质基础图形学基础知识 除了自发光物体,成像皆由视网膜接收物体各尺度平面反射的光线构成 光照效果一般可分为漫...

2021-02-01 22:44:44 14626

转载 【转】linux日志分析常用命令大全

1、查看当天有多少个IP访问:awk '{print $1}' log_file|sort|uniq|wc –l 2、查看某一个页面被访问的次数:grep "/index.PHP" log_file | wc –l 3、查看每一个IP访问了多少个页面:awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file

2017-06-16 21:57:10 932

转载 【转】 用Qt Creator编译opencv并配置开发环境

原文链接:http://blog.csdn.net/scien2011/article/details/52830794#reply前言OpenCV是一个跨平台计算机视觉库,使用前需要把它编译成二进制的静态库和动态库,之后在代码中直接连接到二进制库。网上很多教程都是用CMake配合MinGW编译opencv,其中需要用到命令行操作,其实有更简单的方法,Qt Creator支

2017-05-09 10:24:28 2062 1

原创 C++简单实现几种常用的设计模式

本文介绍几种常用的设计模式并给出C++实现。1.单例模式作用:保证一个类只有一个实例,并提供一个访问它的全局访问点,使得系统中只有唯一的一个对象实例。应用:常用于管理资源,如日志、线程池实现要点:在类中,要构造一个实例,就必须调用类的构造函数,并且为了保证全局只有一个实例,需防止在外部调用类的构造函数而构造实例,需要将构造函数的访问权限标记为private,

2017-05-07 22:03:31 9884 2

转载 【转】TCP为什么需要三次握手?

原文链接:http://blog.csdn.net/worldwindjp/article/details/17554785tcp为什么要第三次握手,time_wait是做什么的? tcp有几种状态,画出所有的状态转换图。 晚上看到的面试题,TCP三次握手的印象很深,但为什么需要3次握手,还是想不起来了。简单而言:如果不是三次握手的话,那么到底需要几次握手最

2017-05-05 22:18:47 482

原创 C/C++重难点总结系列(五)

41.C++文件流操作多态性:fstream继承自iostream,ifstream继承自istream,ofstream继承自ostream,因此参数为iostream的引用/指针的可以直接传入fstream的实参。操作步骤:创建文件流,打开文件,读写文件,关闭文件。操作示例: char data[100]; // 以写模式打开文件 ofstream outfil

2017-05-05 21:59:56 1530

空空如也

空空如也

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

TA关注的人

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