keras如何用多gpu并行運行-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了keras如何用多gpu并行運行,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

為企業(yè)提供成都做網(wǎng)站、網(wǎng)站設計、網(wǎng)站優(yōu)化、營銷型網(wǎng)站建設、競價托管、品牌運營等營銷獲客服務。創(chuàng)新互聯(lián)擁有網(wǎng)絡營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術實力解決了企業(yè)“網(wǎng)站建設、網(wǎng)絡品牌塑造、網(wǎng)絡營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉化率,獲得了眾多企業(yè)客戶的高度認可!

一、多張gpu的卡上使用keras

有多張gpu卡時,推薦使用tensorflow 作為后端。使用多張gpu運行model,可以分為兩種情況,一是數(shù)據(jù)并行,二是設備并行。

二、數(shù)據(jù)并行

數(shù)據(jù)并行將目標模型在多個設備上各復制一份,并使用每個設備上的復制品處理整個數(shù)據(jù)集的不同部分數(shù)據(jù)。

利用multi_gpu_model實現(xiàn)

keras.utils.multi_gpu_model(model, gpus=None, cpu_merge=True, cpu_relocation=False)

具體來說,該功能實現(xiàn)了單機多 GPU 數(shù)據(jù)并行性。 它的工作原理如下:

將模型的輸入分成多個子批次。

在每個子批次上應用模型副本。 每個模型副本都在專用 GPU 上執(zhí)行。

將結果(在 CPU 上)連接成一個大批量。

例如, 如果你的 batch_size 是 64,且你使用 gpus=2, 那么我們將把輸入分為兩個 32 個樣本的子批次, 在 1 個 GPU 上處理 1 個子批次,然后返回完整批次的 64 個處理過的樣本。

參數(shù)

model: 一個 Keras 模型實例。為了避免OOM錯誤,該模型可以建立在 CPU 上, 詳見下面的使用樣例。

gpus: 整數(shù) >= 2 或整數(shù)列表,創(chuàng)建模型副本的 GPU 數(shù)量, 或 GPU ID 的列表。

cpu_merge: 一個布爾值,用于標識是否強制合并 CPU 范圍內的模型權重。

cpu_relocation: 一個布爾值,用來確定是否在 CPU 的范圍內創(chuàng)建模型的權重。如果模型沒有在任何一個設備范圍內定義,您仍然可以通過激活這個選項來拯救它。

返回

一個 Keras Model 實例,它可以像初始 model 參數(shù)一樣使用,但它將工作負載分布在多個 GPU 上。

例子

import tensorflow as tf
from keras.applications import Xception
from keras.utils import multi_gpu_model
import numpy as np

num_samples = 1000
height = 224
width = 224
num_classes = 1000

# 實例化基礎模型(或者「模版」模型)。
# 我們推薦在 CPU 設備范圍內做此操作,
# 這樣模型的權重就會存儲在 CPU 內存中。
# 否則它們會存儲在 GPU 上,而完全被共享。
with tf.device('/cpu:0'):
 model = Xception(weights=None,
   input_shape=(height, width, 3),
   classes=num_classes)

# 復制模型到 8 個 GPU 上。
# 這假設你的機器有 8 個可用 GPU。
parallel_model = multi_gpu_model(model, gpus=8)
parallel_model.compile(loss='categorical_crossentropy',
   optimizer='rmsprop')

# 生成虛擬數(shù)據(jù)
x = np.random.random((num_samples, height, width, 3))
y = np.random.random((num_samples, num_classes))

# 這個 `fit` 調用將分布在 8 個 GPU 上。
# 由于 batch size 是 256, 每個 GPU 將處理 32 個樣本。
parallel_model.fit(x, y, epochs=20, batch_size=256)

# 通過模版模型存儲模型(共享相同權重):
model.save('my_model.h6')

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享名稱:keras如何用多gpu并行運行-創(chuàng)新互聯(lián)
分享地址:http://bm7419.com/article16/iipdg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、建站公司、外貿建站、品牌網(wǎng)站制作網(wǎng)站改版、營銷型網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設