Docker環境下import ktc 發生core dump退出python

我的Host 主機是使用Ubuntu 20.04,安裝docker之後依照Toolchain說明pull最新image

docker pull kneron/toolchain:latest

啟動docker

docker run --rm -it -v /docker-share:/docker_mount kneron/toolchain:latest

 /docker-share 是我host分享出來的目錄

 

進入docker 環境後,下指令python 進入python環境,然後測試模組import動作

(base) root@d506fffd7db2:/workspace# python

Python 3.7.10 (default, Jun 4 2021, 14:48:32)

[GCC 7.5.0] :: Anaconda, Inc. on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import onnx

>>> import ktc

use toolchain binaries

 Illegal instruction (core dumped)

 

如上畫面,Import onnx 沒有問題,但是import ktc卻發生core dump 退出。請問為什麼呢?這部分錯誤,後續所有的轉換都無法進行了。

 

Tagged:

Comments

  • 您好,

    轉換模型時,我們建議您將這些code寫在一個Python檔裡面之後再一次執行。

  • 我把指令寫在一個onnx-optimizer.py 檔執行,結果是一樣的。在python底下下指令import ktc會出錯,放到py裡面一次執行當然結果還是會錯啊。

    我的onnx-optimizer.py 內容如下

    import onnx

    # Import the ktc package which is our Python API.

    import ktc

    # Load the model.

    original_m = onnx.load("/workspace/yolov5s-mask_convert.onnX")

    # Optimize the model using optimizer for onnx model.

    optimized_m = ktc.onnx_optimizer.onnx2onnx_flow(original_m)

    # Save the onnx object optimized_m to path /data1/optimized.onnx.

    onnx.save(optimized_m, '/data1/optimized.onnx')


    執行的結果如下

    (base) root@1a1d0578a8f5:/workspace# python onnx-optimizer.py

    use toolchain binaries

    Illegal instruction (core dumped)

    (base) root@1a1d0578a8f5:/workspace#

  • 您好,

    感謝您的測試。以防萬一,可以請您確認您的toolchain版本嗎? 因為就算是pull latest的,不一定是最新的版本。

    請使用: cat /workspace/version.txt 來檢查

  • 我再實驗,在 docker的環境下,進入python,然後執行

    import tensorflow as tf

    結果一樣

    Illegal instruction (core dumped)

    請問使用的電腦有最低等級的要求嗎?我使用的電腦CPU 是 Intel Duo,算是舊款的CPU與主機板。我host是安裝Ubuntu 20.04

  • 您好,

    以下是toolchain建議的系統要求,會建議用quad-core CPU喔

  • https://www.kneron.com/forum/discussion/comment/1828/#Comment_1828

    如Maria所貼的規格,Toolchain最低會需要quad-core CPU,因為你使用的是 Intel Duo可能導致不相容,還請理解。

The discussion has been closed due to inactivity. To continue with the topic, please feel free to post a new discussion.