More on Scene Management

雅思听力词组总结 雅思听力词组总结(涵盖几乎所有雅思真题词组)已更新至1037条 阅读详情

 More on Scene Management

仅供个人学习使用,请勿转载,勿用于任何商业用途。

 

     相信很多人都看过Tom Forsyth那篇著名的文章<<Scene Graph – just say no>>。我第一次看时,只觉得是Tom开的一个小玩笑。不过最近,随着对scene management研究的深入,感觉对于大多数游戏来说,scene graph确实不是那么必须。

      由于scene graph实在是一个被严重滥用和误用的词,虽然以前的文章介绍过scene graph,为了避免不必要的误解,再次列出关于SG的概念:纯粹的SG只用来描述场景中物体间的空间逻辑关系而不是简单的空间关系。如果SG中包含任何的quadtree/octree, bsp等空间数据结构,那么这肯定不是一个SG;不应该使用SG进行裁剪或者碰撞检测。简单来说,SG就是一棵n叉熟。

      游戏中什么对象需要描述空间逻辑关系呢?显然,对于静态物体来说是没有必要的,即使它包含空间逻辑关系,但由于本身“不会移动”的特性,可以在加载这个物体时就预计算出它的绝对世界坐标。对于可移动物体,骨骼动画显然是最适合用SG来描述的,比如人物身体各部分之间的移动关系。不过更常见的情况是把同一骨骼下的物体作为一个整体,并用一个特殊的内部结构来描述其空间逻辑关系。比如整个人物是一个model对象,身体每个部份是model内的subMesh对象(类似Ogre里Entity和SubEntity的关系)。

     仔细想想,游戏中似乎只有几种情况下可能需要使用scene graph,以wow为例:1,人物身上可附加的装备,比如剑,帽子;2,当人物骑到坐骑上;3,跟随某个角色移动。目前为止,我只想到这3点。

     我现在的设计中,SG非常简单,只包含可移动的物体,不会出现很深的分支,并且整个树结构将会非常flat——大部分可移动物体都直接连接到根节点。当然,对于游戏编辑器来说则不太一样,编辑器中,所有物体都是可移动的,并且通常需要移动一整个对象组,这时,SG中就包含了所有物体。

     那么如何进行场景管理,culling和collision detection呢?把场景中所有物体都抽象为SceneObject。场景管理通过SceneManager完成,SM内部维护了多种数据结构,分别是Dictionary,SceneGraph,StaticSpatialGraph,DynamicSpatialGraph。SpatialGraph是用来进行空间划分的数据结构,引擎将通过它实现culling和collision detection。StaticSpatialGraph并不必须是某种特定的数据结构,比如grid, quadtree,octree,bsp或者pvs,而可以是由多种结构组成的混合树:每个SpatialNode只需要实现ICullable接口,实际的SpatialNode可以是前面提到的任何一种结构,非常具有灵活性,当然,子节点所覆盖的范围不能超出父节点。理论上,DynamicSpatialGraph也可以由多种节点组成,但由于其本身的动态特性——会动态改变树形结构,所以实时生成各种不同的节点并不现实。当一个so加入到sm时,sm将会把这个物体添加到Dictionary之中,以便以后访问;之后,检查so是否可移动,如果可以,同时添加到SceneGraph和DynamicSpatialGraph中,如果是静态的,则只添加到StaticSpatialGraph。对SceneObject来说,SpatialGraph是透明的,SceneObject完全不需要知道SpatialGraph的存在。

 

(update on 5.5 09):

      前几天刚好看到有人在讨论sceneObject与sceneNode应该分开还是合并, 从上面的讨论可以看到,sceneObject并不总是sceneNode,两者的职责是非常不同的,合并到一起会让整个系统非常难以扩展和修改,每次scene graph的管理方式改变,都会影响到所有sceneObject。SceneObject并不需要知道关于场景结构的任何信息,sceneNode通过接口负责为sceneObject提供最终的世界坐标,你可以用任何管理方式(group策略)进行场景管理,不会影响sceneObject系统。在任何设计良好的引擎中,都应该把sceneNode和sceneObject分开,max,maya甚至ogre都是这样。

 

 

