Python核心技术与实战
景霄
Facebook资深工程师
立即订阅
13891 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从工程的角度深入理解Python
免费
基础篇 (14讲)
01 | 如何逐步突破,成为Python高手?
02 | Jupyter Notebook为什么是现代Python的必学技术?
03 | 列表和元组,到底用哪一个?
04 | 字典、集合,你真的了解吗?
05 | 深入浅出字符串
06 | Python “黑箱”:输入与输出
07 | 修炼基本功:条件与循环
08 | 异常处理:如何提高程序的稳定性?
09 | 不可或缺的自定义函数
10 | 简约不简单的匿名函数
11 | 面向对象(上):从生活中的类比说起
12 | 面向对象(下):如何实现一个搜索引擎?
13 | 搭建积木:Python 模块化
14 | 答疑(一):列表和元组的内部实现是怎样的?
进阶篇 (11讲)
15 | Python对象的比较、拷贝
16 | 值传递,引用传递or其他,Python里参数是如何传递的?
17 | 强大的装饰器
18 | metaclass,是潘多拉魔盒还是阿拉丁神灯?
19 | 深入理解迭代器和生成器
20 | 揭秘 Python 协程
21 | Python并发编程之Futures
22 | 并发编程之Asyncio
23 | 你真的懂Python GIL(全局解释器锁)吗?
24 | 带你解析 Python 垃圾回收机制
25 | 答疑(二):GIL与多线程是什么关系呢?
规范篇 (7讲)
26 | 活都来不及干了,还有空注意代码风格?!
27 | 学会合理分解代码,提高代码可读性
28 | 如何合理利用assert?
29 | 巧用上下文管理器和With语句精简代码
30 | 真的有必要写单元测试吗?
31 | pdb & cProfile:调试和性能分析的法宝
32 | 答疑(三):如何选择合适的异常处理方式?
量化交易实战篇 (8讲)
33 | 带你初探量化世界
免费
34 | RESTful & Socket: 搭建交易执行层核心
35 | RESTful & Socket: 行情数据对接和抓取
36 | Pandas & Numpy: 策略与回测系统
免费
37 | Kafka & ZMQ:自动化交易流水线
38 | MySQL:日志和数据存储系统
39 | Django:搭建监控平台
40 | 总结:Python中的数据结构与算法全景
技术见闻与分享 (4讲)
41 | 硅谷一线互联网公司的工作体验
42 | 细数技术研发的注意事项
加餐 | 带你上手SWIG:一份清晰好用的SWIG编程实践指南
43 | Q&A:聊一聊职业发展和选择
结束语 (1讲)
结束语 | 技术之外的几点成长建议
Python核心技术与实战
登录|注册

加餐 | 带你上手SWIG:一份清晰好用的SWIG编程实践指南

卢誉声 2019-08-16
你好,我是卢誉声,Autodesk 数据平台和计算平台资深软件工程师,也是《移动平台深度神经网络实战》和《分布式实时处理系统:原理架构与实现》的作者,主要从事 C/C++、JavaScript 开发工作和平台架构方面的研发工作,对 SWIG 也有比较深的研究。很高兴受极客时间邀请来做本次分享,今天,我们就来聊一聊 SWIG 这个话题。
我们都知道,Python 是一门易于上手并实验友好的胶水语言。现在有很多机器学习开发或研究人员,都选择 Python 作为主力编程语言;流行的机器学习框架也都会提供 Python 语言的支持作为调用接口和工具。因此,相较于学习成本更高的 C++ 来说,把 Python 作为进入机器学习世界的首选编程语言,就再合适不过了。
不过,像 TensorFlow 或 PyTorch 这样的机器学习框架的核心,是使用 Python 编写的吗?
显然不是。这里面的原因比较多,但最为显著的一个原因就是“性能”。通过 C++ 编写的机器学习框架内核,加上编译器的优化能力,为系统提供了接近于机器码执行的效率。这种得天独厚的优势,让 C++ 在机器学习的核心领域站稳了脚跟。我们前面所说的 TensorFlow 和 PyTorch 的核心,便都是使用 C/C++ 开发的。其中,TensorFlow 的内核,就是由高度优化的 C++ 代码和 CUDA 编写而成。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Python核心技术与实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(6)

  • gutentag
    对于单文件而言,用SWIG还是boost.python/py++感觉都好理解和实践,请问对于依赖关系复杂的大型C++项目(比如OpenCV, OpenSceneGraph之类的)的python binding有没有比较完整的最佳实践呢?
    C++编译的动态库python无法直接调用,C++项目的python binding本身等价于把本身编译时用到的所有的头文件中需要暴露的接口都extern成C的呢?对于头文件的相互各种include一般是人工处理还是SWIG本身可以解决呢?除了头文件暴露以外,还有别的工作吗?
    任何C项目直接生成的动态链接库python都能直接import吗?请问有例外吗?
    谢谢
    2019-08-16
    1
    3
  • 许童童
    极客时间的C++课程快来了,期待一下,补一补我的C++。
    2019-08-16
    1
    2
  • 安排
    类似于jni啊
    2019-08-16
    1
  • Ethan
    c++大法
    2019-08-16
    1
  • -.----..

    感觉SWIG更灵活,比ctypes和py4j更方便,但是Python调用.so文件好像很挑gcc版本,不同版本gcc编译的.so文件,Python调用时有时候会报
    2019-08-20
    1
  • 栾~龟虽寿!
    如何看python源代码,比如list.sort的实现
    2019-08-18
收起评论
6
返回
顶部