将在 tensorflow 中训练的神经网络部署到 Torch C++ 的最佳方法是啥?

Posted

技术标签:

【中文标题】将在 tensorflow 中训练的神经网络部署到 Torch C++ 的最佳方法是啥?【英文标题】:What is the best way of deploying a neural network trained in tensorflow to torch C++?将在 tensorflow 中训练的神经网络部署到 Torch C++ 的最佳方法是什么? 【发布时间】:2020-05-13 13:53:18 【问题描述】:

我正在做一个项目,我需要使用 PyTorch 在 C++ 中转发网络。网络的权重需要从 Tensorflow 训练的模型中导入。我将使用 Torch 编写网络的 C++ 版本,但由于某些问题,我无法在 Torch 中训练网络。我可以使用哪些方法来做到这一点?

【问题讨论】:

如果有疑问,通用(虽然有时很慢)持久存储是文本。 【参考方案1】:

要尝试的事情:

    使用一些转换器将 TensorFlow 模型转换为 ONNX/TensorRT/其他任何东西。然后可以将 ONNX 转换为 PyTorch(不确定 Torch),但您可能会发现它没有必要,因为 ONNX 和 TensorRT 都适合使用它们自己的运行时进行推理。但实际上,您可能会面临很多转换问题。 使用 Torch 复制模型代码,然后将 TensorFlow 张量复制到代码中的类似物。您可以在 HuggingFace/Transformers 代码1、2 中看到此类 TF->PyTorch 转换的示例。如您所见,这非常棘手。

【讨论】:

以上是关于将在 tensorflow 中训练的神经网络部署到 Torch C++ 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow的训练流程和部署流程你知道吗?

tensorflow训练好的模型,怎么调用?

学界 | 阿里NIPS 2017 Workshop论文:基于TensorFlow的深度模型训练GPU显存优化

如何将本地训练的 TensorFlow 图形文件部署到 Google Cloud Platform?

(转)Darknet模型与Tensorflow模型相互转换

Tensorflow Serving 初探