自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MacBook顯卡不跑AI模型太浪費(fèi):這個深度學(xué)習(xí)工具支持所有品牌GPU

新聞 深度學(xué)習(xí)
通過這款名為 PlaidML 的工具,不論英偉達(dá)、AMD 還是英特爾顯卡都可以輕松搞定深度學(xué)習(xí)訓(xùn)練了。

 通過這款名為 PlaidML 的工具,不論英偉達(dá)、AMD 還是英特爾顯卡都可以輕松搞定深度學(xué)習(xí)訓(xùn)練了。

[[315945]]

眾所周知,深度學(xué)習(xí)是因為 2010 年代英偉達(dá) GPU 算力提升而快速發(fā)展起來的,不過如今市面上還有多種品牌的顯卡,它們同樣擁有不錯的性能,后者能不能成為 AI 模型算力的基礎(chǔ)呢?

[[315946]]

如果答案是肯定的,那我們的筆記本電腦豈不就可以用來跑深度學(xué)習(xí)模型了,尤其是讓我們下了血本的 MacBookPro。

MacBookPro 在科技圈覆蓋面頗廣,質(zhì)量也不錯,不能拿來做深度學(xué)習(xí)實在可惜。在選購 MacBook 的過程中,有些人會為了獨(dú)立顯卡而多花點(diǎn)錢,但到了做深度學(xué)習(xí)的時候卻發(fā)現(xiàn)這錢花得很冤枉,因為長期以來,多數(shù)機(jī)器學(xué)習(xí)模型只能通過通用 GPU 庫 CUDA 使用英偉達(dá)的 GPU。

但我們真的別無選擇嗎?medium 的一位博主表示,事實并非如此。一款名為 PlaidML 的深度學(xué)習(xí)框架可以破解這個困境。

MacBook显卡不跑AI模型太浪费:这个深度学习工具支持所有品牌GPU

為什么要用 GPU 做并行計算?

以建房子為例:如果單獨(dú)完成,你需要花費(fèi) 400 個小時,但如果你雇一個建筑工人,工期就可能減半。雇傭的工人越多,你的房子建得也越快。這就是阿姆達(dá)爾定律所揭示的內(nèi)容。它是一個計算機(jī)科學(xué)界的經(jīng)驗法則,代表了處理器并行運(yùn)算之后效率提升的能力。

[[315948]]

那么為什么要用 GPU 呢?最初 GPU 并不是為深度學(xué)習(xí)專門設(shè)計的,但并行計算的本質(zhì)似乎與圖形處理類似。單個 GPU 的核心雖然在性能上弱一些,但在處理大數(shù)據(jù)塊的算法上比 CPU 更高效,因為它們具有高度并行的結(jié)構(gòu),而且核的數(shù)量也非常多。由于圖形處理和深度學(xué)習(xí)在本質(zhì)上的相似性,GPU 就成為了深度學(xué)習(xí)和并行計算的首選。

除了 CUDA 就沒得選了嗎?

不過要想用上 GPU 的并行能力,英偉達(dá)的 CUDA 就不可回避,這種通用并行計算庫是做深度學(xué)習(xí)所必須的。目前,之所以高性能云計算、DL 服務(wù)器都采用英偉達(dá) GPU,主要原因還是在 CUDA。

如果想要充分利用筆記本的并行能力,且 N 卡又配不起,那么這篇文章介紹的 PlaidML 就非常合適了。

項目地址:https://github.com/plaidml/plaidml

PlaidML 是 Vertex.AI 2017 年開源的一款深度學(xué)習(xí)工具包。2018 年,英特爾收購了 Vertex.AI。之后 PlaidML 0.3.3 發(fā)布,開發(fā)者可以借助 Keras 在自己的 AMD 和英特爾 GPU 上完成并行深度學(xué)習(xí)任務(wù)。上個月,Vertex.AI 又發(fā)布了 PlaidML 的 0.7.0 版本。

MacBook显卡不跑AI模型太浪费:这个深度学习工具支持所有品牌GPU

PlaidML 是一種可移植的張量編譯器,可以在筆記本電腦、嵌入式設(shè)備或其他設(shè)備上進(jìn)行深度學(xué)習(xí)。重要的是,它并不依賴于 CUDA,而是 OpenCL 這種開放標(biāo)準(zhǔn)。

