uLua bug fix

1. DoFile 文件加载方式修改
    既然要热更新,肯定不能只加载Resources目录下的lua文件,所有uLua里面牵扯到Resources.Load(filename) as TextAsset 的地方都要替换成自己的文件加载函数。做到运行时从persistentDataPath目录中的打包文件内读取lua文件

2. Lua 错误堆栈信息修改
   经常发现lua出错时打印不了文件名和行数信息,只需要屏蔽掉一段代码即可,如下屏蔽掉中间2行,其实上下功能几乎一样,但unity捕获异常时,只读取了异常的message信息。err.ToString() 这个把lua异常信息和触发位置信息组合成了一个字符串作为异常message。这样修改后就能正常显示错误位置信息了


3. 值类型覆盖Bug
   local v1=Vector3.One
   local v2=Vector3.One
   v1.x = 100
   print(v1.x, v2.x)
你会发现v2.x 也变成了100, 这是luainterface里面的bug, 需要修改几个地方


还有添加,回收也要修改,值类型不再压入objectsBackMap 但记录在objects里面
 


4. 对于lua内委托事件处理:UIEventListener.Get(button).onClick = OnClick; 这个在ios上是无法执行的
 
网上已经提过在CheckType.cs加#define __NOGEN__ 然后在c#里面调用lua函数的方式
其实可以自定义一个辅助函数给lua代码使用即可。这样相同类型的回调函数就可以通用了。
函数如下:



Lua 中可以:
 
UIEventListener.Get(button).onClick = LuaHelper.VoidDelegate(OnClick);

如c#也不需要为c#和lua提供2个版本函数了,如:
c# 函数声明 public void AddListener(string objName, Action call)
c# 调用
AddListener("CloseButton", OnCancel);
Lua 调用 AddListener("CloseButton", LuaHelper.Action(OnCancel));
 

5. 设置LuaState数据性能问题,当使用LuaState["gameObject"] = gameObject这样的语句时会造成巨大的性能损失。一般在一个UI启动前,可以往脚本里面设置gameObject, transform, uibase 之类对象来方便开发。这样设置了3个数据在三星S4上耗时接近1s, 其他低档手机甚至于3s. 这个主要也是一个LuaInterface基础库问题
修改如下: 屏蔽掉Lua.cs 中 this[string fullpath] 函数中Set 下半部分内容。其实globals表暂时都没有用到。

 

修改之后基本感觉不到界面启动时间了。附一张ipad测试照


7. 在没有luajit情况下,性能 c# vs lua 大部分在2-5之间。 uLua1.0.3 的安卓平台编译有些问题。他把x86, armv6, armv7 等打入了一个.so文件内
这样怀疑u3d 某些平台可以使用了armv7之外的函数。。。因为函数都是同名的。所有有些同学在某些安卓平台崩溃。
这个可以到群62978170来取Android_uLua.rar文件覆盖掉安卓目录下同名的.so文件。
请注意入群问题


以上内容基于uLua1.0.3 版本,仅供参考, 如果改动我会在QQ空间更新
http://user.qzone.qq.com/5281069/blog/1408526450

原文地址:http://game.ceeger.com/forum/read.php?tid=18451

基于Swin Transformer与ASPP模块的图像分类系统设计与实现 本文介绍了一种结合Swin Transformer与空洞空间金字塔池化(ASPP)模块的高效图像分类系统。该系统通过融合Transformer的全局建模能力和ASPP的多尺度特征提取优势,显著提升了模型在复杂场景下的分类性能。 模型架构创新 系统核心采用Swin Transformer作为骨干网络,其层次化窗口注意力机制能高效捕获长距离依赖关系。在特征提取阶段,创新性地引入ASPP模块,通过并行空洞卷积(膨胀率6/12/18)和全局平均池化分支,实现多尺度上下文信息融合。ASPP输出经1x1卷积降维后与原始特征拼接,有效增强了模型对物体尺寸变化的鲁棒性。 训练优化策略 训练流程采用Adam优化器(学习率0.0001)和交叉熵损失函数,支持多GPU并行训练。系统实现了完整的评估指标体系,包括准确率、精确率、召回率、特异度和F1分数等6项指标,并通过动态曲线可视化模块实时监控训练过程。采用早停机制保存最佳模型,验证集准确率提升可达3.2%。 工程实现亮点 1. 模块化设计:分离数据加载、模型构建和训练流程,支持快速迭代 2. 自动化评估:每轮训练自动生成指标报告和可视化曲线 3. 设备自适应:智能检测CUDA可用性,无缝切换训练设备 4. 中文支持:优化可视化界面的中文显示与负号渲染 实验表明,该系统在224×224分辨率图像分类任务中,仅需2个epoch即可达到92%以上的验证准确率。ASPP模块的引入使小目标识别准确率提升15%,特别适用于医疗影像等需要细粒度分类的场景。未来可通过轻量化改造进一步优化推理速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值