【202503】Wan:开放且先进的大规模视频生成模型【1.3B、14B】【支持对无限长度视频进行稳定的Inference】【Wan中的主要计算开销来自注意力机制】 wan: Open and Advanced Large-Scale Video Generative ModelsWan:开放且先进的大规模视频生成模型Wan Team, Alibaba Group Wan 团队,Alibaba GroupThis report presents Wan, a comprehensive and open suite of video foundation models designed to push the boundaries of video generation 阅读详情

相关推荐

视觉特征-自监督-同源不同crop视图一致性【2025-08】:DINOv3【DINOv2+Gram损失=DINO损失+(iBOT损失+Gram损失)+KoLeo正则化损失】

自监督学习有望消除手动数据标注的必要性,从而使模型能够轻松处理大规模数据集以及更复杂的架构。由于无需针对特定任务或领域进行定制,这种训练方式能够利用单一算法从各种来源获取视觉表征,这些来源包括自然图像和航空图像等。本技术报告介绍了 DINOv3,它通过简单而有效的策略,为实现这一目标迈出了重要一步。首先,我们通过精心设计数据准备流程并进行优化,从而提升数据集与模型规模的扩展能力;其次,我们提出了一种名为“Gram 锚定”的新方法,该方法有效解决了在长时间训练过程中特征图质量会下降这一长期存在的难题。

u013250861的博客 351

Meta Super Sensing AI眼镜:边缘计算与传感器融合技术解析

边缘计算作为分布式计算的重要分支,通过在数据源附近进行本地化处理,有效降低了云端传输延迟并提升了数据隐私安全性。其核心技术原理在于将AI模型部署到终端设备,实现实时数据分析和智能决策。在可穿戴设备领域,边缘计算与传感器融合技术的结合创造了巨大价值,能够支持全天候的智能感知和自然交互。Meta Super Sensing AI眼镜正是这一技术的典型应用,通过多模态传感器配置和本地AI处理架构,实现了无感化的场景识别和时刻捕捉功能。该设备采用定制AI芯片和轻量化模型,在保持设备轻便性的同时,为开发者提供了完整的

weixin_33690963的博客 379

Anima动漫模型与ControlNet控制技术:局部重绘与美学提升实战指南

稳定扩散(Stable Diffusion)作为文本到图像生成的核心技术,通过深度学习模型将文本描述转化为高质量视觉内容。其原理基于扩散过程的逆向推导,逐步从噪声中重建目标图像。在动漫创作领域,Anima模型针对动漫风格进行了专门优化,而ControlNet控制网络则通过条件输入实现生成过程的精确调控。局部重绘技术作为图像编辑的重要应用,能够基于上下文感知智能修复特定区域,保持风格一致性。结合Lora模型的参数高效微调,可以进一步提升画面美学质量。本文聚焦Anima动漫模型与ControlNet的协同应用,

weixin_30824599的博客 443

DALL·E 3语义理解革命:从提示词工程到视觉协作范式

AI图像生成已超越‘文本到图像’的简单映射,进入以语义理解为核心的视觉生成新阶段。其底层逻辑是通过跨模态对齐、指代消解与人类反馈强化学习(RLHF),实现对自然语言意图的深度解析与上下文补全。这种技术价值不仅提升生成准确性与鲁棒性,更重塑创意工作流——设计师不再调试参数,而是以自然语言与模型协同迭代。典型应用场景涵盖广告视觉化、教育插图生成、UI/UX快速原型及工业设计草图等需‘抽象→具象’转化的领域。DALL·E 3代表的不是工具升级,而是视觉语言交互范式的根本跃迁。

weixin_33834137的博客 411

VLA-2025-03:GR00T N1【骨架:Eagle-2;端到端双系统VLA:S2 VLM+S1 DiT+FM;数据:单/双臂+人形,机器人+人类+仿真+神经共592.9M帧/8375.7小时】

