CocosCreator游戏性能优化

【包教包会】CocosCreator组件label实现字体合批、变色、排版 包教包会、ccLabel合批、组件、Typescript 阅读详情

为什么合批能提升性能?

  • 游戏引擎绘制一个游戏页面,首先需要遍历此页面中的所有需要绘制的物体,然后把这些物体提交给GPU来进行绘制。大体流程如下
  1. CPU 准备绘制所需要的数据:位置、尺寸、纹理等等
  2. CPU下达绘制命令(draw cmd)
  3. GPU 渲染物体,显示出来
  • 如果页面中有100个物体需要提交给GPU进行绘制,如果一个一个的提交,则需要执行100次绘制过程。1和2 会多次频繁调用,且、1和2开销也是比较大的,3会不饱和:类似一车次高铁只乘坐一位乘客。
  • 合批:把游戏中场景中的多个物体合并到一起,一次性传递给GPU进行渲染。如果我们把100个物体合并成一个批次,只需要执行一个1和2。虽然和增大3的开销,但是GPU的性能比较的强,综合下来,可以大大的提高渲染性能。

如果查看系统的DrawCall?

通过CocosCreator 的show fps 即可查看Draw call次数。
在优化之前需要先清楚DrawCall次数的分布情况。

  • label +1
  • button +1。相邻button节点不增加
  • sprite +1。相邻sprite节点不增加,sprite默认开启了packable。
  • button和sprite 如果被label间隔开来,都会增加。label打断合批。
    - 最直接的查看某个节点占用的dc次数,直接显隐目标节点,对比前后两次dc变化即可。

合批常用的技术原理和缺点

  • 静态合批
    • 引擎将静态(不能移动)的可以合批(具有相同材质)的物体通过预先计算,生成一个包含这些小物体的大物体,然后把这些大物体一次性传递给GPU 进行绘制。 相当于多个小物体一次性进行绘制。
    • 优先:提升渲染效率
    • 缺点:预先计算,增加启动时长。计算出新的大物体,可能会因为模型顶点增加,增大内存的开销。
  • 动态合批
    • 绘制的时候,CPU计算出这些相同材质物体的每个顶点*世界矩阵=>世界坐标,加上材质,提交给GPU。
    • 优点:能合批,提高渲染效率。
    • 缺点:实时占用CPU,增大了CPU的开销。因此进行动态合批的物体,顶点数目不能过多。当增加的CPU开销 > 合批带来渲染提升 =>导致性能不增反降。
  • GPU Instancing 合批
    • 同一个物体的N个实例的情况,我们提交一个物体的Mesh给GPU绘制出来N个实例。这N个实例可以拥有不同的位置、旋转、缩放等等。

3D优化DrawCall注意点

2DGUI优化DrawCall注意点

CocosCreator休闲游戏开发框架YAFramework:提效、降本与性能优化实战 在游戏开发领域,UI管理、音频播放与数据存储是构建任何交互应用的基础模块。其核心原理在于通过模块化与组件化设计,将通用功能封装为可复用的服务,以降低系统耦合度并提升代码可维护性。这类技术的核心价值在于显著提升开发效率、保障代码质量,并优化运行时性能,尤其适用于追求快速迭代的休闲游戏与混合变现小游戏等应用场景。本文聚焦的YAFramework,正是一个基于CocosCreator、深度整合了UI管理器、音频管理器与数据管理器等核心模块的休闲游戏开发框架,通过提供开箱即用的组件库与性能优化策略,帮助开发者将精力 阅读详情

相关推荐

CocosCreator微信小游戏开发避坑指南:从性能优化到上线全流程实战

游戏开发中,渲染性能优化和内存管理是保障流畅体验的核心技术。渲染性能的关键在于控制Draw Call,通过图集打包、合批渲染等技术可有效减少图形API调用次数,从而提升帧率。内存管理则需关注资源生命周期,避免泄漏导致闪退。这些优化对于资源受限的移动端平台尤为重要。在微信小游戏开发场景中,开发者需进一步适配平台特性,例如处理精灵拉伸等渲染兼容性问题,并合理接入广告等平台能力。本文基于实战经验,系统梳理了从项目构建、性能调优到发布上线的完整路径,针对开发中常见的性能瓶颈和平台适配难题,提供了具体的解决方案与避坑

weixin_30416871的博客 344

cocos creator 动态合批

cocos creator动态合批使用方式

qq_33022961的博客 1858

