栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第10节 libtorch与torchvision交叉编译(ARM与安卓 ios)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第10节 libtorch与torchvision交叉编译(ARM与安卓 ios)

libtorch cross compile on aarch64-linux-gnu-gcc include torchvision

Refer to:

https://github.com/pytorch/pytorch#get-the-pytorch-source

https://github.com/pytorch/pytorch/blob/master/docs/libtorch.rst

Compile libtorch c++ api from source - #2 by WMF1997 - C++ - PyTorch Forums

libtorch を Android でビルドするメモ - Qiita

https://github.com/ljk53/pytorch-android-cpp-demo

https://github.com/dpilger26/NumCpp/tree/master

#install gcc compiler

sudo apt install build-essential

#install python3 version >= 3.7 need, here is a lot works.

https://fatalfeel.blogspot.com/2019/12/ai-with-cuda-install-step-and-yolov3-in.html

#install cmake 3.20.5

wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null

sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'

sudo apt update

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DE19EB17684BA42D

sudo apt install cmake cmake-qt-gui cmake-curses-gui

sudo apt install ninja-build

#download torch source

git clone --recursive https://github.com/pytorch/pytorch.git

cd pytorch

git checkout v1.7.1

git submodule sync

git submodule update --init --recursive

CPU_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}')

echo "CPU number = "$CPU_NUM

=========Ubuntu16.04 x86_64=========

(a)

build opencv x64 version for libtorch, opencv can help convert image to tensor easier

https://fatalfeel.blogspot.com/2013/12/opencv-and-dlib-training.html

(b)

cd pytorch

mkdir build

cd build

#OpenCV_DIR can get OpenCVConfig.cmake

cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/libtorch/x64 -DPYTHON_EXECUTABLE=$(which python3) -DBUILDING_WITH_TORCH_LIBS=ON -DATEN_THREADING=NATIVE -DUSE_OPENCV=ON -DOpenCV_DIR=/opt/opencv/share/OpenCV -DBUILD_EXAMPLES=ON -DUSE_CUDA=ON

cmake --build . --target install -- -j$CPU_NUM VERBOSE=1

=========Android=========

https://developer.android.com/ndk/downloads/older_releases

download and extract Android NDK 19c to /opt

#python link to python3

ln -sf /usr/bin/python3.7 /usr/bin/python

pip3 install pyyaml

cd pytorch

#release version

gedit ./scripts/build_android.sh

-DCMAKE_BUILD_TYPE=Release

#change to

-DCMAKE_BUILD_TYPE=RelWithDebInfo

#debug version

gedit ./scripts/build_android.sh

-DCMAKE_BUILD_TYPE=Release

#change to

-DCMAKE_BUILD_TYPE=Debug

export ANDROID_NDK=/opt/android-ndk

export ANDROID_ABI=arm64-v8a

export ANDROID_NATIVE_API_LEVEL=28

export ANDROID_DEBUG_SYMBOLS=1

export VERBOSE=1

./scripts/build_android.sh

=========Numpy C++=========

add-apt-repository ppa:mhier/libboost-latest

apt update

apt install libboost1.68-dev

git clone https://github.com/dpilger26/NumCpp.git

cd $HOME/NumCpp/install

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/opt/numcpp ..

make && make install

(when use it need CXXFLAGS += -std=c++14)

Example libtorch and numpy in eclipse:

http://www.mediafire.com/file/zr1txqkqzl064i9/openai.tar.gz

=========================aarch64-linux-gnu-gcc=========================

refer to:

a. dependencies prebuilt

https://github.com/t-kuha/mpsoc-library/wiki/How-to-build-libtorch-&-torchvision          

b. dependencies manual

https://github.com/t-kuha/mpsoc-library/wiki/How-to-build-Caffe-%26-libtorch-dependencies

c. cmake 3.20.5

https://fatalfeel.blogspot.com/2013/12/build-nrf9160dk-projects-with-zephyr-os.html      

d. python 3.7.9

https://fatalfeel.blogspot.com/2019/12/ai-with-cuda-install-step-and-yolov3-in.html         

//libtorch dependency prebuilt in git//

1.

git clone --recursive https://github.com/pytorch/pytorch

cd pytorch

git checkout v1.7.1

git submodule sync

git submodule update --init --recursive

export LIBTORCH_ROOT=$(pwd)

2.

./scripts/build_host_protoc.sh

3.

cd third_party/sleef

mkdir _host

cd _host

cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=_install -DBUILD_TESTS=OFF

