最近,天才黑客 George Hotz 開源了一個(gè)小型深度學(xué)習(xí)框架 tinygrad,兼具 PyTorch 和 micrograd 的功能。tinygrad 的代碼數(shù)量不到 1000 行,目前該項(xiàng)目獲得了 GitHub 1400 星。
在深度學(xué)習(xí)時(shí)代,谷歌、Facebook、百度等科技巨頭開源了多款框架來幫助開發(fā)者更輕松地學(xué)習(xí)、構(gòu)建和訓(xùn)練不同類型的神經(jīng)網(wǎng)絡(luò)。而這些大公司也花費(fèi)了很大的精力來維護(hù) TensorFlow、PyTorch 這樣龐大的深度學(xué)習(xí)框架。 除了這類主流框架之外,開發(fā)者們也會(huì)開源一些小而精的框架或者庫。
比如今年 4 月份,特斯拉人工智能部門主管 Andrej Karpathy 開源了其編寫的微型 autograd 引擎 micrograd,該引擎還用 50 行代碼實(shí)現(xiàn)了一個(gè)類 PyTorch api 的神經(jīng)網(wǎng)絡(luò)庫。目前,micrograd 項(xiàng)目的 GitHub star 量達(dá)到 1200 星。 不久前,天才黑客 George Hotz(喬治 · 霍茲)開源了一個(gè)小型 Autograd Tensor 庫 tinygrad,它介于 PyTorch 和 micrograd 之間,能夠滿足做深度學(xué)習(xí)的大部分要求。上線不到一個(gè)月,該項(xiàng)目在 GitHub 上已經(jīng)獲得 1400 星。
項(xiàng)目地址:https://github.com/geohot/tinygrad 根據(jù) GitHub 內(nèi)容,下文對(duì) tinygrad 的安裝與使用做了簡要介紹。感興趣的同學(xué)也可通過 George Hotz 的 YouTube 視頻進(jìn)行學(xué)習(xí)。
視頻地址:https://www.youtube.com/channel/UCwgKmJM4ZJQRJ-U5NjvR2dg tinygrad 的安裝與使用 「tinygrad 可能不是最好的深度學(xué)習(xí)框架,但它確實(shí)是深度學(xué)習(xí)框架?!? George 在項(xiàng)目中保證,tinygrad 代碼量會(huì)永遠(yuǎn)小于 1000 行。 安裝 tinygrad 的安裝過程非常簡單,只需使用以下命令:
示例 安裝好 tinygrad 之后,就可以進(jìn)行示例運(yùn)行,代碼如下: from 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/dxprint(y.grad)#dz/dy 使用 torch 的代碼如下:
import torchx = 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
滿足對(duì)神經(jīng)網(wǎng)絡(luò)的需求 一個(gè)不錯(cuò)的 autograd 張量庫可以滿足你對(duì)神經(jīng)網(wǎng)絡(luò) 90%的需求。從 tinygrad.optim 添加優(yōu)化器(SGD、RMSprop、Adam),再編寫一些 minibatching 樣板代碼,就可以實(shí)現(xiàn)你的需求。 示例如下:
支持 GPU tinygrad 通過 PyOpenCL 支持 GPU。但后向傳播暫時(shí)無法支持所有 ops。
from tinygrad.tensor import Tensor(Tensor.ones(4,4).cuda() + Tensor.ones(4,4).cuda()).cpu() ImageNet
推斷 「麻雀雖小,五臟俱全。」tinygrad 還能夠支持 full EfficientNet,輸入一張圖像,即可得到其類別。
ipython3 examples/efficientnet.py https://upload.wikimedia.org/wikipedia/commons/4/41/Chicken.jpg
如果你安裝了 webcam 和 cv2,則可以使用以下代碼:
ipython3 examples/efficientnet.py webcam
注意:如果你想加速運(yùn)行,設(shè)置 GPU=1。 測(cè)試 運(yùn)行以下代碼可執(zhí)行測(cè)試:
python -m pytest
此外,喬治 · 霍茲還計(jì)劃添加語言模型、檢測(cè)模型,進(jìn)一步減少代碼量、提升速度等。
該項(xiàng)目的創(chuàng)建者是著名黑客喬治 · 霍茲,別號(hào) Geohot。 他于 1989 年出生在美國新澤西州,曾就讀于羅切斯特理工學(xué)院生物工程專業(yè)和卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)科學(xué)系。 然而,喬治 · 霍茲在自己的 LinkedIn 主頁上教育經(jīng)歷描述里是這么寫的:
在羅切斯特理工學(xué)院就讀期間,他的社團(tuán)活動(dòng)是「在宿舍黑 iPhone」…… 這是他著名的黑客經(jīng)歷之一。2007 年,17 歲的喬治 · 霍茲成功破解 iPhone 手機(jī),使手機(jī)不再局限于 AT&T 網(wǎng)絡(luò),而是支持其他 GSM 網(wǎng)絡(luò)。2009 年,他開發(fā)出一款針對(duì) iOS 3.1.2 的越獄軟件 blackra1n。2010 年,喬治 · 霍茲宣布不再進(jìn)行越獄軟件的開發(fā)。
然而,他的黑客行動(dòng)并未停止。 2009 年起,喬治 · 霍茲開始破解 PlayStation 3(PS3)。2010 年初,他宣布得到了 PS3 系統(tǒng)內(nèi)存的讀寫權(quán)限和處理器的高級(jí)控制權(quán)。2011 年 3 月,喬治 · 霍茲被索尼起訴,后和解。 此外,喬治 · 霍茲還破解過三星手機(jī)等產(chǎn)品。 就工作經(jīng)歷而言,他曾在谷歌、Facebook、SpaceX 工作過。目前,他在自己創(chuàng)立的自動(dòng)駕駛公司 comma.ai 任職。 2015 年,喬治 · 霍茲創(chuàng)立了人工智能創(chuàng)業(yè)公司 comma.ai,旨在基于機(jī)器學(xué)習(xí)算法構(gòu)建自動(dòng)駕駛技術(shù)。
喬治 · 霍茲開發(fā)出自動(dòng)駕駛套件 Comma One,只需 1000 美元,用戶就能將傳統(tǒng)汽車升級(jí)成自動(dòng)駕駛版本。不過,后來這一計(jì)劃被取消。 2020 年,在 CES 大會(huì)上,comma.ai 展出了其最新產(chǎn)品——輔助駕駛設(shè)備 Comma Two,售價(jià) 999 美元。 comma.ai 公司還開源了輔助駕駛系統(tǒng) openpilot,參見:https://github.com/commaai/openpilot。 參考鏈接:https://zh.wikipedia.org/wiki/%E4%B9%94%E6%B2%BB%C2%B7%E9%9C%8D%E5%85%B9 https://en.m.wikipedia.org/wiki/George_Hotz
責(zé)任編輯:xj
原文標(biāo)題:不到1000行代碼,GitHub 1400星,天才黑客開源深度學(xué)習(xí)框架tinygrad
文章出處:【微信公眾號(hào):人工智能與大數(shù)據(jù)技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
開源
+關(guān)注
關(guān)注
3文章
3349瀏覽量
42505 -
代碼
+關(guān)注
關(guān)注
30文章
4788瀏覽量
68625 -
GitHub
+關(guān)注
關(guān)注
3文章
471瀏覽量
16450
原文標(biāo)題:不到1000行代碼,GitHub 1400星,天才黑客開源深度學(xué)習(xí)框架tinygrad
文章出處:【微信號(hào):TheBigData1024,微信公眾號(hào):人工智能與大數(shù)據(jù)技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論