热更图片方案

Unity热更新实战:YooAsset与HybridCLR构建资源与代码热更完整方案 热更新技术是现代游戏与大型应用开发中的核心能力,它允许开发者在无需重新提交安装包的情况下,动态修复问题、更新内容和功能。其原理主要基于资源与代码的动态加载与替换机制,通过将更新内容与主体程序分离,实现快速迭代。这项技术的核心价值在于极大提升了产品的可维护性与运营响应速度,尤其适用于需要频繁更新、快速响应玩家反馈的在线游戏和移动应用场景。在Unity引擎生态中,资源热更新通常依赖AssetBundle系统,而代码热更新则经历了从Lua/ILRuntime到原生C#方案的演进。本文将聚焦于结合YooAsset资 阅读详情
  • 项目平常需要对线上一些图片资源修正,所以需要热更图片功能。
  1. 远端入口新增字段配json文件
{
    "1.1.22030303":{
        "sprite":

        {

            "assets/ui/common/images/acient_gold.png" : "https://aaaa.png",

            "assets/ui/common/images/bbb.png" : "https://bbb.png",

         },

        "texture":

         {

             "assets/ui/common/images/cccc.png" : "https://cccc.png",

            "assets/ui/common/images/dddd.png" : "https://dddd.png",

         }
    }
}
  1. 新增一个hotfix_img_mgr.lua,在config.lua require之后再初始化,方便后续热更调整
    3.1. 初始化时异步检查下载热更配置,注意容错:配置无,json.decode异常,配置缺"texture"等。
    3.2. 配置检查完异步下载图片资源,并缓存,下载超时时间根据图片大小(GetFileSizeWithUrl)设置超时时间,比如一个图1M,算较差情况100k每秒,1024/100=10s超时
    3.3. 旧包没导出’UnityWebRequestTexture‘ 接口,先加到导出但不用(后面再说),考虑旧版使用 UnityEngine.WWW.texture 下载,下载完btyes可以缓存本地记录,避免重复下载
    3.4. 加接口支持外部取图片,避免特殊情况需要手动获取热更图片,比如新增图片或修改材质图片

  2. res_mgr.lua 加载图片的时候,先查 hotfix_img_mgr 有没有对应路径缓存图片,注意hotfix_img_mgr可能为nil(即在热更前调用了),要容错。
    4.1. 如果有热更缓存就直接使用,要是下载中就先不管了,等玩家手动刷新界面
    4.2. 注意检查缓存同时检查远端配置是否有,避免出现远端已经删除这个热更图片,但本地有缓存就还是用了缓存图片

  3. 加数数上报埋点,1.准备下载哪些图片 2.开始下载某个图片 3.下载完成某个图片

  4. 可以考虑加GM检查打印当前热更的图片情况。

【Unity】YooAsset与HybridCLR:高效资源管理与代码热更的黄金组合 本文深入探讨了Unity开发中YooAsset与HybridCLR的组合应用,为需要长期运营的项目提供了完整的资源与代码热更新解决方案。YooAsset作为高效的资源管理框架,简化了AssetBundle的打包、加载与热更流程;而HybridCLR则攻克了IL2CPP模式下C#代码无法热更的难题。两者结合,实现了从资源到逻辑的平滑在线更新,极大提升了开发迭代与线上维护的效率。 阅读详情

相关推荐

Unity热更新实战:整合YooAsset与HybridCLR实现资源与代码热更

在Unity游戏开发中,热更新技术是解决线上问题、实现快速迭代的核心能力。其核心原理在于不重新发布应用安装包的情况下,动态更新游戏内容。传统AssetBundle方案主要解决资源热更,但对C#逻辑代码的更新无能为力。通过引入IL2CPP脚本后端和解释执行环境,可以实现C#代码的动态加载与执行,从而突破这一限制。这项技术的核心价值在于极大提升了项目的运营灵活性和问题修复速度,尤其适用于需要频繁更新活动、修复线上Bug的移动游戏和大型应用。具体到工程实践,YooAsset框架提供了灵活可控的资源打包与加载策略,

