常见问题¶
1. 找不到/dev/sgX或/dev/mmcblk1¶
如果使用的神经网络计算卡是eMMC接口的,请下载并烧写专用固件,或编译并使用AI资料U盘中的内核。
如果使用的神经网络计算卡是USB接口的请确认SCSI的sg.ko驱动模块存在,步骤如下:
1). 内核内置确认modules.builtin中包含“kernel/drivers/scsi/sg.ko”,命令:
firefly@firefly:~$ cat /lib/modules/$(uname -r)/modules.builtin | grep sg.ko
如果打印”kernel/drivers/scsi/sg.ko“,则驱动存在,请检查神经网络计算卡是否完好。
2). 外置模块 使用命令:
firefly@firefly:~$ sudo modinfo sg
如果打印“modinfo: ERROR: Module sg not found.”则驱动不存在,否则存在。 如果驱动存在可尝试以下操作加载驱动:
firefly@firefly:~$ sudo modprobe sg
如果驱动不存在则需要自行编译并加载sg.ko模块。
2. /dev/sgX或/dev/mmcblk1权限问题¶
如果使用的是eMMC接口的模块请在root用户下运行程序。
如果使用的是usb接口的模块,可在GTISDK目录下尝试以下操作:
firefly@firefly:~GTISDK$ sudo cp -i Lib/Linux/aarch64/50-emmc.rules /etc/udev/rules.d/
firefly@firefly:~GTISDK$ sudo udevadm control --reload
或者尝试以下操作:
firefly@firefly:~$ sudo chmod 777 /dev/sg*
3. 出现-lGTILibrary Not found错误¶
可设置LD_LIBRARY_PATH变量指向GTILibrary所在的目录,例如:
firefly@firefly:~$ export LD_LIBRARY_PATH=/home/firefly/GTISDK/Lib/Linux/aarch64:$LD_LIBRARY_PATH
4. GTI初始化失败¶
查看userinput.txt(在SDK的data/Models/gti2801/gnet2_3/cnn_3目录下)中的节点名字(usb接口模块节点名为/dev/sg*, eMMC接口模块节点名为/dev/mmcblk1)跟开发板生成的节点名字是否一致,在Tools目录下有测试程序,可以自动检测判断节点和测试连通性.
5. GTI芯片读写失败¶
查看 userinput.txt 中的 max_sectors (“USB write block numbers”: 2048) 这个参数的大小, usb2.0接口或eMMC接口设置为128,usb3.0接口设置位2048;或者修改max_sectors修改为userinput.txt 大小,参考如下:
ubunut16.04:~$ find /sys/devices/ -name max_sectors /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host6/target6:0:0/6:0:0:0/max_sectors ubunut16.04:~$ su ubunut16.04:~# echo 2048 > /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host6/target6:0:0/6:0:0:0/max_sectors
6. TypeError: can’t convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.¶
如果使用的是PyTorch 1.0rc1可修改PyTorch包中的tensor.py
def __array__(self, dtype=None):
if dtype is None:
return self.numpy()
else:
return self.numpy().astype(dtype, copy=False)
为
def __array__(self, dtype=None):
if dtype is None:
return self.cpu().numpy()
else:
return self.cpu().numpy().astype(dtype, copy=False)
tensor.py参考路径为/usr/lib/python3.7/site-packages/torch/tensor.py,请根据自己PyTorch的安装路径查找 tensor.py。
8. Could not load model. Device:/dev/sg1—-usb_write error¶
如出现以下错误:
- 1541659252666 -140566399514112- 0-:usb_emmc_read ioctl error. code:-1
- 1541659252667 -140566399514112- 0-:Could not load model. Device:/dev/sg1----usb_write error
请查看/dev/sg*是否有读写权限,如果没有请参考[2],进行配置。 如果问题未解决,请参考[5],其中userinput.txt对应PLAI中的nets/netConfig*.txt, 请根据训练的模型进行修改。