十行代碼就能搞定深度學習?飛槳框架高層API,輕鬆玩轉AI

2020-12-07 機器之心Pro

機器之心發布

機器之心編輯部

嚮往深度學習技術,可是深度學習框架太難學怎麼辦?百度傾心打造飛槳框架高層 API,零基礎也能輕鬆上手深度學習,一起來看看吧?另:文末有福利,一定要看完呦~

高層 API,What

深度學習作為人工智慧時代的核心技術,近年來無論學術、還是工業領域,均發揮著愈加重要的作用。然而,深度學習理論太難學,開發過程太複雜,又將許多人拒之於深度學習的門外。

為了簡化深度學習的學習過程、降低深度學習的開發難度,百度飛槳框架歷經近一年的打磨,不斷地優化深度學習 API,並針對開發者的使用場景進行封裝,在飛槳框架的最新版本中,推出了高低融合、科學統一的飛槳全新 API 體系。

飛槳框架將 API 分為兩種,基礎 API 和高層 API。用製作披薩舉例,一般有兩種方法:一種是我們準備好麵粉、牛奶、火腿等食材,精心加工後,就能製作出美味的披薩;而第二種則是我們買商家預烤制的披薩餅,以及調好的餡料,直接加熱就可以吃到披薩了。

那麼這兩種方法有什麼區別呢?採用方法一,自己準備食材,可以隨心所欲的搭配料理,製作醬料,從而滿足我們的不同口味,但是,這更適合「老司機」,如果是新人朋友,很有可能翻車;而方法二,用商家預烤制的披薩餅與餡料,直接加熱就可以非常快速的完成披薩的製作,而且味道會有保障;但是,相比於方法一,我們會少一些口味的選擇。

用框架來類比,基礎 API 對應方法一,高層 API 對應方法二。使用基礎 API,我們可以隨心所欲的搭建自己的深度學習模型,不會受到任何限制;而使用方法二,我們可以很快的實現模型,但是可能會少一些自主性。

但是,與製作披薩不同的是,飛槳框架可以做到真正的「魚與熊掌」可以兼得。因為高層 API 本身不是一個獨立的體系,它完全可以和基礎 API 互相配合使用,做到高低融合,使用起來會更加便捷。使我們在開發過程中,既可以享受到基礎 API 的強大,又可以兼顧高層 API 的快捷。

高層 API,All

飛槳框架高層 API 的全景圖如下:

從圖中可以看出,飛槳框架高層 API 由五個模塊組成,分別是數據加載、模型組建、模型訓練、模型可視化和高階用法。針對不同的使用場景,飛槳框架提供了不同高層 API,從而降低開發難度,讓每個人都能輕鬆上手深度學習。

我們先通過一個深度學習中經典的手寫數字分類任務,來簡單了解飛槳高層 API。然後再詳細的介紹每個模塊中所包含的 API。

import paddlefrom paddle.vision.transforms import Compose, Normalizefrom paddle.vision.datasets import MNISTimport paddle.nn as nn # 數據預處理,這裡用到了歸一化transform = Compose([Normalize(mean=[127.5], std=[127.5], data_format='CHW')])# 數據加載,在訓練集上應用數據預處理的操作train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=transform)test_dataset = paddle.vision.datasets.MNIST(mode='test', transform=transform)# 模型組網mnist = nn.Sequential( nn.Flatten(), nn.Linear(784, 512), nn.ReLU(), nn.Dropout(0.2), nn.Linear(512, 10))# 模型封裝,用 Model 類封裝model = paddle.Model(mnist)# 模型配置:為模型訓練做準備,設置優化器,損失函數和精度計算方式model.prepare(optimizer=paddle.optimizer.Adam(parameters=model.parameters()), loss=nn.CrossEntropyLoss(), metrics=paddle.metric.Accuracy())# 模型訓練,model.fit(train_dataset, epochs=10, batch_size=64, verbose=1)# 模型評估,model.evaluate(test_dataset, verbose=1)# 模型保存,model.save('model_path')