OpenCL 通用并行計算開放標(biāo)準(zhǔn)并不是為 N 卡專門設(shè)計的,因此不論你的筆記本 GPU 是 AMD、 Intel,還是 NVIDIA,它都能支持。

[[315949]]

很多讀者可能認(rèn)為,OpenCL 的生態(tài)沒有 CUDA 成熟,可能在穩(wěn)定性與開發(fā)速度上都沒那么快。但是,我們可以把復(fù)雜的底層機(jī)制都交給 PlaidML,我們只需要用就行了。

甚至 PlaidML 我們都不需要接觸,它已經(jīng)集成到了常見的深度學(xué)習(xí)框架中,并允許用戶在任何硬件中調(diào)用它。目前 PlaidML 已經(jīng)支持 Keras、ONNX 和 nGraph 等工具,直接用 Keras 建個模,MacBook 輕輕松松調(diào)用 GPU。

下面我們開始進(jìn)入正題:如何用自己筆記本電腦的 GPU 運(yùn)行一個簡單的 CNN。

用筆記本 GPU 運(yùn)行一個神經(jīng)網(wǎng)絡(luò)

安裝和設(shè)置 PlaidML 和相關(guān)組件

首先,我們要確保自己的筆記本電腦安裝了 Python 3 工作環(huán)境。作者建議在虛擬環(huán)境下運(yùn)行以下代碼:

  1. # install python3 virtualenv if you haven’t done so:  
  2. pip3 install virtualenv  
  3.   
  4. # Now create and activate a virtual environment for the case  
  5. python3 -m venv plaidml-venv  
  6. source plaidml-venv/bin/activate  
  7.   
  8. # Install PlaidML with Keras  
  9. pip install -U plaidml-keras  

記住一點(diǎn),標(biāo)準(zhǔn) TensorFlow 框架下的 Keras 無法使用 PlaidML,需要安裝 PlaidML 定制的 Keras。

  1. # Now setup PlaidML to use the right device 
  2. plaidml-setup 

MacBook显卡不跑AI模型太浪费:这个深度学习工具支持所有品牌GPU

設(shè)置 PlaidML 第二步。

現(xiàn)在得到了自己選擇的設(shè)備列表。以作者的電腦 Macbook Pro 15’2018 為例,設(shè)備列表如下:

  • CPU
  • 英特爾 UHD Graphics 630 顯卡
  • AMD Radeon pro 560x 顯卡

最后,鍵入「y」或「nothing」,返回保存設(shè)置。這樣以來,我們就已安裝所有設(shè)備,并且可以使用 GPU 來運(yùn)行深度學(xué)習(xí)項目了。

在 fashion mnist 上創(chuàng)建 CNN 分類器

首先,啟動 Jupyter Notebook。

  1. Jupyter Notebook 

然后按順序運(yùn)行以下代碼,將 PlaidML 用作 Keras 后端,否則會默認(rèn)使用 TensorFlow。

  1. # Importing PlaidML. Make sure you follow this order 
  2. import plaidml.keras 
  3. plaidml.keras.install_backend() 
  4. import os 
  5. os.environ["KERAS_BACKEND"] = "plaidml.keras.backend" 

現(xiàn)在就可以導(dǎo)入包,并下載 fashion 數(shù)據(jù)集。

  1. import keras 
  2. from keras.models import Sequential 
  3. from keras.layers import Dense, Dropout, Flatten 
  4. from keras.layers import Conv2D, MaxPooling2D 
  5. from keras import backend as K 
  6.  
  7. # Download fashion dataset from Keras 
  8. fashion_mnist = keras.datasets.fashion_mnist 
  9. (x_train, y_train), (x_test, y_test) = keras.datasets.fashion_mnist.load_data() 
  10.  
  11. # Reshape and normalize the data 
  12. x_train = x_train.astype('float32').reshape(60000,28,28,1) / 255 
  13. x_test = x_test.astype('float32').reshape(10000,28,28,1) / 255 

