新闻详情

新闻详情

首页 / 资讯中心 / 详情

tinygrad 快速上手:10 行代码跑通你的第一个深度学习训练

发布时间:2026/9/2 14:43:52来源:尧图网络
tinygrad 快速上手:10 行代码跑通你的第一个深度学习训练
tinygrad 快速上手10 行代码跑通你的第一个深度学习训练【免费下载链接】tinygradYou like pytorch? You like micrograd? You love tinygrad! ❤️项目地址: https://gitcode.com/GitHub_Trending/tiny/tinygrad你写过 PyTorch也啃过 micrograd但想要一个既够用、又小到能通读源码的深度学习框架tinygrad 就是卡在两者之间的答案一个纯 Python 写的端到端深度学习栈张量、自动求导、编译器、JIT 全在你能读完的体量里。tinygrad 到底能替你扛下什么活大白话tinygrad 让你用几十行 Python 就能定义、训练、跑推理一个神经网络而且你能一路追到它生成的底层 kernel。技术上它不是只给你一个张量库而是一整套栈——带自动求导的 Tensor、负责融合和下推 kernel 的 IR 与编译器、把重复计算打包回放的 JIT外加能直接训模型的 nn、optim、datasets。所以从手写 MNIST 到 Stable Diffusion、LLaMA 这类真实模型它都能接。7 行代码看 tinygrad 的自动求导下面这段代码创建两个张量、做一次矩阵乘法求和再算出梯度是体验 tinygrad 核心——惰性张量加自动求导——最短的路径from tinygrad import Tensor x Tensor.eye(3).clone() y Tensor([[2.0, 0, -2.0]]) z y.matmul(x).sum() z.backward() # 触发自动求导 print(x.grad.tolist()) # dz/dxz.backward()是关键它沿着计算图把每个张量上的梯度算出来填进.grad。你不需要手写求导公式clone()让 x 成为一个真实 buffer这样梯度才有地方存。懒加载为什么 tinygrad 先记账再干活可以把惰性求值想成餐厅点菜你每下一道 op服务员只是把菜写进单子后厨不动等你喊「上菜」realize()后厨才把能一起做的菜合成一锅、一次端上来。a Tensor.rand(4, 4) b Tensor.rand(4, 4) c (a * b).relu().sum() # 此时什么都没算只记在账本上 c.realize() # 真正执行融合、下推、出结果这么设计是为了性能一串 op 先攒起来编译器才能把它们融合成更少的 kernel、减少在 CPU 和设备之间来回搬数据顺带把整个计算图交给自动求导去处理。从玩具代码到真训练跑通一个数字分类器你要实现一个手写数字分类器识别 MNIST 里的 0 到 9。先搭一个带卷积的模型from tinygrad import Tensor, nn, Context from tinygrad.nn.datasets import mnist class Model: def __init__(self): self.conv nn.Conv2d(1, 8, 5) self.fc nn.Linear(8*24*24, 10) def __call__(self, x): return self.fc(self.conv(x).relu().flatten(1))注意这里没有nn.Module也没有forward模型就是个普通 class用__call__表达前向。接上优化器和数据开始训练model, opt Model(), nn.optim.Adam(nn.state.get_parameters(model), lr3e-4) Xtr, Ytr, Xte, Yte mnist() with Context(TRAINING1): for i in range(100): opt.zero_grad() model(Xtr[:64]).sparse_categorical_crossentropy(Ytr[:64]).backward() opt.step()get_parameters(model)会递归把模型里所有可训练张量抓出来交给 Adam训练完在测试集上验一把acc (model(Xte[:1000]).argmax(1) Yte[:1000]).mean() print(acc.item())想跑得更快把前向套上 JIT它会记住算好的 kernel 直接回放from tinygrad import TinyJit TinyJit def forward(x): return model(x).realize()新手最容易踩的 3 个坑打印 Tensor 没有值 / 结果莫名不对现象print(t)或拿结果去比较发现数值是空的或错的。原因op 只是记账没realize()就不会真正计算。解法用.numpy()、.item()或.realize()触发执行再加DEBUG3看生成了哪些 kernel。训练态和推理态没区分准确率不涨现象加了 BatchNorm 的模型训练效果差、评估时对不上。原因忘了开训练上下文两种状态用了同一套统计量。解法训练循环用with Context(TRAINING1)包住退出的时候会自动还原。照着 PyTorch 习惯写代码报错现象写了nn.Module或model.forward(x)找不到。原因tinygrad 没有 Module模型是普通 class前向叫__call__。解法用nn.state.get_parameters(model)取参数直接model(x)调用。延伸阅读想看一个 48 行就能跑到 98% 精度的完整训练循环直接读这个 examples/beautiful_mnist.py。从张量创建到各种操作符Tensor 的全部方法都收在这 docs/tensor/index.md。想改运行行为——调试、换后端、开 VIZ 可视化环境变量一览在这 docs/env_vars.md。到这里你已经能独立写一个 tinygrad 训练循环读懂它的懒加载和自动求导也能顺着源码一路追到生成 kernel 的那一层。想再往下走从 examples/ 里挑一个你感兴趣的模型读起来就行。【免费下载链接】tinygradYou like pytorch? You like micrograd? You love tinygrad! ❤️项目地址: https://gitcode.com/GitHub_Trending/tiny/tinygrad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ubuntu26.04坏道坏块分区隔离急速版260831-V0.12 2026/9/2 17:29:25

