Fuse学习<1>

宿舍网太渣,Xcode下载要等太长时间,于是乎就利用这段时间摆弄下Fuse这个跨平台移动应用开发工具。这里贴出Fuse官网

Fuse is the UX tool suite for app designers and developers.官网这样介绍:Fuse是为应用设计师和开发者准备的UX(用户体验)工具集。

开发准备:到官网下载Fuse,目前处于Beta版本。下载好后,根据向导安装相关的环境。

一.工程结构

下载好的Fuse应用图标如下:

打开软件,创建一个新的工程:

进入工程目录后,你会发现两个文件:

  • HelloWorld.unoproj(Uno Project):这是工程文件,用来跟踪工程中的文件、工程依赖的包以及其它值。
  • MainView.ux:这是你应用的起始点,主要因为它包含了App标签。通常情况下,你都会删除这个文件的内容,但你可以看一下默认创建的应用的内容,来学习怎样使用控件搭建应用界面。

二.预览

1.在桌面上预览

  • 在命令行预览:进入工程根目录,输入fuse preview
  • 使用Sublime插件(下载好Fuse软件后,会提示你安装):右击工程中任何一个.ux文件,然后选择”Preview“—>”Local
  • 使用Dashboard预览:选择工程目录,点击start app preview

2.在设备上预览

  • iOS:自然需要Xcode,在命令行输入:fuse preview -t=ios,其它方式与在桌面一样,把Local改为iOS即可。
  • Android:同上。

三.导出应用

1.导出iOS应用(7.0及以上版本)

导出的时候,Fuse会为你创建一个完整的工程,你可以在Xcode中打开,然后构建最终的应用。

$fuse build --target=ios --run

2.导出Android版本(4.1.x及以上版本)

为了部署到Android上,你需要一些第三方包,例如Android SDK、NDK等。为了安装或者声明相关组件的路径,你可以在终端运行:

$fuse install android 

你也可以检查必要组件是否安装好或者配置好,输入命令:

$fuse install -s android 

构建应用:

$ fuse build --target=Android
### Python 中 `IndexError` 的调试及解决方案 在 Python 编程中,`IndexError` 是一种常见的异常,通常发生在尝试访问列表、字典或其他序列类型的索引时超出了其有效范围。对于提到的 PyTorch ONNX 导出过程中遇到的错误 `_Map_base::at` 和 `IndexError`[^1],可以推测这是由于模型优化阶段传递给 `C.optimize()` 函数的参数不匹配或者内部实现存在问题。 以下是针对此问题的具体分析和解决办法: #### 错误原因分析 1. **ONNX 导出过程中的参数配置不当** 在调用 `torch.onnx._export()` 方法时,如果某些参数未正确设置(例如 `keep_initializers_as_inputs=True`),可能会导致后续优化器无法正常解析模型结构,从而引发索引越界错误。 2. **模型字符串处理逻辑缺陷** 如果变量 `model_str` 或者其他依赖项存在缺失字段,则可能导致优化器试图读取不存在的数据位置,进而抛出 `IndexError` 异常。 3. **硬件加速相关选项冲突** 类似于引用 [^3] 所述,在涉及 CUDA 加速或特定库编译的情况下,若环境配置与实际需求不符也可能间接影响程序稳定性并触发此类错误。 #### 解决方案建议 为了更有效地定位并修复上述问题,可以从以下几个方面入手: 1. **验证输入数据合法性** 确认传入 `optimize()` 方法前后的所有对象均处于预期状态。可以通过打印日志的方式检查各环节输出是否合理: ```python import torch model = ... # 定义好待转换的PyTorch模型实例 dummy_input = torch.randn(1, 3, 224, 224) # 构造模拟输入张量 try: torch.onnx.export( model, dummy_input, "model.onnx", export_params=True, opset_version=11, do_constant_folding=True, input_names=['input'], output_names=['output'], dynamic_axes={'input': {0: 'batch_size'}, 'output': {0: 'batch_size'}} ) optimized_model_str = C.optimize(model_str, passes=["fuse_consecutive_relus"]) # 调整passes参数组合试试看效果如何变化 except Exception as e: print(f"An error occurred during optimization: {e}") ``` 2. **更新工具链版本** 使用最新稳定版框架及其配套组件往往能够规避不少已知兼容性隐患。比如升级至较新的 PyTorch 版本以及相应支持插件后重试操作流程。 3. **调整优化策略** 尝试减少甚至移除部分激进型变换规则集合(passes),观察简化条件下能否顺利完成整个工作流执行路径测试。 --- 关于 Maix KPU 上加载 YOLO 面部检测 `.kmodel` 文件所面临的情况,虽然具体报错信息尚未提供出来,但从一般经验出发仍可给出如下指导思路供参考借鉴: - 检查目标平台固件是否适配当前算法模型架构; - 对比官方样例工程文件夹下预训练权重初始化方式是否存在差异; - 结合文档说明逐层剖析网络定义语句直至找到潜在风险点为止。 最后附带几个延伸探讨方向以便进一步深入学习交流分享心得体验收获成长进步共同提高!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值