cmake --build . --target install -- -j$CPU_NUM VERBOSE=1

4. (if use manual make libs, skip this)

cd ../..

git clone -b 2019.2 https://github.com/t-kuha/mpsoc-library.git

export DEPEND_DIR=$(pwd)/mpsoc-library

5.

cd $LIBTORCH_ROOT

gedit ./toolchain.make

#add

set( CMAKE_SYSTEM_NAME Linux )

set( CMAKE_SYSTEM_PROCESSOR aarch64 )

set( CMAKE_C_COMPILER /opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/bin/aarch64-ca53-linux-gnu-gcc )

set( CMAKE_CXX_COMPILER /opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/bin/aarch64-ca53-linux-gnu-g++ )

#save & exit

6.

export PATH=$PATH:/opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/bin

export LD_LIBRARY_PATH=/opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/lib

CPU_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}')

echo "CPU number = "$CPU_NUM

7. (option can skip, if cmake error)

when

CMake Error at cmake/Codegen.cmake:163 (message):

cd $LIBTORCH_ROOT

gedit ./cmake/Codegen.cmake

set(GEN_COMMAND

  "${PYTHON_EXECUTABLE}" ${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/gen.py

#to

find_package (Python COMPONENTS Interpreter)

set(GEN_COMMAND

  "${Python_EXECUTABLE}" ${CMAKE_CURRENT_LIST_DIR}/../aten/src/ATen/gen.py

8.

cd $LIBTORCH_ROOT

gedit ./cmake/TorchConfig.cmake.in

~comment

###if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")

###  set(TORCH_CXX_FLAGS "-

_GLIBCXX_USE_CXX11_ABI=@GLIBCXX_USE_CXX11_ABI@")

###endif()

mkdir _mpsoc

cd _mpsoc

cmake ${LIBTORCH_ROOT} -G"Unix Makefiles"

-DCMAKE_INSTALL_PREFIX=/opt/libtorch/arm64

-DCMAKE_BUILD_TYPE=Release

-DCAFFE2_CUSTOM_PROTOC_EXECUTABLE=${LIBTORCH_ROOT}/build_host_protoc/bin/protoc

-DCMAKE_TOOLCHAIN_FILE=toolchain.make

-DCMAKE_PREFIX_PATH=${DEPEND_DIR}/dl-framework/caffe-dependency

-DPYTHON_EXECUTABLE=$(which python3)

-C${DEPEND_DIR}/dl-framework/libtorch/TryRunResults.cmake

-DBUILDING_WITH_TORCH_LIBS=ON

-DBUILD_BINARY=ON

-DBUILD_CAFFE2_MOBILE=ON

-DBUILD_CAFFE2_OPS=ON

-DBUILD_CUSTOM_PROTOBUF=ON

-DBUILD_DFT=OFF

-DBUILD_DOCS=OFF

-DBUILD_GMOCK=ON

-DBUILD_GNUABI_LIBS=OFF

-DBUILD_LIBM=ON

-DBUILD_ONNX_PYTHON=OFF

-DBUILD_PYTHON=OFF

-DBUILD_QUAD=OFF

-DBUILD_SHARED_LIBS=ON

-DBUILD_TEST=ON

-DBUILD_TESTS=ON

-DUSE_ASAN=OFF

-DUSE_CUDA=OFF

-DUSE_DISTRIBUTED=OFF

-DUSE_FBGEMM=ON

-DUSE_FFMPEG=ON

-DUSE_GFLAGS=ON

-DUSE_GLOG=ON

-DUSE_GLOO=OFF

-DUSE_LEVELDB=ON

-DUSE_LITE_PROTO=OFF

-DUSE_LMDB=ON

-DUSE_METAL=OFF

-DUSE_MKLDNN=OFF

-DUSE_MPI=OFF

-DUSE_NATIVE_ARCH=OFF

-DUSE_NNAPI=OFF

-DUSE_NNPACK=ON

-DUSE_NUMA=OFF

-DUSE_NUMPY=ON

-DUSE_OBSERVERS=OFF

-DUSE_OPENCL=OFF

-DUSE_OPENCV=ON

-DUSE_OPENMP=OFF

-DUSE_PROF=OFF

-DUSE_PYTORCH_QNNPACK=OFF

-DUSE_QNNPACK=ON

-DUSE_REDIS=OFF

-DUSE_ROCKSDB=ON

-DUSE_ROCM=OFF

-DUSE_SNPE=OFF

-DUSE_SYSTEM_EIGEN_INSTALL=OFF

-DUSE_TBB=OFF

-DUSE_TENSORRT=OFF

-DUSE_ZMQ=ON

-DUSE_ZSTD=OFF

-DHAVE_STD_REGEX=0

-DHAVE_POSIX_REGEX=0

-DHAVE_STEADY_CLOCK=0

-DATEN_THREADING=NATIVE

-DBLAS=OpenBLAS

-DCMAKE_CROSSCOMPILING=ON

-DNATIVE_BUILD_DIR=${LIBTORCH_ROOT}/third_party/sleef/_host/

-DCMAKE_CXX_FLAGS="-L${DEPEND_DIR}/dl-framework/caffe-dependency/lib -llmdb -lleveldb -lsnappy -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_video -lopencv_videoio -lzmq -lrocksdb"

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

/libtorch manual make libs///

1.

wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null

sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'

sudo apt update

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DE19EB17684BA42D

sudo apt install cmake cmake-qt-gui cmake-curses-gui

2.

gedit ./toolchain.make

set( CMAKE_SYSTEM_NAME Linux )

set( CMAKE_SYSTEM_PROCESSOR aarch64 )

set( CMAKE_C_COMPILER /opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/bin/aarch64-ca53-linux-gnu-gcc )

set( CMAKE_CXX_COMPILER /opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/bin/aarch64-ca53-linux-gnu-g++ )

~~~save and copy to each dependency source~~~

3.

wget https://raw.githubusercontent.com/t-kuha/mpsoc-library/2019.2/dl-framework/libtorch/TryRunResults.cmake

mkdir -p /opt/torch_dependency/arm64

cp ./TryRunResults.cmake /opt/torch_dependency/arm64

4.

export PATH=$PATH:/opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/bin

export LD_LIBRARY_PATH=/opt/ivot/aarch64-ca53-linux-gnueabihf-8.4/lib

CPU_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}')

echo "CPU number = "$CPU_NUM

5.

Version 1.68.0

download bboost_1_68_0.tar.gz

tar -xvf ./boost_1_68_0.tar.gz

cd boost_1_68_0

./bootstrap.sh

gedit ./project-config.jam

using gcc ;

~change to

using gcc : arm64 : aarch64-ca53-linux-gnu-g++ ;

using python : 2.7 : /usr ;

~change to

using python : 3.7 : /usr ;

./bjam install toolset=gcc-arm64 variant=release link=shared threading=multi runtime-link=shared --prefix=/opt/torch_dependency/arm64 --with-thread --with-system --with-filesystem -j$CPU_NUM

6.

https://github.com/gflags/gflags/releases

download gflags-2.2.2.tar.gz

tar -xvf ./gflags-2.2.2.tar.gz

cd gflags-2.2.2

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.make -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

7.

https://github.com/google/glog/releases

download glog-0.4.0.tar.gz

tar -xvf ./glog-0.4.0.tar.gz

cd glog-0.4.0

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.make -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

8.

https://github.com/google/leveldb/releases

download leveldb-1.22.tar.gz

tar -xvf ./leveldb-1.22.tar.gz

cd leveldb-1.22

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.make -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64 -DCMAKE_BUILD_TYPE=Release -DLEVELDB_BUILD_TESTS=OFF -DLEVELDB_BUILD_BENCHMARKS=OFF -DBUILD_SHARED_LIBS=ON

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

9.

Tags · openldap / OpenLDAP · GitLab

download openldap-LMDB_0.9.24.tar.gz

tar -xvf ./openldap-LMDB_0.9.24.tar.gz

cd openldap-LMDB_0.9.24/libraries/liblmdb

gedit ./Makefile

CC      = gcc

AR      = ar

OPT     = -O2 -g

prefix  = /usr/local

#change to

CC      = aarch64-ca53-linux-gnu-gcc

AR      = aarch64-ca53-linux-gnu-ar

OPT     = -O3

prefix  = /opt/torch_dependency/arm64

#save

make -j$CPU_NUM install

10.

https://github.com/xianyi/OpenBLAS/releases?page=2

download OpenBLAS-0.3.7.tar.gz

tar -xvf ./OpenBLAS-0.3.7.tar.gz

cd OpenBLAS-0.3.7

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles"

-DCMAKE_TOOLCHAIN_FILE=toolchain.make

-DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64

-DCMAKE_BUILD_TYPE=Release

-DNOFORTRAN=1

-DBUILD_SHARED_LIBS=1

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

11.

Releases - OpenCV

download opencv-3.4.8.zip

unzip ./opencv-3.4.8.zip

cd opencv-3.4.8

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles"

-DCMAKE_TOOLCHAIN_FILE=toolchain.make

-DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64

-DCMAKE_BUILD_TYPE=Release

-DBUILD_PERF_TESTS=OFF

-DBUILD_TESTS=OFF

-DBUILD_ZLIB=ON

-DWITH_CUDA=OFF

-DZLIB_INCLUDE_DIR=../3rdparty/zlib

cmake-gui ./CMakeCache.txt

#enable these modules, disable unuse BUILD_opencv_xxxx

BUILD_opencv_core

BUILD_opencv_video

BUILD_opencv_videoio

BUILD_opencv_highgui

BUILD_opencv_imgproc

BUILD_opencv_imgcodecs

#press Configure then Generate

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

12.

https://github.com/protocolbuffers/protobuf/releases?page=6

download protobuf-3.10.1.tar.gz

tar -xvf ./protobuf-3.10.1.tar.gz

cd protobuf-3.10.1

mkdir _host

cd _host

cmake ../cmake/ -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/x64/host -Dprotobuf_BUILD_TESTS=OFF

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

~~~must copy toolchain.make to ./protobuf-3.10.1/cmake

cd ..

mkdir _mpsoc

cd _mpsoc

export PATH=${PATH}:/opt/torch_dependency/x64/host/bin

cmake ../cmake/ -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.make -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64 -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=ON

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

13.

https://github.com/google/snappy/releases

download snappy-1.1.7.tar.gz

tar -xvf ./snappy-1.1.7.tar.gz

cd snappy-1.1.7

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.make -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DSNAPPY_BUILD_TESTS=OFF

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

14.

https://github.com/facebook/rocksdb/releases?page=4

download rocksdb-6.4.6.tar.gz

tar -xvf ./rocksdb-6.4.6.tar.gz

cd rocksdb-6.4.6

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Ninja" -DCMAKE_TOOLCHAIN_FILE=toolchain.make -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64 -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=OFF -DWITH_TOOLS=OFF -DWITH_GFLAGS=OFF -DPORTABLE=ON

~~~can not use VERBOSE=1~~~

cmake --build . --config Release --target install -- -j$CPU_NUM

15.

https://github.com/zeromq/libzmq/releases

download libzmq-4.3.4.tar.gz

tar -xvf ./libzmq-4.3.4.tar.gz

cd libzmq-4.3.4

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/opt/torch_dependency/arm64 -DCMAKE_TOOLCHAIN_FILE=toolchain.make -DBUILD_STATIC=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DWITH_PERF_TOOL=OFF

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

16.

first do step 1.2.3.5.6.7. of [libtorch dependency prebuilt in git]

cd $LIBTORCH_ROOT

gedit ./cmake/TorchConfig.cmake.in

~comment

###if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")

###  set(TORCH_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=@GLIBCXX_USE_CXX11_ABI@")

###endif()

mkdir _mpsoc

cd _mpsoc

cmake ${LIBTORCH_ROOT} -G"Unix Makefiles"

-DCMAKE_INSTALL_PREFIX=/opt/libtorch/arm64

-DCMAKE_BUILD_TYPE=Release

-DCAFFE2_CUSTOM_PROTOC_EXECUTABLE=${LIBTORCH_ROOT}/build_host_protoc/bin/protoc

-DCMAKE_TOOLCHAIN_FILE=toolchain.make

-DCMAKE_PREFIX_PATH=/opt/torch_dependency/arm64

-DPYTHON_EXECUTABLE=$(which python3)

-C/opt/torch_dependency/arm64/TryRunResults.cmake

-DBUILDING_WITH_TORCH_LIBS=ON

-DBUILD_BINARY=ON

-DBUILD_CAFFE2_MOBILE=ON

-DBUILD_CAFFE2_OPS=ON

-DBUILD_CUSTOM_PROTOBUF=ON

-DBUILD_DFT=OFF

-DBUILD_DOCS=OFF

-DBUILD_GMOCK=ON

-DBUILD_GNUABI_LIBS=OFF

-DBUILD_LIBM=ON

-DBUILD_ONNX_PYTHON=OFF

-DBUILD_PYTHON=OFF

-DBUILD_QUAD=OFF

-DBUILD_SHARED_LIBS=ON

-DBUILD_TEST=ON

-DBUILD_TESTS=ON

-DUSE_ASAN=OFF

-DUSE_CUDA=OFF

-DUSE_DISTRIBUTED=OFF

-DUSE_FBGEMM=ON

-DUSE_FFMPEG=ON

-DUSE_GFLAGS=ON

-DUSE_GLOG=ON

-DUSE_GLOO=OFF

-DUSE_LEVELDB=ON

-DUSE_LITE_PROTO=OFF

-DUSE_LMDB=ON

-DUSE_METAL=OFF

-DUSE_MKLDNN=OFF

-DUSE_MPI=OFF

-DUSE_NATIVE_ARCH=OFF

-DUSE_NNAPI=OFF

-DUSE_NNPACK=ON

-DUSE_NUMA=OFF

-DUSE_NUMPY=ON

-DUSE_OBSERVERS=OFF

-DUSE_OPENCL=OFF

-DUSE_OPENCV=ON

-DUSE_OPENMP=OFF

-DUSE_PROF=OFF

-DUSE_PYTORCH_QNNPACK=OFF

-DUSE_QNNPACK=ON

-DUSE_REDIS=OFF

-DUSE_ROCKSDB=ON

-DUSE_ROCM=OFF

-DUSE_SNPE=OFF

-DUSE_SYSTEM_EIGEN_INSTALL=OFF

-DUSE_TBB=OFF

-DUSE_TENSORRT=OFF

-DUSE_ZMQ=ON

-DUSE_ZSTD=OFF

-DHAVE_STD_REGEX=0

-DHAVE_POSIX_REGEX=0

-DHAVE_STEADY_CLOCK=0

-DATEN_THREADING=NATIVE

-DBLAS=OpenBLAS

-DCMAKE_CROSSCOMPILING=ON

-DNATIVE_BUILD_DIR=${LIBTORCH_ROOT}/third_party/sleef/_host/

-DCMAKE_CXX_FLAGS="-L/opt/torch_dependency/arm64/lib -llmdb -lleveldb -lsnappy -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_video -lopencv_videoio -lzmq -lrocksdb"

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

~~~note: using python 3.7.9 = -DPYTHON_EXECUTABLE=$(which python3)

17.

https://github.com/pytorch/vision/releases

download vision-0.8.2.tar.gz

tar -xvf ./vision-0.8.2.tar.gz

cd vision-0.8.2

~modify these files add definition USE_PYTHON for cmake, header, source

./CMakeLists.txt

./cmake/TorchVisionConfig.cmake.in

./torchvision/csrc/cpu/image/image.cpp

./torchvision/csrc/cpu/video/Video.h

./torchvision/csrc/cpu/video_reader/VideoReader.cpp

./torchvision/csrc/cpu/vision_cpu.h

./torchvision/csrc/empty_tensor_op.h

./torchvision/csrc/vision.cpp

~patch here

vision-0.8.2_patch.tar

mkdir _mpsoc

cd _mpsoc

cmake .. -G"Unix Makefiles"

-DCMAKE_TOOLCHAIN_FILE=toolchain.make

-DCMAKE_INSTALL_PREFIX=/opt/torch_vision/arm64

-DCMAKE_BUILD_TYPE=Release

-DCMAKE_PREFIX_PATH=/opt/torch_dependency/arm64

-DTorch_DIR=/opt/libtorch/arm64/share/cmake/Torch

-DUSE_PYTHON=OFF

-DWITH_CUDA=OFF

-DPNG_LIBRARY=/opt/torch_dependency/arm64/lib/libopencv_imgcodecs.so

-DJPEG_LIBRARY=/opt/torch_dependency/arm64/lib/libopencv_imgcodecs.so

~~~remove define _GLIBCXX_USE_CXX11_ABI

~~~TorchConfig.cmake.in modified already, so we can skip sed -i

###sed -i 's/-D_GLIBCXX_USE_CXX11_ABI=//g' ./CMakeFiles/torchvision.dir/flags.make

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

sample code:

torch_test.tar

demo: (both forward & backward support for aarch64-linux-gnu-gcc)

File sharing and storage made simple

File sharing and storage made simple

https://www.mediafire.com/view/cmqha2rgexv7l3p/libtorch_nettransform.png

File sharing and storage made simple

///

Tesla told in New York Herald: I prefer to be remembered as the inventor who succeeded in abolishing war. That will be my highest pride.

Tesla Collection (in middle section)

Albert Einstein: The release of atom power has changed everything except our way of thinking... the solution to this problem lies in the heart of mankind. If only I had known, I should have become a watchmaker.

Albert Einstein – AtomicTrauma

AI produce carbon footprint

https://arxiv.org/pdf/1906.02243.pdf

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1038509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号