CocosCreator微信小游戏开发实战:从架构设计到性能优化的避坑指南

在移动游戏开发领域,跨平台引擎与特定运行环境的适配是开发者面临的核心挑战。其原理在于,不同的平台对资源管理、内存使用和渲染流程有着独特的约束与优化路径。掌握这些适配技术,对于提升应用性能、确保稳定性和优化用户体验具有关键价值,尤其在微信小游戏这类拥有严格沙盒限制的场景中。本文聚焦于CocosCreator引擎与微信小游戏平台的深度整合,针对**包体大小限制**和**内存与性能天花板**两大核心约束,系统阐述了从项目初期架构决策、资源规范制定,到运行时性能调优与真机调试的一整套工程实践方案,旨在帮助开发者高效

weixin_33826609的博客 356

Cocos Creator 的常用优化技巧

我们很多人喜欢用散图,这样,会影响绘制效率,所以一般我们会把散图达成图集,一次装载到显卡, 同时多个物体可以共用一个drawcall来批量完成绘制, 使用图集的时候,注意同时使用的图片放到一起,每个场景都要用的图片放一起。(2) 进入到游戏场景之前,将接下来常用的资源,预先加载进来,避免运行中加载出现"长时间卡住”的现象, 场景资源多的,加资源加载过度;运行时后,可能节点越来越多,内存越来越大,也越来越慢,把不用的节点都要删除掉, 检查节点数目,资源等;(5)复杂的算法,可以考虑预先计算好,用空间换时间;

hj3601947的专栏 1439

CocosCreator游戏性能优化实战:从资源、逻辑到渲染的全方位指南

在游戏开发中,性能优化是保障用户体验的关键环节,它直接关系到游戏的流畅度、加载速度和设备兼容性。其核心原理在于通过系统性的方法,降低CPU、GPU和内存的负载,从而提升运行效率。对于使用CocosCreator引擎的开发者而言,掌握一套立体化的优化策略具有极高的技术价值,能够有效解决项目上线后常见的卡顿、发热和包体臃肿等问题。这涉及到从基础的资源管理(如纹理压缩、图集打包)到中层的脚本逻辑优化(如对象池、事件管理),再到顶层的渲染效率提升(如Draw Call合批)等多个层面。特别是在棋牌类、中重度玩法等应

weixin_34341229的博客 485

Cocos Creator引擎开发:跨平台发布_性能优化与调试

性能优化和调试是开发高质量动作游戏不可或缺的环节。通过减少Draw Call、优化内存使用、优化CPU和GPU性能、优化物理引擎、使用调试工具和方法,以及遵循最佳实践,可以显著提升游戏的性能和玩家体验。希望本文的内容能帮助你在Cocos Creator引擎中更好地进行性能优化和调试。

chenlz2007的博客 1041

CocosCreator 游戏开发性能优化 —— ScrollView/ListView

CocosCreator 游戏开发性能优化——ScrollView / ListView优化说明1、复用 item2、sprite 和 label 层级不要混乱3、在2.1.1版本之前,label 组件有一个内存泄漏问题,使用2.1.1版本之前的项目可以手动合并PR。4、label 选择自动缩放模式的时候,建议不要勾选自动换行5、文本缓存模式6、cc.macro. CLEANUP_IMAGE_C...

Jno的博客 3431

Cocos Creator引擎开发:Cocos Creator基础入门_性能优化

在Cocos Creator中进行性能优化是一个多方面的过程,需要从资源管理、渲染优化、内存管理、代码优化和场景优化等多个维度进行考虑。

chenlz2007的博客 1553

CocosCreator射击游戏开发实战:从零构建核心系统与性能优化

游戏开发的核心在于构建高效、可维护的系统架构。数据驱动与模块化设计是游戏工程实践的基石,通过解耦游戏实体(如玩家、敌人、子弹)间的直接依赖,转而依赖事件或全局管理器进行通信,可以大幅提升代码的灵活性和可扩展性。这种设计模式的技术价值在于,它使得功能迭代(如新增子弹类型或特效)变得更为便捷,无需修改大量既有代码。在射击游戏等需要频繁进行对象创建与销毁的应用场景中,对象池技术是保障性能的关键,它能有效避免因频繁实例化与销毁对象而引发的内存抖动和帧率下降。本文以CocosCreator引擎为例,深入探讨了如何实现

weixin_34174105的博客 402

YAFramework:基于CocosCreator的休闲游戏框架实战指南

