【问题标题】:Is it possible to train ONNX models developed in tensorflow and pytorch with C++?是否可以使用 C++ 训练在 tensorflow 和 pytorch 中开发的 ONNX 模型?
【发布时间】:2021-12-19 12:32:15
【问题描述】:

我想知道是否可以使用转换为 onnx 模型的 tensorflow 和 pytorch 模型来使用 C++ Api 来训练它们,就像在 e.g. https://gist.github.com/asimshankar/5c96acd1280507940bad9083370fe8dc 带有张量流模型。我刚刚找到了使用 onnx 进行推理的示例。这个想法是能够在 python 中使用 tensorflow 和 pytorch 进行原型设计,转换为 onnx 模型,并在 C++ 中使用统一的 API 来进行推理和训练。获取一些(获取的链接)信息会有很大帮助。

【问题讨论】:

    标签: c++ tensorflow pytorch onnx onnxruntime


    【解决方案1】:

    ONNX 运行时支持训练,但不支持 C++。您可以使用 ORT 和 Pytorch 训练 ONNX 模型。请看这里https://onnxruntime.ai/docs/get-started/training-pytorch.html

    【讨论】:

      【解决方案2】:

      ONNX's GitHub page 建议它可以用于推理,但能够用它训练所有模型似乎并不合理(从开发角度来看)。

      目前我们专注于推理(评分)所需的能力。

      虽然有一些困难,比如总是写backpropagationfeedforwarding更难,而且支持它会使框架大小翻倍,这不是ONNX的目标,因为已经有很多框架了为了这。要训​​练你需要所有的参数,GPU 和 CPU 中的函数导数(如果它的性能低于其他框架,这将是一个大问题,因为没有人会使用它)。还有许多其他因素使统一框架变得困难(例如,支持通过网络在多个 GPU 上进行训练)。(所以在我们看来,这很棒,但在他们看来,这太难了)

      但是我们可以看到框架中添加了一些用于训练的功能,在这种情况下可以train transformer models

      另外,在PyTorch 中训练变形金刚你可以看到this link

      【讨论】:

      • 谢谢,我想这是有道理的。我对找到解决方案不太乐观,但获得其他意见很有帮助。
      猜你喜欢
      • 2021-09-13
      • 2018-03-28
      • 2021-02-24
      • 2019-06-12
      • 2020-07-24
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多