嘉楠科技
直播中

carey123

11年用户 1658经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

在对庐山派K230的SD卡data文件夹进行删除和新件文件夹时无法操作,且训练时线程异常,怎么解决?

1.我的SD卡可以正常启动,也可以收到来自于庐山派摄像头拍摄的照片,SD卡有data和sdcard分区

2.但是一旦进行删除或写入,就会断开,我一开始在data/data/images这个目录下删除one文件夹,结果显示直接断开连接,后来操作data文件夹,显示写保护,最后再次操作又删掉了

3.我可以把SD卡里面的图片复制出来在AICube里面训练,但是一开始训练就会提示线程工作异常

        我解决了其中训练线程报错的故障,是因为我的文件夹里只有一个分类子目录,于是在图像分类中它会报错,但是训练好后点击部署会出现部署文件生成异常的问题
查看AICube_log,日志显示如下:
2025-07-16 13:44:10,663: INFO     maincontroller.py 5608: 生成部署文件异常
2025-07-16 13:44:10,663: ERROR    maincontroller.py 5609: Traceback (most recent call last):
File "E:K230K230AI_Cube_图像分类识别训练工具AICube_V1.4_for_WindowsAICube_for_WindowsAICubecanaan_controllermaincontroller.py", line 5600, in deploy
File "E:K230K230AI_Cube_图像分类识别训练工具AICube_V1.4_for_WindowsAICube_for_WindowsAICubedeploydeploy_kmodel.py", line 3, in
from deploy import cls_to_onnx, cls_to_kmodel
File "E:K230K230AI_Cube_图像分类识别训练工具AICube_V1.4_for_WindowsAICube_for_WindowsAICubedeploycls_to_kmodel.py", line 6, in
import nncase
File "E:K230K230AI_Cube_图像分类识别训练工具AICube_V1.4_for_WindowsAICube_for_WindowsAICubenncase_init_.py", line 46, in
initialize()
File "E:K230K230AI_Cube_图像分类识别训练工具AICube_V1.4_for_WindowsAICube_for_WindowsAICubenncase_init.py", line 43, in _initialize
_nncase.initialize(compiler_path)
RuntimeError: Failed to initialize hostfxr: 0x80008094.
        上面这个问题我也解决了,我首先检查了我的环境变量,确保.ENT的两个环境均已正确添加;后来发现是因为文件路径上有汉语名称导致.NET解析错误不能正确部署....
        

回帖(1)

符筹荣

2025-8-6 17:46:45

针对庐山派K230的SD卡操作异常和训练部署问题,我们可以从以下几个方面进行排查和解决:




一、SD卡文件操作异常(删除/写入失败、断开连接、写保护)




  1. 检查文件系统与分区挂载



    • 确认分区类型:确保 data 分区是Linux兼容的文件系统(如 ext4),sdcard 分区通常是FAT32/exFAT。非Linux文件系统(如NTFS)可能导致权限问题

    • 检查挂载模式:使用命令 mount | grep data 查看 /data 分区的挂载选项。如果显示 ro(只读)或 noexec,说明是挂载为只读/不可执行。 正常应为 rw(读写)。




  2. 修复文件系统错误



    • 卸载分区:在SSH或串口终端执行:
      umount /data   # 卸载data分区
      umount /sdcard # 卸载sdcard分区

    • 修复文件系统
      fsck.ext4 -f /dev/mmcblk0pX  # 替换X为data分区的实际编号(如p2)
      fsck.vfat -a /dev/mmcblk0pY   # 替换Y为sdcard分区的实际编号(如p3)




  3. 检查SD卡健康状态



    • 使用硬件工具:将SD卡通过读卡器连接到电脑,用 h2testw (Windows)F3 (Linux) 测试卡的真实容量和读写稳定性,排除扩容卡或物理损坏。

    • 替换测试卡:换用 品牌高速卡(如三星EVO、闪迪Extreme),排除劣质卡兼容性问题。




  4. 处理残留进程锁定文件



    • 查找占用进程
      lsof /data  # 查看哪些进程正在访问/data目录

    • 结束相关进程后重试删除操作。




  5. 内核写保护检查



    • 检查硬件写保护开关:某些SD卡有物理写保护开关,确认它未锁定。

    • 内核配置:在庐山派串口中检查内核日志:
      dmesg | grep "read-only"  # 搜索是否有文件系统强制挂载为只读的记录






二、模型训练线程异常解决方案




  1. 数据集结构验证



    • 目录结构必须为
      images/
      ├── class1/   # 类别1图片
      ├── class2/   # 类别2图片
      └── ...

    • 最少需2个类别:每个类别至少15-20张图片。

    • 使用tree命令验证
      apt install tree   # 若未安装
      tree -L 3 /path/to/dataset




  2. 图片格式与权限



    • 格式:确保是标准格式(JPEG/PNG),避免非常规扩展名(如.heic)

    • 权限:执行 chmod -R 755 /path/to/images 确保所有文件可读。




  3. 清理训练缓存


    rm -rf ~/.cache/aicube/  # 删除AICube缓存目录
    rm -rf /tmp/train_*      # 清理临时训练文件





三、模型部署失败深度排查




  1. 验证模型转换步骤



    • 检查转换日志:在AICube训练界面找到 convert.logexport.log,查看是否有权重加载失败、算子不支持等报错。

    • 手动转换测试:在命令行使用K230 SDK工具链尝试转换模型:
      python3 ait.py convert --model=your_model.onnx --target=k230




  2. 部署路径与权限



    • 确认部署路径存在:检查 /sdcard//data/ 下目标目录是否成功创建。

    • 权限问题:部署脚本可能需写入权限,执行:
      chown -R root:root /path/to/deploy  # 修改属主
      chmod -R 777 /path/to/deploy        # 开放权限(测试用)




  3. 引擎文件完整性



    • 检查生成的 *.kmodel 文件大小是否正常(>1MB),异常时重新转换。

    • 使用 md5sum your_model.kmodel 对比正常设备的哈希值。




  4. 内存瓶颈分析



    • 监控内存使用
      free -m  # 查看剩余内存
      top      # 监控部署进程的内存占用

    • 减少模型复杂度:尝试部署更小的模型(如MobileNetV2),验证是否内存溢出。






四、关键操作步骤总结


graph TD
  A[SD卡问题] --> B[检查文件系统 fsck]
  A --> C[验证分区挂载模式]
  A --> D[测试SD卡硬件]
  A --> E[结束锁定进程]

  F[训练报错] --> G[检查数据集结构]
  F --> H[清理缓存目录]
  F --> I[验证图片合法性]

  J[部署失败] --> K[查看转换日志]
  J --> L[检查部署路径权限]
  J --> M[验证kmodel完整性]
  J --> N[监控内存占用]

  B -->|解决| Z[恢复正常读写]
  G -->|解决| Z
  K -->|解决| Z



五、终极解决方案


若以上步骤仍无效:



  1. 重烧录系统镜像:从官网下载最新庐山派K230镜像,彻底重刷SD卡。

  2. 升级AI框架:确认AICube是否为支持K230的最新版本。

  3. 硬件交叉测试:将SD卡放在另一台庐山派设备中验证,排除开发板硬件故障(如SD卡槽接触不良)。



提示:操作前务必备份SD卡数据!涉及分区操作时,建议在Linux电脑上用fdiskgparted检查分区表结构是否异常。


举报

更多回帖

×
20
完善资料,
赚取积分