有关Intel 计算棒NCS2的坑~~~~~~~~~~~Failed to read output from FIFO: NC_ERROR

本文分享了从ckpt文件直接转换成pb文件的技巧,避免了大量冗余变量导致的文件膨胀问题,同时介绍了在使用NCS2过程中遇到的功率限制问题及解决策略。

第1个坑是ckpt文件转pb文件:

网上的做法是先保存为ckpt,再import_meta_graph,再用saver.restore取会保存的内容,最后graph_util.convert_variables_to_constants。这样做可以产生pb文件,但文件比较大(130M)。而且用transform_graph工具压缩去除无用节点没有效果,文件大小基本不变。个人分析是这种保存方法有很多冗余变量也被保存进去了。我最后跳过ckpt保存,直接convert_variables_to_constants。保存的文件非常小(12M),小了10倍多!!!

隔了一个周末,再尝试直接graph_util.convert_variables_to_constants,发现pb文件还是130M,而且Model.summary后发现参数个数*4大概就是130M bytes。所以之前模型突然变成12M是我失忆了??无心再去找原因了。。。大家别当真就好

第2个坑是NCS2的Failed to read output from FIFO: NC_ERROR

E: [xLink] [    697998] [EventRead00Thr] eventReader:218    eventReader thread stopped (err -4)
E: [global] [    697998] [Scheduler00Thr] dispatcherEventSend:1004    Write failed (header) (err -4) | event XLINK_READ_REL_REQ

E: [xLink] [    697998] [Scheduler00Thr] eventSchedulerRun:626    Event sending failed
E: [global] [    698000] [Scheduler00Thr] dispatcherEventSend:1004    Write failed (header) (err -4) | event XLINK_WRITE_REQ

E: [xLink] [    698000] [Scheduler00Thr] eventSchedulerRun:626    Event sending failed
E: [xLink] [    698000] [Scheduler00Thr] eventSchedulerRun:576    Dispatcher received NULL event!
E: [ncAPI] [    698000] [python2.7] ncFifoReadElem:3510    Packet reading is failed.
E: [watchdog] [    698664] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    699663] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    700662] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    701662] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    702661] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    703660] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    704659] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    705658] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    706657] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    707656] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    708655] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    709654] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    710653] [WatchdogThread] sendPingMessage:121    Failed send ping message: X_LINK_ERROR
E: [watchdog] [    710653] [WatchdogThread] watchdog_routine:315    [0x2c6ff50] device, not respond, removing from watchdog


Traceback (most recent call last):
  File "/home/jojo/clion-2019.2.5/plugins/python/helpers/pydev/pydevd.py", line 1415, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/home/jojo/CLionProjects/samples/python_samples/classification_sample/classification_sample.py", line 147, in <module>
    sys.exit(main() or 0)
  File "/home/jojo/CLionProjects/samples/python_samples/classification_sample/classification_sample.py", line 115, in main
    res = exec_net.infer(inputs={input_blob: images})
  File "ie_api.pyx", line 241, in openvino.inference_engine.ie_api.ExecutableNetwork.infer
  File "ie_api.pyx", line 308, in openvino.inference_engine.ie_api.InferRequest.infer
  File "ie_api.pyx", line 312, in openvino.inference_engine.ie_api.InferRequest.infer
RuntimeError: Failed to read output from FIFO: NC_ERROR

一开始有个帖子说NC_ERROR是没有管理员权限造成的,sudo后就没问题了。其实这个方法没用。后来怀疑是产生的IR太大超过计算棒容量了,故压缩了IR文件到FP16,大小减少了一半,但问题依旧。其实如果ie.load_network没问题就说明模型装载没问题的。最后找到帖子:https://github.com/PINTO0309/OpenVINO-YoloV3/issues/7

发现是模型input_shape比较大时,计算棒功率猛增,电流不够了!!!!麻蛋!!还有这骚操作!!!故减少网络输入大小,居然可以了。解决方法:1、缩小网络入口大小,2、计算棒插到有独立供电,且电流大于3A的USB上(这个没试过,理论可行)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值