通用机器人需要多功能的躯体和智能的头脑。近年来,人形机器人的发展在构建人类世界中通用自主性的硬件平台方面展现出巨大潜力。一个基于海量多样化数据源训练的机器人基础模型,对于使机器人能够推理新情况、稳健应对现实世界的多变性以及快速学习新任务至关重要。为此,我们推出了GR00T N1,一个面向人形机器人的开放基础模型。GR00T N1是一个具有双系统架构的视觉‑语言‑动作(VLA)模型。视觉语言模块(系统2)通过视觉和语言指令来解读环境。随后的扩散Transformer模块(系统1)实时生成流畅的电机动作。

u013250861的博客 285

视觉特征-自监督-同源不同crop视图一致性【2021-05】:VICReg【同图➜双视图➜特征不变性】【批次每行一图、每列一特征维度】【正则化:列内方差防坍塌+列间协方差去冗余】【无负样本】

Abstract摘要最近的图像表征学习自监督方法通过由输入的编码器生成的之间的来进行学习。主要挑战是防止发生坍塌,即编码器生成恒定或无信息的向量。我们提出了与大多数解决相同问题的其他方法不同,并且在多项下游任务上取得了与最先进方法相当的结果。此外,我们表明,方差正则化项能够稳定其他方法的训练,并带来性能提升。

u013250861的博客 184

ATE test for STB(机顶盒) chip Kronos from Trident

数字视频变换盒(Set Top Box)简称STB,通常称作机顶盒或机上盒,是一个连接电视机与外部信号源的设备。它可以将压缩的数字信号转成电视内容,并在电视机上显示出来。信号可以来自有线电缆、卫星天线、宽带网络以及地面广播。机顶盒接收的内容除了模拟电视可以提供的图像、声音之外,更在于能够接收数字内容,包括电子节目指南、因特网网页等等。它使用户能在现有电视机上观看数字电视节目,并可通过网络进行交互式数字化娱乐、教育和商业化活动。

m0_37918394的博客 450

Unity音频系统深度解析:从3D音效到鸿蒙跨平台实战

在游戏开发与多媒体应用领域,音频系统是实现沉浸式体验的关键技术组件。其核心原理基于数字信号处理(DSP)管线,通过对音频信号的实时处理,模拟声音在三维空间中的传播、衰减与混响效果,从而创造出身临其境的听觉感受。这项技术的工程价值在于,它直接关系到应用的性能表现与多平台兼容性。尤其在移动端和新兴平台(如鸿蒙HarmonyOS)上,高效的资源管理与低延迟播放是保障用户体验的基石。常见的应用场景包括游戏中的环境音效、角色对话、UI反馈,以及各类需要空间音频的VR/AR应用。本文将聚焦于Unity引擎的音频架构,深

weixin_34290096的博客 493

DAZ Studio 4.10简体中文版安装全指南:系统预检、编码配置与静默部署

DAZ Studio 是面向三维角色创作的专业级内容驱动型应用,其稳定运行高度依赖底层系统环境——包括 DirectX 12、.NET Framework 4.8、Visual C++ 2015–2022 运行库及 OpenGL 4.5 兼容显卡驱动。安装失败的常见表象(如中文乱码、Missing Runtime 报错、setup.exe 无响应)本质是系统区域设置冲突、UTF-8/GBK 编码解析异常或运行库版本不匹配所致。技术价值在于建立可复用、可批量部署的标准化安装基线;典型应用场景涵盖新手避坑、旧版

weixin_30883311的博客 523

【信息科学与工程学】计算机科学与自动化—第十五篇 云计算 11 算法篇01

编号类型领域问题问题的数学分析(含几何学/拓扑学/代数学/数论/集合论/离散数学/概率论/统计学/其他)及数值分析及算法分析及参数列表及参数数值设计C/C++/rust/python代码软件(含编译器)及硬件资源需求(CPU/GPU/内存【NAND/DRAM/HBM/其他】/HBM、HDD、SSD、RAID卡、其他)关联知识1工作负载调度数据中心最小化总完成时间/成本。

weixin_49199313的博客 215

DDR4协议规范之(一)DDR4结构和寻址

