栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

手撸一个torch——day1——numba和flake8

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

手撸一个torch——day1——numba和flake8

从头搞一个torch,造一个轮子。

参考https://minitorch.github.io/contributing.html

安装
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的能力其实很有限,需要精心设计并且对于任务优化才能发挥功能。

除了有助于简化代码之外,张量还为加速计算提供了基础。事实上,它们确实是使用 Python 等慢速语言高效编写深度学习代码的唯一方法。

面向代码格式化的 flake8

IDE都会有这个功能,但是最近迷上了Vim。

Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。Flake8是对下面三个工具的封装:

  1. PyFlakes:静态检查Python代码逻辑错误的工具。

  2. Pep8: 静态检查PEP8编码风格的工具。

  3. NedBatchelder’s McCabe script:静态分析Python代码复杂度的工具。

不光对以上三个工具的封装,Flake8还提供了扩展的开发接口。

官方文档:https://pypi.python.org/pypi/flake8/

举个例子

可以观察到很多的warning,对于较小的测试算法的程序来说,自己就能知道很多的bug,不关心warning尚可。
但是对于性能要求严格或者是体量较大的程序,warning的堆积意味着“莫名其妙的bug”。因此要在最初就时刻优化程序。

pytest

该项目还要求您始终保持文档符合标准。如果您的文档格式不正确,则会抛出 Lint 错误

CI 持续集成

除了本地测试之外,该项目的设置使得在每次代码推送时,测试都会在服务器上自动运行和检查。您可以通过提交代码、推送到服务器然后登录到 GitHub 来查看您在作业中的完成情况。此过程需要几分钟时间,但这是一种随时跟踪进度的简单方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664051.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号