ubuntu26.04坏道坏块分区隔离急速版260831-V0.12

效果不错 最后提醒一下,做分区之前一定要设置自定义磁盘,备份分区,错了也不用怕 dd ifimg of/dev/sdx bs512 count8 备份分区的原理就是前面4K,一个扇区512,1K是2个扇区,4k是8个扇区,也就是常说的4k&#…

阅读更多 →
用 LabVIEW 给非平稳信号“分层去噪“:EMD 经验模态分解 2026/9/2 17:29:25

用 LabVIEW 给非平稳信号“分层去噪“:EMD 经验模态分解

噪声总爱混在信号里,传统滤波对非平稳信号常常"剪不断理还乱"。本文分享 LabVIEW 实现 EMD 经验模态分解,把噪声一层层剥下来。预计阅读约 4 分钟01 为什么需要 EMD:当传统滤波开始"失灵"工业现场和科研实验里采集到的信…

阅读更多 →
5. ARP_21 ~ ARP_28 2026/9/2 17:29:25

5. ARP_21 ~ ARP_28

5.2.4.2.6 ARP_21:接收ARP请求(硬件类型错误) 概述 设备收到ARP报文后,以太网驱动将报文上交地址解析模块。协议处理逻辑会校验硬件类型字段,硬件类型不识别则直接丢弃报文。本用例测试仪发送除硬件类型为未知类型外其余字段全部合法的ARP请求,期望DUT不回复ARP应答。 …

阅读更多 →
AI智能体本地化部署实战:VuMos平台如何降低Token成本与部署门槛 2026/9/2 17:29:25

AI智能体本地化部署实战:VuMos平台如何降低Token成本与部署门槛

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CTF‑Web 越权漏洞完整学习笔记|水平 + 垂直越权全原理 + 源码分析 + 实战复现 2026/9/2 17:29:25

CTF‑Web 越权漏洞完整学习笔记|水平 + 垂直越权全原理 + 源码分析 + 实战复现

Pikachu—Over permission 越权 一 、Over permission 1.简介 该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一 些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数…

阅读更多 →
【量化系统从0到1】存储架构:不选择什么,比选择什么更重要 2026/9/2 17:26:25

【量化系统从0到1】存储架构:不选择什么,比选择什么更重要

这套系统是个人量化研究系统:单用户,日线级别,盘后批处理——每天收盘后拉数据、算因子、跑策略、出报告,只产出信号和分析报告,不做实盘下单。部署在一台 2 核、1GiB 内存的云主机上。 存储要装的东西按形态分是五类&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