接下來使用 Keras 的序貫?zāi)K來創(chuàng)建一個簡單的 CNN,并編譯它。

  1. # Build a CNN model. You should see "INFO:plaidml:Opening device xxx" after you run this chunk 
  2. model = keras.Sequential() 
  3. model.add(keras.layers.Conv2D(filters=64, kernel_size=2, padding='same', activation='relu', input_shape=(28,28,1)))  
  4. model.add(keras.layers.MaxPooling2D(pool_size=2)) 
  5. model.add(keras.layers.Dropout(0.3)) 
  6. model.add(keras.layers.Conv2D(filters=32, kernel_size=2, padding='same', activation='relu')) 
  7. model.add(keras.layers.MaxPooling2D(pool_size=2)) 
  8. model.add(keras.layers.Dropout(0.3)) 
  9. model.add(keras.layers.Flatten()) 
  10. model.add(keras.layers.Dense(256, activation='relu')) 
  11. model.add(keras.layers.Dropout(0.5)) 
  12. model.add(keras.layers.Dense(10, activation='softmax')) 
  13.  
  14. # Compile the model 
  15. model.compile(optimizer='adam'
  16. loss=keras.losses.sparse_categorical_crossentropy, 
  17. metrics=['accuracy']) 

現(xiàn)在我們擬合模型,測試一下它的準(zhǔn)確率。

  1. # Fit the model on training set 
  2. model.fit(x_train, y_train, 
  3. batch_size=64
  4. epochs=10
  5.  
  6. # Evaluate the model on test set 
  7. score = model.evaluate(x_test, y_test, verbose=0
  8. # Print test accuracy 
  9. print('\n''Test accuracy:', score[1]) 

MacBook显卡不跑AI模型太浪费:这个深度学习工具支持所有品牌GPU

更多結(jié)果。

我們訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)模型在時尚分類任務(wù)上達(dá)到了 91% 的準(zhǔn)確率,訓(xùn)練只用了 2 分鐘!這個數(shù)字可能看起來并不驚艷,但想想 CPU 訓(xùn)練要多久吧:

MacBook显卡不跑AI模型太浪费:这个深度学习工具支持所有品牌GPU

用 CPU 完成相同的任務(wù)要用 2219 秒(約 37 分鐘),MAC 風(fēng)扇期間還會瘋狂輸出。

MacBook显卡不跑AI模型太浪费:这个深度学习工具支持所有品牌GPU

從以上結(jié)論中我們可以看到,借助 Macbook Pro 搭載的 GPU 進(jìn)行深度學(xué)習(xí)計算要比簡單地用 CPU 快 15 倍。通過 PlaidML,使用自己的筆記本電腦訓(xùn)練深度學(xué)習(xí)模型將變得更加簡單。

截至目前(2020 年 2 月),PlaidML 可以和各種品牌的 GPU 兼容,在使用英偉達(dá)顯卡時也無需 CUDA/cuDNN,也能達(dá)到類似的性能。

在 PlaidML 的 GitHub 頁面上你能看到更多的 demo 和相關(guān)項目,相信隨著這一工具的不斷發(fā)展,它可以支持的算法也會越來越多。我們在自己的筆記本上,也能快速試驗個小模型。

 

 

 

 

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2021-03-25 15:32:21

深度學(xué)習(xí)編程人工智能

2024-06-26 10:50:35

2018-08-21 09:49:02

GPU云服務(wù)器深度學(xué)習(xí)

2018-04-26 08:35:40

云服務(wù)器深度學(xué)習(xí)GPU

2018-09-21 15:05:24

顯卡識別工具

2023-01-17 15:18:20

深度學(xué)習(xí)GPU

2025-01-06 05:00:00

人工智能GPU深度學(xué)習(xí)

2015-04-16 13:38:26

GPU計算深度學(xué)習(xí)NVIDIA

2018-01-25 18:38:10

AI

2023-09-07 13:35:00

生成式AI

2024-09-09 04:00:00

GPU人工智能

2022-12-29 14:57:04

2022-11-16 14:05:56

AI模型

2023-09-03 14:17:56

深度學(xué)習(xí)人工智能

2022-12-09 09:52:47

AI深度學(xué)習(xí)

2021-07-09 05:59:03

Windows 11操作系統(tǒng)WhyNotWin11

2017-08-17 10:43:27

AMD架構(gòu)AI GPU

2019-08-27 11:49:03

新華三

2019-08-21 09:24:45

GPUCPU深度學(xué)習(xí)

2019-01-30 11:37:14

深度學(xué)習(xí)工具人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號