從示例可以看出,在數據預處理、數據加載、模型組網、模型訓練、模型評估、模型保存等場景,高層 API 均可以通過 1~3 行代碼實現。相比傳統方法動輒幾十行的代碼量,高層 API 只需要十來行代碼,就能輕鬆完成一個 MNIST 分類器的實現。以極少的代碼就能達到與基礎 API 同樣的效果,大幅降低了深度學習的學習門檻。

如果是初次學習深度學習框架,使用飛槳高層 API,可以「凡爾賽」說出「好煩哦,飛槳高層 API 怎麼這麼快就完成開發了,我還想多寫幾行代碼呢!」

高層 API,How

接下來以 CV 任務為例,簡單介紹飛槳高層 API 在不同場景下的使用方法。

本示例的完整代碼可以在 AI Studio 上獲取,無需準備任何軟硬體環境即可直接在線運行代碼,相當方便哦:https://aistudio.baidu.com/aistudio/projectdetail/1243085

一、數據預處理與數據加載

對於數據加載,在一些典型的任務中,我們完全可以使用飛槳框架內置的數據集,完成數據的加載。飛槳框架將常用的數據集作為領域 API,集成在 paddle.vision.datasets 目錄中,包含了 CV 領域中常見的 MNIST、Cifar、Flowers 等數據集。

而在數據預處理場景中,飛槳框架提供了 20 多種常見的圖像預處理 API,方便我們快速實現數據增強,如實現圖像的色調、對比度、飽和度、大小等各種數字圖像處理的方法。圖像預處理 API 集成在 paddle.vision.transforms 目錄中,使用起來非常方便。只需要先創建一個數據預處理的 transform,在其中存入需要進行的數據預處理方法,然後在數據加載的過程中,將 transform 作為參數傳入即可。

此外,如果我們需要加載自己的數據集,使用飛槳框架標準數據定義與數據加載 API paddle.io.Dataset 與 paddle.io.DataLoader,就可以「一鍵」完成數據集的定義與數據的加載。這裡通過一個案例來展示如何利用 Dataset 定義數據集,示例如下:

from paddle.io import DatasetclassMyDataset(Dataset):""" 步驟一:繼承 paddle.io.Dataset 類 """def__init__(self):""" 步驟二:實現構造函數,定義數據讀取方式,劃分訓練和測試數據集 """ super(MyDataset, self).__init__() self.data = [ ['traindata1', 'label1'], ['traindata2', 'label2'], ['traindata3', 'label3'], ['traindata4', 'label4'], ] def__getitem__(self, index):""" 步驟三:實現__getitem__方法,定義指定 index 時如何獲取數據,並返回單條數據(訓練數據,對應的標籤) """ data = self.data[index][0] label = self.data[index][1] return data, label def__len__(self):""" 步驟四:實現__len__方法,返回數據集總數目 """return len(self.data)# 測試定義的數據集train_dataset = MyDataset()print('=============train dataset=============')for data, label in train_dataset: print(data, label)

只需要按照上述規範的四個步驟,我們就實現了一個自己的數據集。然後,將 train_dataset 作為參數,傳入到 DataLoader 中,即可獲得一個數據加載器,完成訓練數據的加載。

【Tips:對於數據集的定義,飛槳框架同時支持 map-style 和 iterable-style 兩種類型的數據集定義,只需要分別繼承 paddle.io.Dataset 和 paddle.io.IterableDataset 即可。】

二、網絡構建

在網絡構建模塊,飛槳高層 API 與基礎 API 保持一致,統一使用 paddle.nn 下的 API 進行組網。paddle.nn 目錄下包含了所有與模型組網相關的 API,如卷積相關的 Conv1D、Conv2D、Conv3D,循環神經網絡相關的 RNN、LSTM、GRU 等。

