Tensorflow 1.14 버젼에서 TensorRT 환경을 셋팅하기 위한 문서 입니다.
주의 사항 : TensorRT가 설치되어 있는 환경에서 진행, numpy 버젼 1.19.0 미만
TensorRT 설치 (아래 링크 이용)
2020/07/30 - [잡다한 것] - GPU 가속을 위한 TensorRT 7.0.0, tkDNN 환경 구축하기(feat. cmake업그레이드)
Numpy 버젼 다운그레이드
python3
>> import numpy
>> numpy.__version__
'1.19.1'
numpy 버젼 확인 후 1.19.0 이상일 경우 numpy 재설치 (필자는 1.19.1 버젼 이었다.)
pip3 uninstall numpy
pip3 install numpy==1.18.0
bazel install
bazel 설치하기
bazel 빌더를 설치하기 위해 해당 페이지로 이동
bazel의 버젼이 높을 경우 tensorflow 빌드가 안되기 때문에 해당 버젼 이용
https://github.com/bazelbuild/bazel/releases/tag/0.25.0
bazel-0.25.0-installer-linux-x86_64.sh 다운로드
bazel 0.25.0 버젼 설치
cp ./Downloads/bazel-0.25.0-installer-linux-x86_64.sh .
chmod +x bazel-0.25.0-installer-linux-x86_64.sh
./bazel-0.25.0-installer-linux-x86_64.sh --user
bashrc에 path 등록
echo 'export PATH="$PATH:$HOME/bin"' >> ~/.bashrc
source ~/.bashrc
sudo ldconfig
Tensorflow 1.14 빌드
Tensorflow git에서 다운로드 및 브랜치 변경
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r1.14
Tensorflow 빌드 configuration
configure 파일 실행
./configure
python3에 Tensorflow 빌드 하기 위한 설정 가이드
(본인의 환경에 맞게 경로를 설정해주세요.)
Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3
Found possible Python library paths:
/home/govis/catkin_ws/devel/lib/python2.7/dist-packages
/usr/local/lib/python3.6/dist-packages
/usr/lib/python3/dist-packages
/usr/lib/python3.6/dist-packages
/opt/ros/melodic/lib/python2.7/dist-packages
Please input the desired Python library path to use.
Default is [/home/govis/catkin_ws/devel/lib/python2.7/dist-packages]
/usr/lib/python3/dist-packages
Do you wish to build TensorFlow with XLA JIT support? [Y/n]: Y
Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: N
Do you wish to build TensorFlow with ROCm support? [y/N]: N
Do you wish to build TensorFlow with CUDA support? [y/N]: Y
Do you wish to build TensorFlow with TensorRT support? [y/N]: Y
Found CUDA 10.0 in:
/usr/local/cuda/lib64
/usr/local/cuda/include
Found cuDNN 7 in:
/usr/local/cuda/lib64
/usr/local/cuda/include
Found TensorRT 7 in:
/usr/lib/x86_64-linux-gnu
/usr/include/x86_64-linux-gnu
Please specify a list of comma-separated CUDA compute capabilities
you want to build with.You can find the compute capability of your
device at: https://developer.nvidia.com/cuda-gpus.Please note that
each additional compute capability significantly increases your
build time and binary size,and that TensorFlow only supports compute
capabilities >= 3.5 [Default is: 3.5,7.0]: (Enter)
Do you want to use clang as CUDA compiler? [y/N]: N
Please specify which gcc should be used by nvcc as the host compiler.
[Default is /usr/bin/gcc]: (Enter)
Do you wish to build TensorFlow with MPI support? [y/N]: N
Please specify optimization flags to use during compilation
when bazel option "--config=opt" is specified
[Default is -march=native -Wno-sign-compare]: (Enter)
Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: N
빌드 configuration 설정 완료
Tensorflow 빌드 시작
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
빌드하는데에 굉장히 오래걸린다. 심지어 CPU까지도 다 차지해서 컴퓨터로 작업 안하는걸 추천
빌드가 완료 되면 해당 문구를 볼 수 있다.
Wheel 파일 생성 및 pip3 설치
Tensorflow wheel 파일 생성
bazel-bin/tensorflow/tools/pip_package/build_pip_package tensorflow_pkg
pip3 로 wheel 파일 설치
cd tensorflow_pkg
pip3 install tensorflow*.whl
pip3로 tensorflow 1.14 버젼이 자동으로 설치 된다.
Tensorflow에 TensorRT가 잘 포함 되었는지 확인
from tensorflow.compiler.tf2tensorrt.wrap_py_utils import get_linked_tensorrt_version
from tensorflow.compiler.tf2tensorrt.wrap_py_utils import get_loaded_tensorrt_version
compiled_version = get_linked_tensorrt_version()
loaded_version = get_loaded_tensorrt_version()
print("Linked TensorRT version: %s" % str(compiled_version))
print("Loaded TensorRT version: %s" % str(loaded_version))
Linked TensorRT version: (7, 0, 0) Loaded TensorRT version: (7, 0, 0) |
-------20.8.6 오류 노트 -------
**만약 cp: cannot stat '/usr/include/x86_64-linux-gnu/NvInferRTSafe.h': No such file or directory 에러 발생시 해결법
~/tensorflow/third_party/tensorrt/ 폴더로 이동
tensorrt_configure.bzl 열어서 30번 줄 수정
**만약 bazel-out/host/bin/external/local_config_tensorrt/_virtual_includes/tensorrt_headers/third_party/tensorrt/NvInfer.h 에러 발생시 해결법
~/tensorflow/tensorflow/ 폴더로 이동
BUILD 파일에 594번 줄 수정
tf_cc_shared_object(
"//tensorflow/cc:scope",
"//tensorflow/cc/profiler",
"//tensorflow/core:tensorflow",
+ "//tensorflow/compiler/tf2tensorrt:trt_conversion",
+ "//tensorflow/compiler/tf2tensorrt:trt_op_kernels",
+ "//tensorflow/compiler/tf2tensorrt:trt_engine_op_op_lib",
] + if_ngraph(["@ngraph_tf//:ngraph_tf"]),
)
~/tensorflow/tensorflow/compiler/tf2tensorrt/convert/ 폴더로 이동
convert_node.cc 파일에 764번 줄 수정
class TRT_TensorOrWeights::SimpleITensor : public nvinfer1::ITensor {
nvinfer1::TensorFormats getAllowedFormats() const override { return 1; }
- bool isShape() const override { return false; }
+ bool isShapeTensor() const override { return false; }
+
+ bool isExecutionTensor() const override { return true; }
#endif
'잡다한 것' 카테고리의 다른 글
Docker 설치 및 Nvidia docker로 GPU 사용하기 (feat. 자주쓰이는 명령어) (3) | 2020.11.03 |
---|---|
GPU 가속을 위한 TensorRT 7.0.0, tkDNN 환경 구축하기(feat. cmake업그레이드) (7) | 2020.07.30 |
Jetson Xavier 초기 환경 설정 및 딥러닝 패키지부터 ROS 설치 까지 완전 클린 설치 (0) | 2020.06.09 |
darknet, Yolo v3 설치 시 Opencv 오류 관련 및 클린 설치 (3) | 2020.04.21 |
Ubuntu 18.04 그래픽 드라이버 440, cuda 10.2 오류 ,그래픽 드라이버 410,cuda 10.0 클린 설치하기 (0) | 2020.04.17 |