DDR4 SDRAM结构和寻址DDR4 SDRAM的封装和寻址新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 DDR4 SDRAM的封装和寻址 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习

YJFeiii的博客 3万+

名言汇总阿

核心资产,是我们的立足之本,一旦失去,很难再重新积累。底线思维,就是时刻牢记什么是最重要的,什么是不能失去的。异常收益,往往伴随着非常规风险,这些风险往往是隐性的、难以察觉的。巴菲特说:「不要用属于你、并且你也需要的钱,去挣那些不属于你、你也不需要的钱。这太愚蠢了,用对你重要的东西去冒险赢得对你并不重要的东西,简直无可理喻,即使你成功和失败的比率是100比1,或1000比1。那些诱人的暴利故事、深夜跳动的K线图、酒局上的财富神话,在生存主义的滤镜下,都显影为不同形态的风险陷阱。⑥守护种子比收割庄稼更重要。

qq_32424581的博客 325

拜耳阵列(Bayer Pattern)和解马赛克简介

拜尔阵列由柯达的布莱斯·拜尔发明,拜尔阵列将更多的像素用于绿色,而不是红色和蓝色,因为人眼对绿色更敏感。但这张照片,每个像素只有rgb中的一种颜色,每个像素还缺少其它两个颜色分量,效果如下图3所示。典型的图像传感器(例如我们在数码相机中使用的图像传感器,主要有CCD, CMOS)由许多单独的光电传感器组成,所有这些传感器都会捕获光线。如果想要获得不同颜色的光,最直接的做法是加入不同颜色的滤镜,从而滤出 RGB 三个通道的颜色。这个覆盖层可以理解为一个过滤层,每种类型的过滤器通常只允许一种颜色的光线的通过。

qq_34999565的博客 5982

世界-语言-动作模型:统一世界建模、语言推理与动作合成

Yi Yang 1,2,†, Zhihong Liu 1,†, Siqi Kou 1,†, Yiyang Chen ¹, Yanzhe Hu³, Jianbo Zhou ⁴, Boyuan Zhao 5, Zhijie Wei 6, Xiao Xia 1, Xueqi Li 2,7, Pengfei Liu 1,2, Zhijie Deng 1,1SJTU, 2SII, HUST, 4SCUT, 5ECUST, 6SHU, 7NJUPT †Equal Contribution, †Corresponding

u013250861的博客 73

睿尔曼复合机器人之底盘操作流程

控制键”按下后,可在键盘上通过‘i’(向前),‘k’(向后),‘j’(向左旋转),‘l’(向右旋转)四个按键对底盘进行运动控制。选中禁⾏线功能后,使⽤⿏标在界⾯内点击选择起点,继续在其他地⽅点击,两点之间会连成⼀条线,可以进⾏多次连续点击,形成连续线条。4)扫图完成后,软件会重新启动,返回到监控页面,点击“激光”可看到当前机器激光扫描的实时数据,在页面上表现为红色边界线,点击菜单栏“控制”键使底盘在一定范围内运动,扫描到尽可能多的边界线,可发现与实际地图的黑色边界线不同,需要进行手动校正。

realman_Rop的博客 1473

无刷电机控制避坑指南:六步换向 vs FOC的5个关键差异

本文深入对比了无刷电机控制中六步换向与FOC(磁场定向控制)的五大核心差异。从控制逻辑、性能表现、效率能耗、硬件成本到应用场景,详细解析了FOC如何通过矢量合成实现平滑的正弦波控制与更高效率,而六步换向则以低成本实现简单开关驱动。旨在帮助工程师根据项目需求,在性能、成本与复杂度间做出最佳选择。

weixin_29216957的博客 506

2025-2030年下一代音频编解码技术展望与产业深度研究报告2025-2030年下一代音频编解码技术展望与产业深度研究报告

