Forward 是一款腾讯研发的 GPU 高性能推理加速框架。它提出了一种解析方案,可直接加载主流框架模型(Tensorflow / PyTorch / Keras / ONNX)转换成 TensorRT 推理加速引擎,帮助用户节省中间繁杂的模型转换或网络构建步骤。相对于直接使用 TensorRT,Forward 更易用以及更容易扩展支持更多模型和算子。目前,Forward 除了覆盖支持主流的 CV,NLP 及推荐领域的深度学习模型外,还支持一些诸如 BERT,FaceSwap,StyleTransfer 这类高级模型。
.so
文件拷贝至 Forward/source/third_party/tensorflow/lib
目录下)Forward/source/third_party/hdf5
源码构建)使用 CMake 进行构建生成 Makefiles 或者 Visual Studio 项目。根据使用目的,Forward 可构建成适用于不同框架的库,如 Fwd-Torch、Fwd-Python-Torch、Fwd-Tf、Fwd-Python-Tf、Fwd-Keras、Fwd-Python-Keras、Fwd-Onnx 和 Fwd-Python-Onnx。
以 Linux 平台构建 Fwd-Tf 为例,
步骤一:克隆项目
1 git clone https://github.com/Tencent/Forward.git
步骤二:下载 Tensorflow 1.15.0
(仅在 Linux 平台使用 Tensorflow 框架推理时需要)
1 cd Forward/source/third_party/tensorflow/
2 wget https://github.com/neargye-forks/tensorflow/releases/download/v1.15.0/libtensorflow-cpu-linux-x86_64-1.15.0.tar.gz
3 tar -xvf libtensorflow-gpu-linux-x86_64-1.15.0.tar.gz
步骤三:创建 build
文件夹
1 cd ~/Forward/
2 rm -rf build
3 mkdir -p build
4 cd build/
步骤四:使用 cmake
生成构建关系,需指定 TensorRT_ROOT
安装路径
1 cmake .. -DTensorRT_ROOT=<path_to_TensorRT> -DENABLE_TENSORFLOW=ON -DENABLE_UNIT_TESTS=ON
步骤五:使用 make
构建项目
1 make -j
步骤六:运行 unit_test
验证项目是否构建成功
cd bin/
./unit_test --gtest_filter=TestTfNodes.*
# 出现已下提示表示项目构建成
# [ OK ] TestTfNodes.ZeroPadding (347 ms)
# [----------] 22 tests from TestTfNodes (17555 ms total)
# [----------] Global test environment tear-down
# [==========] 22 tests from 1 test case ran. (17555 ms total)
# [ PASSED ] 22 tests.
更多构建流程可参考 CMake 构建流程 。
参考 Demo for using Forward-Cpp in Linux
参考 Demo for using Forward-Python
Refer to Demo for using Forward-Bert
注意: 模型输入名可通过模型查看器来查看, 例如用 Netron 查看。
Forward 使用 easylogging++ 作为日志功能,并使用 forward_log.conf
作为日志配置文件。
forward_log.conf
文件,Forward 将使用该配置文件,更多内容可参考 Using-configuration-file;forward_log.conf
文件,Forward 将使用默认配置,并将日志记录到 logs/myeasylog.log
。forward_log.conf
文件配置样例
* GLOBAL:
FORMAT = "[%level] %datetime %fbase(%line): %msg"
FILENAME = "Forward.log"
ENABLED = true
TO_FILE = true
TO_STANDARD_OUTPUT = true
PERFORMANCE_TRACKING = true
MAX_LOG_FILE_SIZE = 2097152 ## 2MB - Comment starts with two hashes (##)
LOG_FLUSH_THRESHOLD = 100 ## Flush after every 100 logs
当前 Forward 的模型与算子支持如下所示,如有需要添加更多支持的,欢迎联系添加 Issue 反馈。如需要自行扩展添加支持的,可参考 开源共建:扩展添加支持操作的流程
Aster JIAN |
Zexi YUAN |
Ao LI |
Paul LU |
Zhaoyi LUO |
Jett Hu |
Ryosuke1eep |
感谢所有贡献者,欢迎更多人加入一起贡献。
详情见 LISENCE
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型