github 前端,github有趣的前端项目
点击上方“Github中文社区”关注
在Github上查看所有有趣的项目
从机器的中心
大家好,我是hub哥!
在深度学习时代,谷歌、脸书、百度等科技巨头已经开放了多种框架,帮助开发者更容易地学习、构建和训练不同类型的神经网络。而这些大公司也花了很多精力去维护TensorFlow、PyTorch这样庞大的深度学习框架。
除了这样的主流框架,开发者还会开源一些小而精的框架或库。例如,今年4月,特斯拉人工智能部门负责人安德烈卡帕西(Andrej Karpathy)开放了其微型自动签名引擎micrograd的源代码,其中也实现了类似PyTorch api的神经网络库,有50行代码。目前,micrograd项目的GitHub恒星已经达到1200颗。
前不久,天才黑客zzdnht Hotz(乔治的聪明希望)开放了一个小型的亲笔签名张量库tinygrad,介于PyTorch和micrograd之间,可以满足深度学习的大部分要求。启动后不到一个月,该项目在GitHub上获得了1400颗星。
项目地址:https://github.com/geohot/tinygrad
根据GitHub的内容,下面简单介绍一下tinygrad的安装和使用。有兴趣的同学也可以通过zzdnht Hotz的YouTube视频来学习。
视频地址:https://www.youtube.com/channel/UCwgKmJM4ZJQRJ-U5NjvR2dg
tinygrad 的安装与使用
“tinygrad可能不是最好的深度学习框架,但它确实是一个深度学习框架。」
DNZHT在项目中保证tinygrad代码量永远小于1000行。
安装
tinygrad的安装过程非常简单,只需使用以下命令:
pip3安装tinygrad -升级
示例
安装tinygrad后,可以使用以下代码运行示例:
torch tinygrad . tensor import tensorx=tensor . eye(3)y=tensor([[2.0,0,-2.0]]) z=y.matmul (x)。sum()z . backward()print(x . grad)# dz/dx print(
import torchx=torch.eye(3,requires _ grad=True)y=torch . tensor([[2.0,0,-2.0]],requires _ grad=True)z=y . mat mul(x)。sum()z . backward()print(x . grad)# dz/dx print(y . grad)# dz/dy
满足对神经网络的需求
一个好的亲笔签名张量库可以满足你对神经网络90%的需求。从tinygrad.optim添加优化器(SGD,RMSprop,Adam),再写一些minibatching的样例代码,就可以实现你的要求了。
例子如下:
从tinygrad.tensor导入tensor导入tinygrad.optim作为optimfrom tinygrad.utils导入layer _ init _ uniform class TinyBobNet:def _ _ init _ _(self):self . L1=Tensor(layer _ init _ uniform(784,128))self . L2=Tensor(layer _ init _ uniform(128,10)) def forward(self,x): return x.dot(self.l1)。relu()。点(self.l2)。logsoftmax()model=TinyBobNet()optim=optim。SGD([模型. l1,模型. l2],lr=0.001)#.并且像pytorch一样完成,用(x,y)data out=model . forward(x)loss=out . mul(y)。mean()loss . backward()optim . step()
支持 GPU
Tinygrad通过PyOpenCL支持GPU。然而,反向传播暂时不能支持所有的操作。
从tinygrad.tensor导入张量(Tensor.ones(4,4)。cuda() Tensor.ones(4,4)。cuda())。cpu()
ImageNet 推断
“麻雀虽小五脏俱全。Tinygrad还可以支持full EfficientNet,你输入一张图片就可以得到它的类别。
iphon 3 examples/efficient net . py 3359 upload . wikimedia . org/Wikipedia/Commons/4/41/chicken . jpg如果您安装了网络摄像头和cv2,可以使用以下代码:
Iphon3Examples/EfficientNet.py网络摄像头注意:如果想加快运算速度,设置GPU=1。
测试
运行以下代码来执行测试:
Python -m pytest此外,乔治的聪明希望还计划增加语言模型和检测模型,进一步减少代码量,提高速度。
天才黑客乔治机灵的盼望
这个项目的创造者是著名黑客乔治(George)的聪明希望,绰号Geohot。
他于1989年出生于美国新泽西州。他在卡内基梅隆大学的罗切斯特理工学院和计算机科学学院学习生物工程。
然而,乔治聪明的希望是这样的,在他的LinkedIn主页上对他的教育经历的描述中: