手撸一个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/

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

pytest

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

CI 持续集成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值