【问题标题】:Best practice to create a live running model from a trained neural network从经过训练的神经网络创建实时运行模型的最佳实践
【发布时间】:2021-01-25 19:51:22
【问题描述】:

我正计划创建一个用于交易的神经网络,我正在研究如何在我的系统运行时使用的语言(即 C++ 或 C#)中使用经过训练的神经网络。

假设我在 python(或任何其他 nn 框架)中使用 tensorflow,我已经成功训练了具有 n 个隐藏层的神经网络。那时我有权重和偏差的值。 此时我想在生产中使用 nn 模型。

据我了解,在生产 tensorflow 中运行模型并不是最佳实践,因为这样做实际上太慢 (python) 且笨重(如果我错了,请纠正我)。

所以我想用 C# 或 C++(或任何其他语言)重新创建 nn 模型,我是否需要根据每个神经元的权重和偏差在代码中重新创建每一层的所有数学?

问题:

  • 我从来没有做过,所以这是我猜测的工作流程/最好的 练习,最好的方法是什么?
  • 我可以阅读哪些有关此主题的在线文章/网站?
  • 这个话题叫什么,好让我去找?

【问题讨论】:

    标签: python tensorflow machine-learning deep-learning neural-network


    【解决方案1】:

    像 tensorflow 这样的框架也应该在生产中使用。 Tensorflow 是用高度优化的 C++ 和/或 Cuda 编写的,因此很容易胜过你自己编写的任何东西。 tensorflow 还内置了大量用于监控、负载均衡等的工具。

    如果你在你的机器上运行你的系统,你可以使用任何语言作为包装器。如果您真的认为您需要对 Python 中无法完成的小任务(例如预处理等)进行一定程度的优化,只需使用 C++ API for tensorflow。只需让 tensorflow(或 torch 或您正在使用的任何生产 lvl 框架)完成处理神经网络的繁重工作。 对于 99.99% 的任务,Python(使用 numpy、tf、dask 等)就可以了。

    对于大型应用程序,您可以在 aws/azure/google 云等上托管您的模型。它们提供用于托管 tensorflow 模型的优化服务(例如,作为 REST 端点)。 Lambda 函数/Azure Functions 可以成为以经济高效且可扩展的方式执行预处理步骤的绝佳工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2019-03-18
      • 2021-09-07
      • 2020-08-24
      • 1970-01-01
      • 2010-11-20
      • 2019-09-15
      相关资源
      最近更新 更多