yolov3-tiny中有下面這些層:
Convolutional
Maxpooling
Leaky-Relu
Linear-Relu(正常的Relu)
Residual Block
Strided Residual Block
Upsample
查看TensorRT支持的網絡層種類:
https://developer.download.nvidia.cn/compute/machine-learning/tensorrt/docs/5.1/rc/TensorRT-Support-Matrix-Guide.pdf
ONNX的格式是都支持上面的層的,只是不清楚Residual Block這種跨連接的層是不是可以直接實現的。
如果采用的是C++ 的API,有下面幾個問題思考:
1、weight格式如何轉換成為ONNX的格式
2、如何讀取圖片,輸入網絡
3、網絡的輸出,轉換為准確度
如果采用的是Python的API,那么直接就會有Yolo-V3的示例。
由於ONNX版本的問題造成了一天進度都很慢,現在已經可以將示例跑通了。
整個過程中遇到的Bug有:
1、ONNX的upsample在1.2.1之后就移除了,開始的時候有python2和python3兩個高版本的ONNX的包,應該將python2的ONNX版本調低,但是將python3的ONNX版本降低了。
2、PIL的圖片讀取速度比Opencv要慢。
3、feature的尺寸是CHW,其中H和W的兩個順序不要顛倒了。
TX2 的刷機過程中遇到的問題有:
1、需要用USB-Mini線連接TX2與電腦,同時還需要將TX2和電腦用網線連接到路由器上,同時要保證路由器是可以上網的。
2、在Nvidia官網上下載的只是一個Ubuntu主機的安裝包,需要將這個安裝包安裝在Ubuntu上,然后在Ubuntu電腦上下載Cuda、Cudnn等包。
3、在TX2上安裝pycuda的時候遇到了問題,其中最后解決的是關於環境變量的問題,,好像是在什么目錄下,建立了一個sh文件,然后將環境變量寫到里面了。改變/etc下面的環境變量是不是需要重啟?
4、在TX2上使用半精度的TensorRT遇到了問題,building engine總是出現問題。