對於組網方式,飛槳框架支持 Sequential 或 SubClass 進行模型組建。Sequential 可以幫助我們快速的組建線性的網絡結構,而 SubClass 支持更豐富靈活的網絡結構。我們可以根據實際的使用場景,來選擇最合適的組網方式。如針對順序的線性網絡結構可以直接使用 Sequential ,而如果是一些比較複雜的網絡結構,我們使用 SubClass 的方式來進行模型的組建,在 __init__ 構造函數中進行 Layer 的聲明,在 forward 中使用聲明的 Layer 變量進行前向計算。

下面就來分別看一下 Sequential 與 SubClass 的實例。

1、Sequential

對於線性的網絡模型,我們只需要按網絡模型的結構順序,一層一層的加到 Sequential 後面即可,具體實現如下:

# Sequential 形式組網mnist=nn.Sequential(nn.Flatten(),nn.Linear(784,512),nn.ReLU(),nn.Dropout(0.2),nn.Linear(512,10))

2、SubClass

使用 SubClass 進行組網的實現如下:

# SubClass 方式組網classMnist(nn.Layer):def__init__(self): super(Mnist, self).__init__() self.flatten = nn.Flatten() self.linear_1 = nn.Linear(784, 512) self.linear_2 = nn.Linear(512, 10) self.relu = nn.ReLU() self.dropout = nn.Dropout(0.2) defforward(self, inputs): y = self.flatten(inputs) y = self.linear_1(y) y = self.relu(y) y = self.dropout(y) y = self.linear_2(y) return y

上述的 SubClass 組網的結果與 Sequential 組網的結果完全一致,可以明顯看出,使用 SubClass 組網會比使用 Sequential 更複雜一些。不過,這帶來的是網絡模型結構的靈活性。我們可以設計不同的網絡模型結構來應對不同的場景。

3、飛槳框架內置模型

三、模型可視化

在我們完成模型的構建後,有時還需要可視化模型的網絡結構與參數,只要我們用 Model 進行模型的封裝後,然後調用 model.summary 即可實現網絡模型的可視化,具體如下:

mnist = nn.Sequential( nn.Flatten(), nn.Linear(784, 512), nn.ReLU(), nn.Dropout(0.2), nn.Linear(512, 10))# 模型封裝,用 Model 類封裝model = paddle.Model(mnist)model.summary()

其輸出如下:

--------------------------------------------------------------------------- Layer (type) Input Shape Output Shape Param # =========================================================================== Flatten-795[[32, 1, 28, 28]] [32, 784] 0 Linear-5[[32, 784]] [32, 512] 401,920 ReLU-3[[32, 512]] [32, 512] 0 Dropout-3[[32, 512]] [32, 512] 0 Linear-6[[32, 512]] [32, 10] 5,130 =========================================================================== Total params: 407,050 Trainable params: 407,050 Non-trainable params: 0---------------------------------------------------------------------------Input size (MB): 0.10Forward/backward pass size (MB): 0.57Params size (MB): 1.55Estimated Total Size (MB): 2.22---------------------------------------------------------------------------{'total_params': 407050, 'trainable_params': 407050}

Model.summary 不僅會給出每一層網絡的形狀,還會給出每層網絡的參數量與模型的總參數量,非常方便直觀的就可以看到模型的全部信息。

四、模型訓練

1、使用高層 API 在全部數據集上進行訓練

過去常常困擾深度學習開發者的一個問題是,模型訓練的代碼過於複雜,常常要寫好多步驟,才能使程序運行起來,冗長的代碼使許多開發者望而卻步。

現在,飛槳高層 API 將訓練、評估與預測 API 都進行了封裝,直接使用 Model.prepare()、Model.fit()、Model.evaluate()、Model.predict()就可以完成模型的訓練、評估與預測。

對比傳統框架動輒一大塊的訓練代碼。使用飛槳高層 API,可以在 3-5 行內,完成模型的訓練,極大的簡化了開發的代碼量,對初學者開發者非常友好。具體代碼如下:

# 將網絡結構用 Model 類封裝成為模型model = paddle.Model(mnist)# 為模型訓練做準備,設置優化器,損失函數和精度計算方式model.prepare(optimizer=paddle.optimizer.Adam(parameters=model.parameters()), loss=paddle.nn.CrossEntropyLoss(), metrics=paddle.metric.Accuracy())# 啟動模型訓練,指定訓練數據集,設置訓練輪次,設置每次數據集計算的批次大小,設置日誌格式model.fit(train_dataset, epochs=10, batch_size=64, verbose=1)# 啟動模型評估,指定數據集,設置日誌格式model.evaluate(test_dataset, verbose=1)# 啟動模型測試,指定測試集 Model.predict(test_dataset)

2、使用高層 API 在一個批次的數據集上訓練、驗證與測試

有時我們需要對數據按 batch 進行取樣,然後完成模型的訓練與驗證,這時,可以使用 train_batch、eval_batch、predict_batch 完成一個批次上的訓練、驗證與測試,具體如下:

# 模型封裝,用 Model 類封裝model = paddle.Model(mnist)# 模型配置:為模型訓練做準備,設置優化器,損失函數和精度計算方式model.prepare(optimizer=paddle.optimizer.Adam(parameters=model.parameters()), loss=nn.CrossEntropyLoss(), metrics=paddle.metric.Accuracy())# 構建訓練集數據加載器train_loader = paddle.io.DataLoader(train_dataset, batch_size=64, shuffle=True)# 使用 train_batch 完成訓練for batch_id, datain enumerate(train_loader()): model.train_batch([data[0]],[data[1]])# 構建測試集數據加載器test_loader = paddle.io.DataLoader(test_dataset, places=paddle.CPUPlace(), batch_size=64, shuffle=True)# 使用 eval_batch 完成驗證for batch_id, datain enumerate(test_loader()): model.eval_batch([data[0]],[data[1]])# 使用 predict_batch 完成預測for batch_id, datain enumerate(test_loader()): model.predict_batch([data[0]])

五、高階用法

除此之外,飛槳高層 API 還支持一些高階的玩法,如自定義 Loss、自定義 Metric、自定義 Callback 等等。

自定義 Loss 是指有時我們會遇到特定任務的 Loss 計算方式在框架既有的 Loss 接口中不存在,或算法不符合自己的需求,那麼期望能夠自己來進行 Loss 的自定義。

自定義 Metric 和自定義 Loss 的場景一樣,如果遇到一些想要做個性化實現的操作時,我們也可以來通過框架完成自定義的評估計算方法。

自定義 Callback 則是可以幫助我們收集訓練時的一些參數以及數據,由於 Model.fit()封裝了訓練過程,如果我們需要保存訓練時的 loss、metric 等信息,則需要通過 callback 參數收集這部分信息。

高層 API,Next

上文以 CV 任務為例,介紹了飛槳框架高層 API 的使用指南。後續,飛槳框架還計劃推出 NLP 領域專用的數據預處理模塊,如對數據進行 padding、獲取數據集詞表等;在組網方面,也會實現 NLP 領域中組網專用的 API,如組網相關的 sequence_mask,評估指標相關的 BLEU 等;最後,針對 NLP 領域中的神器 transformer,我們也會對其進行特定的優化;待這些功能上線後,我們會第一時間告訴大家,敬請期待吧~

高層 API,Where

看完前面飛槳高層 API 的使用介紹,是不是有種躍躍欲試的衝動呀?

體驗方式一:在線體驗

無需準備任何軟硬體環境,直接訪問以下地址,即可在線跑代碼看效果:https://aistudio.baidu.com/aistudio/projectdetail/1243085

體驗方式二:本地體驗

如果你還想在自己本地電腦上體驗,那需要確保本地電腦上已成功安裝飛槳開源框架 2.0。

下面介紹飛槳開源框架 2.0 的安裝方法,可以參考下面的命令,直接使用 pip 安裝。安裝後,就可以開始使用高層 API 啦。

