手撸一个torch——day1——numba和flake8
作者:互联网
从头搞一个torch,造一个轮子。
安装
python -m pip install -r requirements.extra.txt
conda install llvmlite
conda虚拟环境中安装numba时报错 推荐试试其他的虚拟化
Installing collected packages: llvmlite, numba
Attempting uninstall: llvmlite
Found existing installation: llvmlite 0.20.0
ERROR: Cannot uninstall ‘llvmlite’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
解决:忽略报错的形式安装
python -m pip --ignore-installed numba
numba教程
前两天正好学了这个,使用前可以看我写的python装饰器讲解。numba在使用cuda加速时候用到了jit编译,能理解其中机制最好。
接下来看我写的numba教程,涉及到部分cuda知识。如果有时间应从CUDA C入手,python隐藏了很多设计优化的细节,让新手能快速入门,体验加速。但如果日后进一步优化并行程序,必须要理解GPU并行时候的各个bottleneck。进一步的学习会让你体会到cuda的能力其实很有限,需要精心设计并且对于任务优化才能发挥功能。
面向代码格式化的 flake8
Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。Flake8是对下面三个工具的封装:
-
PyFlakes:静态检查Python代码逻辑错误的工具。
-
Pep8: 静态检查PEP8编码风格的工具。
-
NedBatchelder’s McCabe script:静态分析Python代码复杂度的工具。
不光对以上三个工具的封装,Flake8还提供了扩展的开发接口。
官方文档:https://pypi.python.org/pypi/flake8/
举个例子
可以观察到很多的warning,对于较小的测试算法的程序来说,自己就能知道很多的bug,不关心warning尚可。
但是对于性能要求严格或者是体量较大的程序,warning的堆积意味着“莫名其妙的bug”。因此要在最初就时刻优化程序。
标签:python,torch,Python,numba,flake8,工具,llvmlite,Flake8 来源: https://blog.csdn.net/prinTao/article/details/121893097