tinygrad 轻量级深度学习框架开源项目

我要开发同款
匿名用户2023年05月12日
151阅读
开发技术C/C++
所属分类人工智能、机器学习/深度学习
授权协议MIT

作品详情

tinygrad 是一个轻量级深度学习框架,它的目标是成为最容易添加新加速器的框架,同时支持推理和训练。

tinygrad 支持简单的基本操作,包含SOTA 视觉 models/efficientnet.py和 语言模型 models/transformer.py。

tinygrad  正在努力支持 accel/ 文件夹中的AppleNeuralEngine和GoogleTPU。最终将为tinygrad构建定制硬件,以达到终极目标:极速推理/训练框架。(但现在它还很慢)

安装gitclonehttps://github.com/geohot/tinygrad.gitcdtinygradpython3-mpipinstall-e.例子fromtinygrad.tensorimportTensorx=Tensor.eye(3,requires_grad=True)y=Tensor([[2.0,0,-2.0]],requires_grad=True)z=y.matmul(x).sum()z.backward()print(x.grad.numpy())#dz/dxprint(y.grad.numpy())#dz/dytorch中的相同示例importtorchx=torch.eye(3,requires_grad=True)y=torch.tensor([[2.0,0,-2.0]],requires_grad=True)z=y.matmul(x).sum()z.backward()print(x.grad)#dz/dxprint(y.grad)#dz/dy神经网络示例(来自test/models/test_mnist.py)fromtinygrad.tensorimportTensorimporttinygrad.nn.optimasoptimclassTinyBobNet:def__init__(self):self.l1=Tensor.uniform(784,128)self.l2=Tensor.uniform(128,10)defforward(self,x):returnx.dot(self.l1).relu().dot(self.l2).log_softmax()model=TinyBobNet()optim=optim.SGD([model.l1,model.l2],lr=0.001)#...andcompletelikepytorch,with(x,y)dataout=model.forward(x)loss=out.mul(y).mean()optim.zero_grad()loss.backward()optim.step()GPU和加速器支持tinygrad通过PyOpenCL支持GPU。

fromtinygrad.tensorimportTensor(Tensor.ones(4,4).gpu()+Tensor.ones(4,4).gpu()).cpu()
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论