# CPU 版$ pip3 install paddlepaddle==2.0.0rc0 -i https://mirror.baidu.com/pypi/simple# GPU 版$ pip3 install paddlepaddle_gpu==2.0.0rc0 -i https://mirror.baidu.com/pypi/simple

高層 API,You

福利時間:百度飛槳開源框架近期針對高層 API 會推出一系列教程——《跟著雨哥學 AI》,該課程由多位資深飛槳工程師精心打造,誠意滿滿。對於剛上手深度學習的人來說,這就是最佳的學習材料。不管是自學,還是用於開發,都是極有幫助的。教程連結如下:https://aistudio.baidu.com/aistudio/personalcenter/thirdview/564527

相關焦點

  • 十行代碼就能搞定深度學習?飛槳框架高層API,一起輕鬆玩轉AI
    機器之心發布機器之心編輯部嚮往深度學習技術,可是深度學習框架太難學怎麼辦?百度傾心打造飛槳框架高層 API,零基礎也能輕鬆上手深度學習,一起來看看吧?高層 API,All飛槳框架高層 API 的全景圖如下:從圖中可以看出,飛槳框架高層 API 由五個模塊組成,分別是數據加載、模型組建、模型訓練、模型可視化和高階用法。針對不同的使用場景,飛槳框架提供了不同高層 API,從而降低開發難度,讓每個人都能輕鬆上手深度學習。
  • 不到1000行代碼,GitHub 1400星,天才黑客開源深度學習框架tinygrad
    tinygrad 的代碼數量不到 1000 行,目前該項目獲得了 GitHub 1400 星。在深度學習時代,谷歌、Facebook、百度等科技巨頭開源了多款框架來幫助開發者更輕鬆地學習、構建和訓練不同類型的神經網絡。而這些大公司也花費了很大的精力來維護 TensorFlow、PyTorch 這樣龐大的深度學習框架。
  • 飛槳開源框架2.0四大亮點搶先看:全新升級的API體系,成熟完備的...
    全新升級的 API 體系,讓深度學習技術的創新和應用更簡單 深度學習框架可以說是開發者們在人工智慧的海洋中乘風破浪的動力引擎,而 API 就是這個引擎的控制面板上的按鈕。因此,API 是深度學習框架威力發揮的直接入口,對開發者使用體驗起著至關重要的作用,飛槳一直以來對 API 設計以及整體 API 體系的完善給予足夠重視,持續完善優化。飛槳開源框架2.0對 API 體系進行了全新升級,讓開發者們可以在使用飛槳研發探索的過程中體驗到隨心所欲、暢通無阻的愉悅感覺。
  • 飛槳深度學習開源框架2.0搶先看:成熟完備的動態圖開發模式
    允中 發自 凹非寺量子位 編輯 | 公眾號 QbitAI百度飛槳於近期宣布,深度學習開源框架2.0搶先版本正式發布,進入2.0時代。其中一項重大升級,就是推出更加成熟完備的命令式編程模式,即通常說的動態圖模式。
  • 天才黑客George Hotz開源了一個小型深度學習框架tinygrad
    George Hotz 開源了一個小型深度學習框架 tinygrad,兼具 PyTorch 和 micrograd 的功能。tinygrad 的代碼數量不到 1000 行,目前該項目獲得了 GitHub 1400 星。 在深度學習時代,谷歌、Facebook、百度等科技巨頭開源了多款框架來幫助開發者更輕鬆地學習、構建和訓練不同類型的神經網絡。而這些大公司也花費了很大的精力來維護 TensorFlow、PyTorch 這樣龐大的深度學習框架。
  • 百度飛槳為AI獨立發展提供保障
    新一代人工智慧技術的發展,離不開晶片與深度學習框架兩大基礎。隨著中國科研創新能力的提升,技術領域取得大量突破。自2016年百度飛槳深度學習框架率先開源後,陸續有企業、高校等也開源了各自研發的深度學習框架。飛槳等平臺在技術上已取得突破與領先,但在市場佔有率、生態成熟度等方面仍有提升空間。
  • 談起國內AI開源開放生態,為何這些大咖都在討論飛槳
    然而,深度學習應用的高門檻也讓很多企業望而卻步,很多工作都是在「重複造輪子」,創新無從談起。作為「智能時代的作業系統」,開源深度學習平臺的出現徹底改變了這一現狀。開源開放的深度學習平臺有效地降低了深度學習技術應用門檻。
  • 學習PaddlePaddle(飛槳)是正確的選擇
    學習PaddlePaddle(飛槳)是正確的選擇深耕PaddlePaddle,非常高興和大家一起學習PaddlePaddle。為什麼要學習飛槳?在開始分享之前,我想先簡單聊聊——為什麼要學習飛槳。之所以說簡單聊聊,是我準備在學習飛槳滿一周年的時候再詳細分享一下(這裡算是做一個預告)。我們學習什麼總要有點目的。比如今年三十歲的我就想做一件讓自己覺得很酷的事,所以我學習了滑板,學習了滑板相關的知識,看了相關的影片等等。讓我得瑟一下。
  • WAVE SUMMIT+2020深度學習開發者峰會召開,飛槳開源生態繁榮成勢
    12月20日,由深度學習技術及應用國家工程實驗室與百度聯合主辦的WAVESUMMIT+2020深度學習開發者峰會在北京舉辦。百度飛槳作為國內開源最早、技術領先、功能完備的產業級深度學習平臺,繼520峰會之後,持續發布前沿產業洞察,重磅技術升級和開源生態成果。
  • 百度飛槳又有大動作!推出圖神經網絡屠榜「必殺技」UniMP
    圖神經網絡最權威榜單OGB  圖神經網絡是用於圖結構數據的深度學習架構,將端到端學習與歸納推理相結合,有望解決傳統深度學習無法處理的因果推理、可解釋性等問題,是非常有潛力的人工智慧研究方向在無法得知訓練集標籤順序的情況下,UniMP提出了標籤掩碼學習方法。UniMP每一次隨機將一定量的節點標籤掩碼為未知,用部分已有的標註信息、圖結構信息以及節點特徵來還原訓練數據的標籤。最終,UniMP在OGB上取得SOTA效果,並在論文的消融實驗上,驗證了方法的有效性。  屠榜背後:飛槳圖學習框架PGL加持
  • 走在開源最前端的百度,正在用百度飛槳、Apollo、ECharts們改變世界
    近日,權威科技媒體通過分析GitHub上的開源項目數據集GitHubArchive,得出2020和2019年度全球深度學習框架排名榜單,其中,百度飛槳PaddlePaddle均力壓谷歌TensorFlow,緊隨Facebook PyTorch之後,其搶眼的數據表現意味著在開發者積極貢獻代碼和項目、社區活躍、代碼迭代速度上一直保持著強勁的競爭力,已經成為了國內第一、世界第二的深度學習開源框架
  • TensorFlow vs PyTorch:哪個是深度學習網絡編程的最佳框架呢?
    實際上,在過去兩年中,這兩個框架一直在不斷融合,相互學習。例如,在發布的TensorFlow 2.2的新版本中,訓練步驟可以等同於PyTorch,現在程式設計師可以通過實現traint_step()來指定循環體的詳細內容。所以不要擔心選錯了框架。最重要的是要學習他們背後的深度學習概念,您在其中一個框架中獲得的知識在另一個框架中仍然有用。
  • 結識AI大咖與深度學習進階,還有DJ、樂隊
    同時,百度開源深度學習平臺飛槳也會在這次大會上帶來重磅更新。既有前沿技術解析與產業落地的乾貨,也有美酒和音樂的派對狂歡,這場專為開發者打造的 AI Party,就在下周日!同時,百度還將帶來飛槳最新的升級發布,作為集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體的功能完備、開源開放的產業級深度學習平臺,飛槳的最新升級必將會給開發者和企業發展注入新的動力。
  • 國產配國產,百度AI深度學習平臺飛槳適配統一作業系統UOS
    作為一款國產的功能完備的產業級深度學習平臺,百度飛槳挺受關注的。自從2016年開源以來,加上官方大力推廣和技術開發者愛好者的關注,它已經廣泛應用於多個行業領域。對於常見的幾款作業系統配置,百度飛槳總的來說照顧得還是比較全面的。這是目前官方發布的。不過對於我們國內的國產作業系統,則有點不一樣。比如深度系統、UOS,雖說也用了Linux內核,但它們已經屬於成熟的獨特的作業系統了,大量的軟硬體適配工作,理所當然要跟得上。
  • 如何做好「AI大生產平臺」?百度飛槳全景圖曝光 升級35項功能
    今天,在深度學習技術及應用國家工程實驗室與百度聯合主辦的「WAVE SUMMIT 2020」深度學習開發者峰會上,百度再次對飛槳進行了諸多重磅功能升級,並推出「飛槳企業版」和量子計算深度學習開發工具「量槳」等新產品,為百度「AI大生產平臺」注入了更多能力。
  • 深度學習CPU加速方案,飛槳全流程開發工具PaddleX 打通OpenVINO...
    飛槳全流程開發工具PaddleX,在打通深度學習全流程開發的基礎上,為產業開發者提供了多種高性能部署方案及詳細的示例工程。  事不宜遲,讓我帶您快速了解一下這套方案吧!  首先,飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用為基礎,是中國首個開源開放、技術領先、功能完備的產業級深度學習平臺,集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體。目前,飛槳已凝聚超230萬開發者,服務企業9萬家,基於飛槳開源深度學習平臺產生了31萬個模型 。
  • 最強國產開源AI框架再進化
    乾明 發自 凹非寺量子位 報導 | 公眾號 QbitAI2項全新能力,4大重磅升級,35個高精度預訓練模型上線,15個產業實踐中廣泛應用的視覺算法加持……這就是最強國產開源深度學習框架——飛槳的最新重要升級。
  • 教你如何實現一行代碼透視煉丹過程
    比如說深度學習模型訓練過程中盯 Log 盯得頭暈眼花?複雜模型結構全靠腦補?網絡各層效果無法評估?模型評估指標難以綜合權衡?想必各位「煉丹師」、「調參俠」都中過招吧?莫慌,飛槳給大家「送解藥」來了!這劑解藥就是VisualDL 2.0——飛槳可視化分析工具全面改版升級,幫眾位開發者們從 「煉丹萌新」 變身「太上老君」。
  • 英國AI晶片設計初創公司Graphcore加入百度飛槳硬體生態圈
    【TechWeb】5月22日消息,Wave Summit 2020深度學習開發者峰會上,百度正式宣布Graphcore為百度飛槳(PaddlePaddle)硬體生態圈共建計劃夥伴之一。Graphcore銷售副總裁、中國區總經理盧濤表示:「百度飛槳是中國首屈一指的深度學習平臺,我們十分高興與百度飛槳攜手打造硬體生態圈,加速各類AI應用的普及。Graphcore從零開始設計智能處理器IPU,可同時用於雲端訓練和推理,旨在為廣大AI創新者突破傳統硬體帶來的瓶頸。Graphcore的IPU硬體與解決方案已經量產,並應用在不同AI場景上。
  • 2020啟智開發者大會開幕 百度飛槳正式發布「OpenI-星辰PPSIG共建...
    百度飛槳全面參與,並承辦深度學習專場,展現了飛槳的最新技術進展及成果。  AITISA聯盟秘書長、啟智社區技術委員會主席黃鐵軍表示:OpenI啟智社區是由新一代人工智慧產業技術創新戰略聯盟組織產學研用通力協作共建共享的開源軟硬體開放數據超級社區,旨在促進人工智慧產業健康快速發展及其在社會經濟各領域的廣泛應用,為世界貢獻中國開源力量。