【问题标题】:Is it possible to train pytorch and tensorflow model together on one GPU?是否可以在一个 GPU 上同时训练 pytorch 和 tensorflow 模型?
【发布时间】:2018-03-28 16:39:59
【问题描述】:

我有一个 pytorch 模型和一个 tensorflow 模型,我想在一个 GPU 上一起训练它们,遵循以下过程:input --> pytorch model--> output_pytorch --> tensorflow model --> output_tensorflow --> pytorch model

有可能做到这一点吗?如果答案是肯定的,我会遇到什么问题吗?

提前致谢。

【问题讨论】:

  • 我会在 TF 中使用 per_process_gpu_memory_fraction 来限制单个会话的内存使用量,并使用 FIFO 队列来连接两个模型
  • 是的。但我不会推荐它。 TF 更喜欢单独使用 GPU。

标签: tensorflow tensorflow-gpu pytorch


【解决方案1】:

我还没有这样做,但这是可能的,但实施起来可能有点困难。 您可以将每个网络视为一个函数,您希望 - 在某种意义上 - 组合这些函数以形成您的网络,为此您可以通过将一个网络的结果提供给另一个网络然后使用链式规则来计算最终函数计算导数(使用两个包的符号微分)。

我认为实现这一点的一个好方法是将 TF 模型包装为 PyTorch Function 并使用 tf.gradients 计算后向传递。 进行梯度更新真的很难(因为 TF 的计算图中存在一些变量)您可以将 TF 变量转换为 PyTorch Variable 将它们转换为 TF 计算图中的 placeholdes,将它们输入 feed_dict 并使用 PyTorch 更新它们机制,但我认为这真的很难做到,相反,如果你在函数的后向方法中进行更新,你可能能够完成这项工作(它真的很丑但可能会完成这项工作)。

【讨论】:

    猜你喜欢
    • 2018-12-02
    • 2020-11-27
    • 2021-12-19
    • 2017-07-12
    • 1970-01-01
    • 2021-11-18
    • 2021-04-19
    • 1970-01-01
    • 2020-11-29
    相关资源
    最近更新 更多