目录
2. tensorflow-lite infer 时提示invoke 错误
JetPack 版本
- 4.6.3 -> 安装成功,H5py报错,官方确认4.5上有bug,Failed building wheel for h5py on Jetpack 4.6.1 on Xavier NX - Jetson Xavier NX - NVIDIA Developer Forums
- 4.5: 安装成功,但是4.5 不支持tensorflow2.x, 而tensorflow-lite 需要2.x 以上的版本,所以此版本上也不可行
- 5.0.2:安装成功
安装过程
下面介绍在5.0.2上的安装步骤,参考官方安装教程:
Installing TensorFlow for Jetson Platform - NVIDIA Docs
下面是具体的命令:
$ sudo apt-get update
$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
$ sudo apt-get install python3-pip
$ sudo python3 -m pip install --upgrade pip
$ sudo pip3 install -U testresources setuptools==65.5.0
$ sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v502 tensorflow==2.9.1+nv22.09
异常处理
执行完上述命令,理论上就能安装成功了,下面是几个执行过程中的报错
1.train 时提示scikit-learn 错误
如下所示
解决办法:执行如下命令
export LD_PRELOAD=/home/leon/.local/lib/python3.8/site-packages/scikit_learn.libs/libgomp-d22c30c5.so.1.0.0:$LD_PRELOAD
2. tensorflow-lite infer 时提示invoke 错误
解决办法:
在tensorflow convert成tensorflow-lite 的时候,添加自定义函数表,然后能够导出成功,且在执行infer_lite 脚本时不再报如上错误
if use_official_loss:
model = keras.models.load_model(keras_model_name, custom_objects={'iou_score': F.iou_score,
'f1-score': F.f_score})
else:
model = keras.models.load_model(keras_model_name, custom_objects={'dice_loss_plus_1focal_loss': total_loss,
'iou_score': F.iou_score,
'f1-score': F.f_score})
print(model.summary())
3. segmentation fault
导出之后,执行tensorflow lite infer 的时候,发生segmentation falult
解决办法:
- 输入模型的图片尺寸不固定,得到的模型结构里面大部分都是[None,None, None, size] 之类的,所以尝试修改模型结构,在模型构造时加入input_shape=[], 最终得到如下图所示的输入输出: