[占坑]混合编程相关

[占坑]混合编程相关

本文只是本人对查阅资料的汇总整理,意图供自己将来学习使用,其中内容很可能对您没有帮助

  1. 多语言交互方式: https://www.zhihu.com/question/270065760

  2. C++与C#混合编程: https://zhuanlan.zhihu.com/p/81924996

  3. C++与Python混合编程: https://www.zhihu.com/question/23003213

    这个问答中高赞的回答都值得一看。

    还有鹅厂这个:

    作者:腾讯技术工程

    随着深度学习的广泛应用,在搜索引擎/推荐系统/机器视觉等业务系统中,越来越多的深度学习模型部署到线上服务。主要用 python 语言实现,当机器学习模型离线训练完成上线部署后,要用 C++ 重新实现 这些 python 的特征工程逻辑代码。

    我们发现,用 C++ 重新实现 这个步骤,给实际业务带来了大量的问题:

    1. 繁琐,费时费力,极容易出现 python 和 C++ 代码不一致
    2. 不一致会直接影响模型在线上的效果,导致大盘业务指标不如预期,产生各种 bad case
    3. 不一致难以发现,无法测试,无法监控,经常要靠用户投诉反馈,甚至大盘数据异常才能发现

    目前业界有这么几种解决思路:

    1. 在线特征存储起来给离线用
    2. 在线 C++ 代码编译成 so 导出给离线用
    3. 根据一份配置生成离线和在线代码
    4. 提取公共代码,加强代码复用,等软件工程手段,减少不一致

    但这些思路都有各种缺点:

    1. 所有在线请求的所有特征,这个存储量数据量很大
    2. 算法改代码需要等待后台开发,降低了算法同学的工作效率
    3. 特征处理代码的复杂度转移到配置文件中,不一定能充分表达,而且配置格式增加学习成本
    4. 就这边真实离线特征处理代码来看,大部分代码都无法抽取出公共代码做复用。

    回到问题出发点考虑,显而易见,这个问题归根结底就是需要一个 “ python 到 c++ 的翻译器 ”

原文地址:https://www.cnblogs.com/jiading/p/12046641.html