摘要: 2025-2030年,音频编解码技术将迎来从压缩向感知重构的范式转变。神经音频编解码(NACs)通过生成式AI实现超低比特率高保真传输,SoundStream、EnCodec等模型突破传统极限。沉浸式音频领域,开源IAMF(Eclipsa Audio)挑战Dolby Atmos垄断,推动3D音频普及。无线传输方面,Qualcomm XPAN技术实现无损音频无线传输。报告指出,三大技术(NACs、沉浸式音频开放化、无线协议突破)将驱动全球音频市场从2025年77亿美元增长至2030年100亿美元,CA

greenspan的专栏 3581

数学之美 | 图论和网络爬虫

文章目录概述图论网络爬虫分析BFSDFSBFS + DFS参考资料 概述 这篇文章主要给大家介绍一下计算机算法中非常重要的一部分——图论,以及它在生活中的应用——网络爬虫。   图论 离散数学是当代数学的一个重要的分支,也是计算机科学的数学基础。它又包括四个分支,而图论便是其中一支,另外三个分别是:数理逻辑、集合论、近代数学。 图论中的图由一些节点和边构成,比如下面这张图 。 在图论中一个很基础...

小小酥梨的博客 3231

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

华硕主板UEFI模式下安装Ubuntu与Windows双系统全攻略

本文详细讲解了在华硕主板UEFI模式下安装Ubuntu与Windows双系统的完整流程。从安装前的BIOS关键设置(如处理安全启动与CSM)、使用GPT分区表,到在Windows中安全分配空间、手动创建Ubuntu分区,最后完成引导配置,提供了避免常见错误的实用技巧,确保双系统稳定共存。

weixin_29199873的博客 345

如何将 Fiori Elements Object Page Header 工具栏里按钮用 JavaScript 代码设置成禁用状态

本文介绍了如何在SAP Fiori Elements应用中动态控制Object Page工具栏按钮的可用状态。通过UI5 Inspector工具分析发现,这些按钮的enabled属性都双向绑定到/ui/enabled模型字段。在StatusExt.controller.js中,通过获取按钮ID前缀拼接完整控件ID,使用setEnabled(false)方法即可禁用按钮。关键点包括:1)使用extensionAPI获取视图ID前缀;2)注意事件回调中的this上下文绑定;3)通过修改模型字段可同步更新所有绑定

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 370

搬家了,新地址http://www.cnblogs.com/clayman/

   终于决定搬家,难用都还可以勉强忍受,可是最近居然开始乱封blog了,怕怕。可惜那么多文章带不走,手动把部份我觉得比较有价值的文章搬过去了。呵呵,欢迎大家有空过去看看:)。 此blog将不再更新...........

Clayman的专栏 18万+

结构光之相移法+多频外差的数学原理推导

‍论文:基于数字光栅投影的结构光三维测量技术与系统研究 [博]作者:李中伟 华中科技大学 2007功能:相移法:多频外差(三频N步相移法)01 相移法图1 待写入投影仪的理想N步相移条纹通常对于 步相移来说,生成第 幅条纹图像(如图1所示)的公式如下:402 Payment Required其中::背景光强:调制强度:像素点横向坐标:相移值图2 相机拍摄到的实际 N ......

3D视觉工坊 1188

Scene Management --- scene graph

Scene Management -- scene graph仅供个人学习使用,请勿转载,勿用于任何商业用途。              下面是一个简化的游戏引擎数据流,每一帧,scene data作为数据源,输入到物理/碰撞检测和AI子系统,子系统更新所有物体的状态(包括位置,光照信息等等),之后数据流入渲染系统,最终显式在屏幕上。         显然,后面两部分的效率都依

Clayman的专栏 7736

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

一些关于引擎设计,Scene Management的文章

    这几天逛GameDev,几乎把所有和Scene Management相关的文章和帖子都翻遍了,看到各种牛人的讨论,受益匪浅啊,对研究引擎设计非常有用,把部分特别有意思的帖子列出来,希望对你也有帮助:)  (以下顺序不分前后) (update on 4.23.09)The Technology of a 3D Engine  part 1, part 2, part 3S

Clayman的专栏 6801

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 0.033秒的艺术 ---- XNA数学库中的陷阱
下一篇: Make Your Game Input Robust
soilwork
博客等级 码龄23年 290粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值