游戏开发是一个复杂且充满创意的过程,选择一个合适的游戏开发工具可以大幅提高开发效率并缩短产品上市时间。CocosCreator作为一个全面的游戏开发引擎,提供了从脚本编写到游戏发布一站式解决方案。它不仅支持2D游戏开发,也逐渐完善了3D游戏功能,适合各种复杂度的项目需求。YAFramework对于实际项目的效益主要体现在:开发效率的提升: 组件化设计大大提高了代码的可复用性。性能优化的简化: 框架提供的工具和策略使得性能调优更直接有效。热更新的便捷性。

weixin_33531560的博客 814

CocosCreator 2.x飞机游戏开发实战指南

CocosCreator是一个易用且功能强大的游戏开发引擎,它为开发者提供了一整套的开发工具和环境。2.x版本相较于早期版本,在性能和工作效率上都有显著的提升。它支持2D与3D游戏的开发,并且拥有丰富的组件化系统,使得开发者能够快速构建游戏功能和场景。组件化设计思想的核心在于将游戏或应用中独立且可复用的功能封装成模块,即组件。通过组件的组合,来完成复杂的功能,提高开发效率和程序的可维护性。组件化允许开发者在不同的游戏对象上使用同样的组件,而不需要重复编写代码。

weixin_35750747的博客 1183

Android原生应用集成CocosCreator游戏:环境配置、通信与性能优化实战

在移动应用开发中,混合开发模式因其能融合原生应用稳定性和跨平台内容灵活性而备受青睐。其核心原理在于通过桥接技术,实现不同运行时环境(如原生Java/Kotlin与JavaScript引擎)间的通信与资源共享。这种技术方案的价值在于,它允许开发者在现有App中无缝嵌入游戏或交互式内容模块,无需用户单独下载,从而提升用户粘性并实现功能的动态更新。典型的应用场景包括电商App内嵌促销小游戏、社交平台集成轻量级互动应用等。本文聚焦于将CocosCreator开发的游戏项目集成到Android原生工程这一具体实践,详

weixin_30911451的博客 346

Miniforge3部署教程,完美替代Anaconda3

大背景不介绍了,哎!直接上教程!

zzy_ucas的博客 1万+

游戏开发31课 cocoscreator 性能优化

性能优化

s178435865的专栏 753

Hyper-V虚拟机 安装 银河麒麟V10桌面版

如何在windows 11 Hyper-V 虚拟机中 安装 银河麒麟V10桌面版。

m0_46756112的博客 3418

人工势场法在自动驾驶避障中的实践与优化

本文深入探讨了人工势场法在自动驾驶避障中的核心原理与实践优化。通过解析引力与斥力模型,揭示了经典算法在局部最优和目标不可达等问题上的局限性,并重点介绍了改进斥力场函数、引入道路边界斥力及动态参数调整等关键优化策略,有效提升了该局部路径规划算法在复杂动态场景下的实用性与鲁棒性。

weixin_29208327的博客 924

CocosCreator游戏开发:ECS架构实战指南与性能优化

在游戏开发中,架构模式的选择直接影响项目的可维护性和扩展性。ECS(Entity-Component-System)作为一种数据驱动的架构范式,通过将数据(Component)、实体(Entity)与逻辑(System)分离,实现了关注点分离和更高的缓存友好性。其技术价值在于提升复杂游戏逻辑(如状态管理、大规模单位模拟)的代码清晰度与运行效率。在诸如麻将这类逻辑状态多变的游戏开发中,ECS能有效管理繁杂的状态迁移。结合CocosCreator引擎,开发者可以通过引入适配层,在保留引擎可视化编辑优势的同时,利

Eric.Net的专栏 437

垂直领域论坛数据挖掘:Python突破Discuz!加密与用户画像构建指南

在垂直领域论坛,如专业技术论坛、兴趣爱好社区等,积累了大量有价值的信息和用户数据。这些数据不仅可以帮助我们了解用户的行为模式和兴趣点,还能为社区运营、产品优化、商业决策等提供有力支持。然而,许多基于Discuz!系统的论坛对数据进行了加密保护,给数据挖掘带来了一定的挑战。本文将详细探讨如何使用Python突破Discuz!论坛的加密机制,并构建用户画像,实现数据掘金。

u014481728的博客 1693

CocosCreator 2.x飞机游戏开发实战:架构、性能优化与核心模块详解