weixin_30542979的博客 270

React Native图片资源使用的优美方案

图片资源( jpeg、png、svg、webp ... )作为与用户交互的界面元素,在客户端产品中起到了非常重要的角色作用。在应用开发中,移动端与PC的图片使用策略也有所不同。PC端较大的内存容量,快速的渲染能力使各类型图片资源都能得到较好的使用。而移动端由于设备内存,GPU渲染都与PC有较大差别,所以在App应用开发中,需要我们单独分析处理。今天我们聊聊在React Native开发中,如何优美...

weixin_34238642的博客 846

【原创】谈谈redis的热key问题如何解决

ps:hot key和big key问题,大家一定要有所了解。 本文预计分为如下几个部分 热key问题 如何发现 业内方案 正文 – 热Key问题 上面提到,所谓热key问题就是,突然有几十万的请求去访问redis上的某个特定key。那么,这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis的服务器宕机。 那接下来这个key的请求,就会直接怼到你的数据库上,导致你的服务不可用。 怎么发现热key 方法一:凭借业务经验,进行预估哪些是热key 其实这个方法还是挺有可行性的。比如某商

qdwd888的博客 2156

「R绘图」R语言中让你图更好看的调色板

有些时候,换个配色就能让你的图片上一档次。我准备在这篇文章中整理出一些好看的配色方案。 virids 调色盘 安装和加载 install.packages("viridis") library(viridis) 官方教程的测试代码 library(ggplot2) ggplot(data.frame(x = rnorm(10000), y = rnorm(10000)), aes...

xuzhougeng blog 8084

Unity Addressables动态热更:Catalog与Bundle Mode配置实战指南

在Unity游戏开发中,资源管理是核心工程挑战之一,尤其涉及动态更新时。传统AssetBundle方案虽能实现资源分离加载,但在版本管理、依赖解析和增量更新等方面配置复杂,容易出错。其原理是通过打包资源为独立文件,运行时按需加载,以此减少初始包体大小并支持内容更新。这项技术的核心价值在于实现资源的热更新,避免用户频繁重装客户端,极大提升运营灵活性和用户体验。应用场景广泛覆盖游戏上线后的bug修复、活动内容更新、DLC发布等。本文聚焦Unity Addressables系统,深入解析其实现精准动态热更的两个关

aaa1231722的博客 495

网页图片加载优化方案

饿了么 App 中新零售项目主要是以图片展示为主,引导用户点击轮播广告栏或者店铺列表进入指定的商品页面,因此页面中包含了大量图片,如搜索框下面的轮播广告栏、中部的促销栏以及底部的店铺列表,这些区域中都有大量的展示图片。因此图片的加载速率直接影响页面的加载速度。下面将从图片加载存在的问题和原因、解决方案两个方面来阐述如何优化新零售图片的加载。 本文所有数据及图片都是通过Charles模拟 25...

weixin_42600182的博客 2200

AssetBundle——async texture load探索

最近项目中反馈在特定的某一个版本热更新完成后,会出现崩溃的情况,通过安卓模拟器查看启动log,发现出现了了一段崩溃日志,分配一大块内存,在网上搜了搜相关的解决方案: 1、侑虎博客:https://answer.uwa4d.com/question/5c0f3ad928c4e32cba319371 2、优快云博友:https://blog.youkuaiyun.com/linxinfa/article/details/99859995 在崩溃的前面发现这么一条日志:async texture load: fail

Rhett 1122

UniTask在ILRunTime的热更代码中执行顺序y偶问题,如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1148

unity 代码热更+资源管理框架总结

一.对于代码热更有两个方案 1.用其他语言做热更,需要可以在C#这边创建一个lua虚拟机,于是就要和C#能够和Lua交互,C#执行lua虚拟机执行启动代码 所有逻辑用lua写 打包lua文件进行代码热更 相关C#和lua交互的框架: 1.xlua 腾讯开源框架 目前算是大家用的最多的框架,商业项目也算是用的比较多 2.tolua,slua这些比较老的框架,算不上很了解 2.C#用反射模式执行启动代码,C#打dll ,但IOS没有内存访问权限,用不了反射模式,于是有了一些绕过IOS这个机制,做反射的框架 相关

qq_43204246的博客 5813

大模型RAG优化之高可用向量数据库的“热更”难题与解决方案

想象一下,你正在运营一个大型电商平台,用户可以上传图片搜索相似商品。需要将新商品的特征向量添加到数据库。需要从数据库中删除旧商品的特征向量。商品的描述、图片等信息可能发生变化,需要更新对应的特征向量。如果每次更新都需要停止搜索服务、重建索引,那用户体验将大打折扣。因此,“热更”指的是在不中断或最小化中断搜索服务的情况下,实时更新向量数据库的索引,使其反映最新的数据变化。

kakaZhui的博客 648

手游热更新技术进化史:从“Lua 热更”到“C# 直接修复”,不靠 Lua 怎么做到?(大白话生动有趣版)

手游热更新技术经历了从Lua脚本到C#直接修复的演进。早期Lua方案需维护双语言代码,性能低且开发效率差;新型C#热更通过IL虚拟机改造,实现函数级插桩替换,无需Lua即可直接修复业务逻辑,显著提升性能和开发体验。该技术已在多款手游中成功应用,支持小时级线上修复,成为行业新标准。未来将结合AI和更安全的更新机制,推动手游开发运维效率进一步提升。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 792

Xlua热更框架策略,Unity基础知识学习三

1.什么是Xlua热更框架策略 2.为什么要有Xlua热更框架策略 3.如何使用Xlua热更框架策略,使用Xlua热更框架策略的不同方案比较 4.Xlua热更框架策略源码实现 5.Xlua热更框架策略关键点,重要节点,疑难杂症场景 ...

u013617851的博客 504

C++中为什么要引入引用变量?

C++引用机制的设计哲学在于平衡性能与安全性。它解决了指针的三个痛点:语法噪音、空指针风险和语义模糊,同时保持了指针的效率优势。引用必须绑定有效对象且不可重绑定的特性增强了安全性,其值语义语法更直观。尤其在运算符重载和const引用场景中,引用展现了不可替代的优势。本质上,引用是编译器优化的指针实现,体现了C++"零开销抽象"的核心思想——既保持底层性能,又提供高级抽象。这种设计允许开发者根据场景灵活选择指针或引用,反映了C++多范式共存的语言智慧。

教学 & 技术专栏 175

cocosCreator热更和Asset Bundle使用学习。

快速理解和上手cocosCreator热更流程

星期一的博客 6062

LDO稳定性分析

根据补偿方式和拓扑结构的不同,三个极点之间的相互位置有可能发生变化,但 是 LDO 通常采用较大的输出电容 Cout,以及较大的调整管也会导致较大的 Cpar, 所以 p1、p2 通常位于较低的频率处,而 p3 和 z1 则由于 Resr较小会位于较高的频 率处。不过幸运的是,对于较大的 Cout来说,只要选择合适的 Resr,就可以将左半平面零点 Z1 的频率降低,甚至使 Z1 进入单位增益带宽内,左半平面零点的进入将对相位有所改善,这不仅可以消除振荡的风险,还可以在单位增益频率处得到较好的相位裕度。

模拟芯片设计 1593

MDB协议中设备级别和选项(Levels and Options)

MDB协议的LEVEL级别介绍

hbstart的博客 939

电池热管理方案PPT资源介绍:深入解析电池热管理构建方案

电池热管理方案PPT资源介绍:深入解析电池热管理构建方案 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代交通工具和储能系统中,电池的安全性及效能优化至关重要。电池热管理方案PPT资源介绍项目,提供了一份详尽的《电池热管理方案.pptx》资源,旨在帮助工程师、学生以及所有对电池热管理有兴趣的人士,理解并掌握电池热管理系统的构建方法与评估标准。 项目技术分析 《电池...

gitblog_06752的博客 1080

群晖Git Server权限配置全攻略:如何让普通用户(非admin)也能安全提交代码?

本文详细解析了群晖Git Server权限配置方案,特别针对普通用户(非admin)安全提交代码的需求。通过SSH服务配置、精细化用户权限管理及仓库创建自动化脚本,实现在DS218+等群晖NAS设备上的高效代码协作,同时确保系统安全。

weixin_42528780的博客 465

基于车云计算的智能热管理方案,让新能源汽车跑更远

新能源汽车热管理系统是影响续航里程的关键因素,传统固定阈值控制方式导致15%-20%的电池能耗浪费。智协慧同EXCEEDDATA提出车云协同智能热管理方案,通过行程预测和驾驶风格识别实现动态控制,实测显示低温短途可节能5.7%,高温短途达6.6%。该方案采用"云端建模+车端执行"架构,避免了传统云方案的网络风险,通过精准控制电池加热/冷却时机,显著提升实际续航里程。目前该技术已应用于智能诊断、空调等场景,持续推动新能源车能效突破。

weixin_59917216的博客 1555

STC8H单片机ADC实战:从读取电位器到串口绘图,12位精度玩起来

本文详细介绍了STC8H单片机的ADC功能实战应用,从读取电位器到串口绘图,展示了12位精度的实现方法。通过硬件连接、代码配置、串口数据传输及高级优化技巧,帮助开发者快速掌握ADC模块的使用,适用于各种传感器数据采集和信号处理场景。

weixin_28278377的博客 345

OpenClaw简介--windows系统安装OpenClaw

在windows安装OpenClaw实现代替人工操作。步骤流程详细,图文并茂。

直到世界的尽头 5352

JIT 与 C#热更

JIT与C#热更新

Sea3752的博客 1849

深入理解 DDR5 Bank Group 与并行调度机制

Bank Group架构和并行调度机制,是DDR5性能跃升的核心秘密!理解它们才能写出高效调度程序,设计出性能强劲又稳定的DDR5系统。🎯记住:Bank Group不是简单的分组,而是高速并行的“魔法钥匙”,巧用它,你的DDR5设计将爆发惊人性能!

weixin_43199439的博客 314

Raid的全局热备和独立热备

在RAID配置中,Hot Spare(热备)是一个非常重要的概念,它表示一个或多个未分配给任何RAID级别的物理磁盘,但在RAID中的一个或多个活动磁盘发生故障时,这些磁盘可以自动替换故障磁盘。如果RAID5中的硬盘有RAID控制器的固件能自动用热备用磁盘代替故障磁盘,通过特定的算法,RAID控制器会从其他正常工作的磁盘中读取数据,并将这些数据恢复到Hot Spare磁盘上,以重建Raid阵列和冗余性,这个过程大概需要两个小时。1.在虚拟磁盘管理界面,将光标定位到需要配置独立热备的磁盘组,然后按下F2键。

weixin_45686729的博客 3091

Claude Code 错误解决方案: Request Timed Out 超时 原因、配置与解决方案

Claude Code 抛出 Request Timed Out 不仅可 能是网络问题,更大概率是 API 高负载或超大响应导致。本文从 默认超时机制出发,拆解三种根因场景,给出 API_TIMEOUT_MS 环境变量调优与任务拆分策略,帮助开发者在保证稳定性的同时 避免误判网络故障。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 900

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

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

中国特色热搜信息API推荐

中国热搜API指的是用于提取百度、微博等平台的热搜榜数据的接口。这类API通常通过RESTful协议提供数据访问,使开发者可以轻松获取和处理实时热搜信息。这些API可以帮助开发者快速建立起热搜监控工具、数据分析平台等,方便用户掌握当前热点趋势。同时,API还提供了分类数据查询功能,能够让开发者按特定需求获取相关的热搜信息,如科技、娱乐、财经等领域。中国热搜API对于开发人员来说是构建响应更快、安全性更高的应用程序的有力工具。使用热搜API可以帮助开发者提供出色的用户体验,实现高效的数据管理。

Explinks的博客 2369

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

上一篇: 微端、语言包、补丁下载更新流程
下一篇: Unity 卡死排查方法(游戏死循环、打包卡死)
ChiLi_Lin
博客等级 码龄12年 760粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值