高效编程之 命令式编程/符号式编程
2022/8/8 14:23:03
本文主要是介绍高效编程之 命令式编程/符号式编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
编程范式,有 命令式 编程、函数式编程、符号式编程 等;
python 属于解释性语言,即一句一句执行,然后 中间变量 由于不知道后面是否会用到 都 会被存储,每次 都会重新调用 函数;
python 代码属于 命令式编程;
同时 python 提供了 符号式编程,tensorflow 就是一种符号式编程,其先构建计算图,然后再统一执行计算 ;
符号式编程的特点就是 快。
效率对比
命令式编程
def sample_add(a, b): return a + b def sample_fancy_func(a, b, c, d): e = sample_add(a, b) f = sample_add(c, d) g = sample_add(e, f) return g time.clock() for _ in range(1000): print(sample_fancy_func(1, 2, 3, 4)) print(time.clock()) #
符号式编程
def add_str(): """仅以字符串形式返回计算流程""" return ''' def add(a, b): return a + b ''' def fancy_func_str(): """仅以字符串形式返回计算流程""" return ''' def fancy_func(a, b, c, d): e = add(a, b) f = add(c, d) g = add(e, f) return g ''' def evoke_str(): """仅以字符串形式返回计算流程""" return add_str() + fancy_func_str() + ''' print(fancy_func(1, 2, 3, 4)) ''' prog = evoke_str() print(prog) x = compile(prog, '', 'exec') # 通过compile函数编译完整的计算流程并运行 time.clock() for _ in range(1000): exec(x) print(time.clock()) #
自己 可以试下
当前的深度学习框架
Theano和受其启发的后来者TensorFlow使用了符号式编程,Chainer和它的追随者PyTorch使用了命令式编程,mxnet使用了使用了命令式和符号式的混合编程:
用户可用纯命令式编程进行开发和调试;当需要产品级别的计算性能和部署时,用户可以将大部分命令式程序转换成符号式程序来运行。
小结
参考资料:
https://blog.csdn.net/weixin_42109859/article/details/104858932 命令式和符号式编程
https://www.bbsmax.com/A/D8543ngpJE/
https://www.bilibili.com/video/BV11U4y1o7sX/?spm_id_from=333.788&vd_source=f0fc90583fffcc40abb645ed9d20da32 计算性能-如何让你的pytorch代码高效(torchscript).mp4
这篇关于高效编程之 命令式编程/符号式编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行
- 2024-05-08阿里云域名注册流程,分享给第一次购买域名的新手站长!