日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

【深度学习】Ivy 开源框架,深度学习大一统时代到来?

發布時間:2025/3/12 pytorch 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【深度学习】Ivy 开源框架,深度学习大一统时代到来? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

它來了,它帶著統一主流深度學習框架的接口來了。最近,有一個開源的框架:IVY,它將幾個主流的深度學習框架都做了一個統一的封裝,包括 PyTorch、TensorFlow、MXNet、Jax 和 Numpy。下面來大致看一下這個框架吧。

近兩年來,學術界和工業界一直在爭論 PyTorch 和 TensorFlow 哪一個才是最好用的深度學習框架。除了這兩個框架,谷歌出品的 Jax 也有起勢的樣子,還有亞馬遜的 MXNet,都還在發展。PyTorch 在學術界最火,TensorFlow 工程上部署的較多,可謂各有千秋。所以,就有開源作者想把各種主流的框架統一做了封裝,于是就有了 Ivy。

代碼地址:https://github.com/unifyai/ivy

先看看 IVY 官方是怎么定義的吧。

Ivy?is?a?unified?machine?learning?framework?which?maximizes?the?portability?of?machine?learning?codebases.?Ivy?wraps?the?functional?APIs?of?existing?frameworks.?Framework-agnostic?functions,?libraries?and?layers?can?then?be?written?using?Ivy,?with?simultaneous?support?for?all?frameworks.?Ivy?currently?supports?Jax,?TensorFlow,?PyTorch,?MXNet?and?Numpy.?

翻譯出來就是:

Ivy 是一個統一的機器學習框架,可最大限度地提高機器學習代碼庫的可移植性。Ivy 封裝了現有框架的功能 API。然后可以使用 Ivy 編寫與框架無關的函數、庫和層,它可以同時支持所有框架。Ivy 目前支持 Jax、TensorFlow、PyTorch、MXNet 和 Numpy。

目前官方已經發布了不少 Ivy 編寫的派生庫,包括力學、3D 視覺、機器人、增強學習、神經記憶、預訓練模型以及實現,此外還有訓練、數據加載的構建器工具等。

快速入門

我們可以直接 pip install ivy-core來安裝,然后你可以使用你喜歡的框架來訓練一個模型,下面是一個示例:

import?ivyclass?MyModel(ivy.Module):def?__init__(self):self.linear0?=?ivy.Linear(3,?64)self.linear1?=?ivy.Linear(64,?1)ivy.Module.__init__(self)def?_forward(self,?x):x?=?ivy.relu(self.linear0(x))return?ivy.sigmoid(self.linear1(x))ivy.set_framework('torch')??#?change?to?any?framework! model?=?MyModel() optimizer?=?ivy.Adam(1e-4) x_in?=?ivy.array([1.,?2.,?3.]) target?=?ivy.array([0.])def?loss_fn(v):out?=?model(x_in,?v=v)return?ivy.reduce_mean((out?-?target)**2)[0]for?step?in?range(100):loss,?grads?=?ivy.execute_with_gradients(loss_fn,?model.v)model.v?=?optimizer.step(model.v,?grads)print('step?{}?loss?{}'.format(step,?ivy.to_numpy(loss).item()))print('Finished?training!')

這個示例使用 PyTorch 作為后端框架,但后端可以輕松更改為你喜歡的框架,例如 TensorFlow、JAX 或 MXNet。

框架無關的函數

Ivy 的函數可以接受所有框架的 tensor,如下面的例子:

import?jax.numpy?as?jnp import?tensorflow?as?tf import?numpy?as?np import?mxnet?as?mx import?torchimport?ivyjax_concatted?=?ivy.concatenate((jnp.ones((1,)),?jnp.ones((1,))),?-1) tf_concatted?=?ivy.concatenate((tf.ones((1,)),?tf.ones((1,))),?-1) np_concatted?=?ivy.concatenate((np.ones((1,)),?np.ones((1,))),?-1) mx_concatted?=?ivy.concatenate((mx.nd.ones((1,)),?mx.nd.ones((1,))),?-1) torch_concatted?=?ivy.concatenate((torch.ones((1,)),?torch.ones((1,))),?-1)

下面是 Ivy 支持的函數,可以看到,跟 Numpy、PyTorch、TensorFlow 的函數非常像

統一所有框架的目的何在?

很多開發者都想用一個框架開發,那么 Ivy 有啥用呢?

當你想讓代碼可用性最強的時候,Ivy的威力就顯現了。

當我們想寫一些代碼,然后讓社區所有開發者都可以用,不管他們用的是啥框架,TF、PyTorch、MXNet、Jax,都沒關系。例如一個簡單的裁剪函數 ivy.clip,它很好的封裝了其他框架的函數。

就其本身而言,這似乎不是很有意思,在機器學習中還有比裁剪張量更有趣的事情。Ivy 可以構建更多有趣的應用。

Ivy 官方發布的力學、3D 視覺、機器人和可微分環境的代碼庫都是用純 Ivy 編寫的。這些庫為任何機器學習框架的用戶提供了各種應用功能的完全可區分的實現,隨時可以集成到用戶的代碼中。

Ivy 的另一個好處是靈活性。通過保持 Ivy 抽象的輕量級,以及齊全的功能,這使您可以完全控制您的代碼。下面的示意圖強調您可以選擇在任何抽象級別進行開發。

你可以完全在 Ivy 中編寫代碼,或者在原生 DL 框架中使用少量 Ivy 代碼。這完全取決于您需要從現有 Ivy 庫中獲得多少 Ivy 函數。

總得來說,Ivy 看著還挺有意思的。雖然我們當前可能用不上它,但是可以觀察一下它的發展,說不準未來會有機會使用它,讓我們靜觀其變吧~

點擊“閱讀原文”,直通公開課。

往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【深度学习】Ivy 开源框架,深度学习大一统时代到来?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。