目录
为什么要了解环境配置和版本安装?
深度学习环境配置与深度学习框架的版本选择是深度学习算法项目的实施的必经之路。Tensorflow作为最常用的深度学习框架之一,地位尤其重要。本文主要尝试分享一些实际项目使用Tensorflow时相对应的环境配置、版本选择和一些注意事项等相关经验。
正确的版本选择对于算法开发、移植以及后续都有很大影响。
需要考虑哪些方面?
Tensorflow不同版本所需环境配置不同、所具有的网络层特性不同;但是在大版本中可以做到向上兼容,例如Tensorflow 1 系列版本向上兼容,但是与Tensorflow2.0以上版本不具有兼容性。例如,通常,1.13.0版本兼容1.12.0版本,但是2.0版本不兼容1.13.0版本,需要通过一些手段来转换模型才能直接使用。
在相同的Tensorflow相同的大版本中,可以基于以下几点考虑来选择版本:
-
基于运行硬件分类考虑:
CPU版本
指令集加速 AVX AVX2 SSE SSE2
GPU版本
CPU指令集加速
显卡驱动版本
CUDA版本
CUDNN版本
-
基于开发语言类型考虑:
Tensorflow常用的是C++和Python接口,
如果需要基于tensorflow的python开发,则需要考虑python版本,可以直接安装。
如果需要Tensorflow C++ 接口,则可能需要考虑Tensorflow的编译方法。
-
算法上下游开发:
与现有算法开发和项目开发的兼容性;
算法和项目开发的延展性,与后期算法开发规划不能有可期的影响;
算法优化和部署、例如tensorRT、Openvino和与其它框架的模型转换等需要的版本要匹配;
都有哪些版本?
首先要说明的是,Tensorflow是开源框架,意味着,它是允许开发者自己编译的,官方会提供各个版本编译好的库供大家使用,一来少了编译的麻烦,二来也可以保证算法库的稳定性。
版本首要选择官方版本,可以通过访问官方说明来看官方给的版本有哪些,以windows系统为例:
https://tensorflow.google.cn/install/source_windows
可以找到一下截图中的版本就是官方支持的版本了(截图日期:20200717):
通过这个说明可以看到,如果你想用GPU,则需要选择GPU版本,如果你要用CUDA10.0,则需要配置cuDNN7.4,列表中的条件都满足时才可以保证正确使用该版本。
要注意的是官方验证过的编译配置是肯定可以编译通过的配置,如果官方没验证的编译配置也不证明不能够编译通过和使用。如果有的算法和项目不能更改现有环境,则可以寻找一些非常强大的tensorflow民间版本,在此推荐:
https://github.com/lakshayg/tensorflow-build
尝试过是可以使用的,谢谢分享,手动点赞。
如果以上都不能满足环境配置和版本需求,则可以自己编译。至于如何编译,大体流程是去官方git下载对应版本源码,配置好GPU等环境,用Cmake+VS来进行编译,最后具体错误具体对待。
模型部署之tensorRT
访问官网:https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html
可以看到其支持的网络层,硬件和软件条件等,有利于Tensorflow版本选择的决策。
禁止转载