在2D游戏开发领域,对象池和碰撞检测是保障游戏流畅运行的核心技术。对象池通过复用游戏对象,避免了频繁的实例化与销毁,能有效减少垃圾回收(GC)带来的性能卡顿,尤其适用于飞机游戏中子弹、敌机等大量生成的对象。碰撞检测则负责处理游戏对象间的交互,其效率直接影响游戏手感与性能表现。通过合理设置碰撞分组与优化碰撞体形状,可以大幅提升检测效率。这些技术共同支撑起游戏的核心玩法循环,在横版或纵版卷轴射击等经典品类中尤为重要。本文将结合CocosCreator 2.x引擎,深入探讨如何运用对象池管理子弹与敌机,并优化碰撞

dianjiaxian1205的博客 318

《FPGA接口与协议》专栏的说明与导航

《FPGA接口与协议》专栏的说明与导航(建议阅读)。

孤独的单刀 17万+

高精度导航 | RTK:2025年高精度导航算法综述,包括:原理,数据,公式,完整代码,开源代码链接

中国科学院国家授时中心的最新研究表明,PPP-AR/PPP-RTK增强算法使时间传递链路的稳定性提升超过30%,模糊度固定成功率高达93.57%,首次固定时间缩短至20分钟内。当这一愿景实现,人类社会的生产效率和资源利用率将迎来革命性提升,高精度定位将成为像电力、互联网一样的基础服务,深刻重塑我们的生活方式和文明形态。PPP-RTK作为GNSS定位领域的最前沿技术,成功融合了精密单点定位(PPP)和实时动态定位(RTK)的双重优势。,实现在无GNSS信号环境下(如隧道、地下停车场)的连续厘米级定位。

尘世冰封的专栏 1604

CocosCreator UI框架终极指南:轻松构建专业游戏界面

想要快速开发CocosCreator游戏但苦于界面管理复杂?CocosCreator UI框架正是你需要的解决方案!这个轻量级框架专门针对单场景游戏管理,将界面制作成预制体,提供了完整的界面显示、隐藏、释放等功能,让游戏开发更简单高效。 ## 🎯 为什么选择CocosCreator UI框架? **简单易用**:无需复杂的配置,快速上手 **功能完整**:包含界面管理、资源管理、场景管理等核

gitblog_00421的博客 992

opencode : 无法将“opencode“项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

opencode命令识别问题与openclawcodexgemini确保的路径在 PATH 中。这个知识对所有 npm 全局工具通用。

一键难忘的博客 4512

CocosCreator 小游戏开发教程

CocosCreator 小游戏开发教程 项目介绍 game_with_cocosCreater 是一个基于 CocosCreator 开发的小游戏集合,包含了多种经典游戏,如贪吃蛇、Flappy Bird、2048 等。该项目旨在帮助开发者学习如何使用 CocosCreator 开发游戏,并提供了多个游戏的实现示例。 项目快速启动 环境准备 安装 CocosCreator。 克隆项目仓库: g...

gitblog_00120的博客 872

用Playwright MCP让AI帮你完成所有浏览器自动化

Playwright MCP(Model Context Protocol)是微软基于 Playwright 框架推出的 AI 浏览器自动化新协议。它通过结构化快照数据和自然语言指令结合大型语言模型(如 GPT),实现无需编码的网页交互。无论你是要测试登录流程、抓取价格数据,还是用 AI 远程控制浏览器,Playwright MCP 都能大幅降低门槛,让“说人话”也能驱动自动化脚本。本篇将从功能介绍、技术架构、使用方法到实际场景,带你全面理解这一自动化革命。

todoitbo的博客 3万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

5分钟上手!CocosCreator轻量UI框架:让单场景游戏开发效率飙升

在游戏开发领域,高效的UI管理往往是提升开发速度的关键。今天我们要介绍的**CocosCreator_UIFrameWork**,正是一款专为单场景游戏设计的轻量级界面管理框架。它通过预制体化界面设计,提供了界面显示、隐藏、释放等一站式功能,让游戏管理变得前所未有的简单!无论是新手还是资深开发者,都能快速掌握并应用到实际项目中。 ## ???? 核心功能:单场景游戏的界面管理利器 该框架采用**单...

gitblog_00789的博客 635

深度学习工具包 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")

上一篇: git 批量删除本地分支
下一篇: Puppeteer 启动 chromium问题
CodeCreator1818
博客等级 码龄11年 20粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值