PyTorch終於能用上谷歌雲TPU,推理性能提升4倍,該如何薅羊毛?

2021-01-15 量子位

曉查 發自 凹非寺量子位 報導 | 公眾號 QbitAI

昨天,Facebook在PyTorch開發者大會上正式推出了PyTorch 1.3,並宣布了對谷歌雲TPU的全面支持,而且還可以在Colab中調用雲TPU。

之前機器學習開發者雖然也能在Colab中使用PyTorch,但是支持雲TPU還是第一次,這也意味著你不需要購買昂貴的GPU,可以在雲端訓練自己的模型。

而且如果你是谷歌雲平臺(Google Cloud Platform)的新註冊用戶,還能獲得300美元的免費額度。

現在PyTorch官方已經在Github上給出示例代碼,教你如何免費使用谷歌雲TPU訓練模型,然後在Colab中進行推理。

訓練ResNet-50

PyTorch先介紹了在雲TPU設備上訓練ResNet-50模型的案例。如果你要用雲TPU訓練其他的圖像分類模型,操作方式也是類似的。

在訓練之前,我們先要轉到控制臺創建一個新的虛擬機實例,指定虛擬機的名稱和區域。

如果要對Resnet50在真實數據上進行訓練,需要選擇具有最多CPU數量的機器類型。為了獲得最佳效果,請選擇n1-highmem-96機器類型。

然後選擇Debian GNU/Linux 9 Stretch + PyTorch/XLA啟動盤。如果打算用ImageNet真實數據訓練,需要至少300GB的磁碟大小。如果使用假數據訓練,默認磁碟大小隻要20GB。

創建TPU

轉到控制臺中創建TPU。在「Name」中指定TPU Pod的名稱。在「Zone」中指定雲TPU的區域,確保它與之前創建的虛擬機在同一區域中。在「 TPU Type」下,選擇TPU類型,為了獲得最佳效果,請選擇v3-8TPU(8個v3)。在「 TPU software version」下,選擇最新的穩定版本。使用默認網絡。設置IP位址範圍,例如10.240.0.0。官方建議初次運行時使用假數據進行訓練,因為fake_data會自動安裝在虛擬機中,並且只需更少的時間和資源。你可以使用conda或Docker進行訓練。

在fake_data上測試成功後,可以開始嘗試用在ImageNet的這樣實際數據上進行訓練。

用conda訓練:

# Fill in your the name of your VM and the zone.$ gcloud beta compute ssh "your-VM-name" --zone "your-zone".(vm)$ export TPU_IP_ADDRESS=your-ip-address(vm)$ export XRT_TPU_CONFIG="tpu_worker;0;$TPU_IP_ADDRESS:8470"(vm)$ ulimit -n 10240(vm)$ conda activate torch-xla-0.5(torch-xla-0.5)$ python /usr/share/torch-xla-0.5/pytorch/xla/test/test_train_imagenet.py --datadir=~/imagenet --model=resnet50 --num_epochs=90 --num_workers=64 --batch_size=128 --log_steps=200

用Docker訓練:

# Fill in your the name of your VM and the zone.$ gcloud beta compute ssh "your-VM-name" --zone "your-zone".(vm)$ export TPU_IP_ADDRESS=your-ip-address(vm)$ docker run --shm-size 128G -v ~/imagenet:/tmp/imagenet -e XRT_TPU_CONFIG="tpu_worker;0;$TPU_IP_ADDRESS:8470" gcr.io/tpu-pytorch/xla:r0.5 python3 pytorch/xla/test/test_train_imagenet.py --model=resnet50 --num_epochs=90 --num_workers=64 --log_steps=200 --datadir=/tmp/imagenet

在n1-highmem-96的虛擬機上選用完整v3-8 TPU進行訓練,第一個epoch通常需要約20分鐘,而隨後的epoch通常需要約11分鐘。該模型在90個epoch後達到約76%的top-1準確率。

為了避免谷歌雲後續進行計費,在訓練完成後請記得刪除虛擬機和TPU。

性能比GPU提升4倍

訓練完成後,我們就可以在Colab中導入自己的模型了。

打開notebook文件,在菜單欄的Runtime中選擇Change runtime type,將硬體加速器的類型改成TPU。

先運行下面的代碼單元格,確保可以訪問Colab上的TPU:

import osassert os.environ[『COLAB_TPU_ADDR』], 『Make sure to select TPU from Edit > Notebook settings > Hardware accelerator』

然後在Colab中安裝兼容PyTorch/TPU組件:

DIST_BUCKET="gs://tpu-pytorch/wheels"TORCH_WHEEL="torch-1.15-cp36-cp36m-linux_x86_64.whl"TORCH_XLA_WHEEL="torch_xla-1.15-cp36-cp36m-linux_x86_64.whl"TORCHVISION_WHEEL="torchvision-0.3.0-cp36-cp36m-linux_x86_64.whl"# Install Colab TPU compat PyTorch/TPU wheels and dependencies!pip uninstall -y torch torchvision!gsutil cp "$DIST_BUCKET/$TORCH_WHEEL" .!gsutil cp "$DIST_BUCKET/$TORCH_XLA_WHEEL" .!gsutil cp "$DIST_BUCKET/$TORCHVISION_WHEEL" .!pip install "$TORCH_WHEEL"!pip install "$TORCH_XLA_WHEEL"!pip install "$TORCHVISION_WHEEL"!sudo apt-get install libomp5

接下來就可以導入你要訓練好的模型和需要進行推理的圖片了。

在PyTorch上使用TPU對性能的提升到底有多明顯呢?官方選用了v2-8的一個核心,即1/8 TPU的情形,與使用英偉達Tesla K80 GPU進行對比,實測顯示推理時間大大縮短,性能約有4倍左右的提升。

GitHub地址:https://github.com/pytorch/xla/tree/master/contrib/colab

相關焦點

  • 一行代碼安裝,TPU也能運行PyTorch,修改少量代碼即可快速移植
    曉查 發自 凹非寺量子位 報導 | 公眾號 QbitAI對於PyTorch開發者來說,Google Colab上的TPU資源不能用,恐怕是最遺憾的事情了。Google的雲計算資源眼看著不能用,轉TensorFlow又是不可能的。過去一直有PyTorch用戶試圖在Colab上薅羊毛,但是都沒有太成功的。
  • 薅羊毛是什麼意思什麼梗 薅羊毛 羊毛黨的含義及出處
    薅羊毛是什麼意思什麼梗?薅羊毛本是沿襲春晚小品中白雲大媽的「薅羊毛織毛衣」的做法,被定義為「薅羊毛」。現指以年輕人為主的群體對銀行等金融機構及各類商家開展的一些優惠活動產生了濃厚興趣,並專門出現了這樣一批人,搜集各個銀行等金融機構及各類商家的優惠信息,在網絡和朋友圈子中廣為傳播,這種行為被稱作薅(hāo)羊毛。下面就跟360常識網一起具體看看薅羊毛等相關內容。
  • 京東長虹遭「薅羊毛」損失百萬:究竟誰才是那隻被薅的羊?
    由於平臺BUG、操作失誤等原因,商家被消費者「薅羊毛」的事情時有發生,不足為奇。根據種種跡象可以看出,這起事件很有可能是京東長虹自導自演出來的,甚至是一場「反薅羊毛」的騙局!你以為你是薅羊毛的,其實你才是羊有人會問,京東長虹花了這麼大的勁,究竟圖什麼啊?難道故意被「薅羊毛」還能賺錢不成?其實,他們這一招真的能賺錢,而且賺得比你想像中要多。我們先來算一筆帳。
  • 谷歌Colab有了V100加持,薅羊毛快樂再次加倍
    假如你是一枚學生黨,既沒有錢,學校實驗室計算卡又不夠用,卻入了機器學習的門,那你肯定用過一個神器:Google Colab。Tesla V100&Tesla P100 性能對比。如下圖所示,V100 在 ResNet-50 深度神經網絡訓練任務中的速度比 P100 快 2.4 倍。如果每張圖像的目標延遲是 7ms,那麼 V100 使用 ResNet-50 深度神經網絡進行推理的速度比 P100 快 3.7 倍(參與測試的 V100 為原型卡)。
  • 「薅羊毛」現象層出不窮 政府精準投放消費券是關鍵
    原標題:四兩撥千斤,消費券撬動內需潛力目前,全國整體發放消費券總額超過300億元,搶券、曬券、用券成為潮流。在消費券發揮刺激消費、拉動經濟復甦作用的同時,「薅羊毛」「虛假消費」等現象也隨之出現。為應對新冠肺炎疫情造成的衝擊,提振居民消費信心、激活消費市場潛力,自3月份起,全國各地開始大規模發放消費券,搶券、曬券、用券成為潮流。如今,消費券發放成效如何?還存在什麼問題?需從哪些方面改進?經濟日報記者採訪了相關專家學者。
  • 學霸科學薅羊毛一年省近萬元!網友:請收下我的膝蓋
    這不,近日就有人在微博曬剛剛結束考研的學霸男友,竟然用數學公式教其薅高級羊毛的攻略,成功引起了網友們的關注,紛紛評論表示:「大神這是數學題還沒做夠,請收下我拜服的膝蓋」!,為廣大網友們獻上了一份超詳細的「薅羊毛攻略」。
  • 復盤淘寶雙十一,我用產品思維薅羊毛
    「儲蓄罐小豬你瘦了,哎,不是爸比不疼你實在是消費太高,hold不住的生活花不夠的錢。」金庸大俠說過「為國為民,俠之大者」,這輩子咱都不可能消費降級的,拼多多這輩子也不可能會用的。可是架不住兜兜裡的硬幣咣當響啊,有啥省錢妙招麻煩來一沓,謝謝好心人一輩子平安。」咚咚,咚咚咚。「查水錶,雙十一優惠規則大法請笑納。」
  • 薅羊毛什麼意思什麼梗 拼多多優惠券漏洞事件全揭秘
    該人士表示:「羊毛黨剛散,亡羊補牢中,已向警方報案,最終還能追回不少,實際資損大概率低於千萬元。」­  上述發言人戲稱:「就看周一三大運營商會不會漲停了。」­  記者了解到,1月20日上午,相關優惠券全部下架。
  • 「薅羊毛」除了鑽空子套利 還會帶來數不清的虛假銷售
    「雙十一」期間是包括刷信用卡優惠在內的各種優惠最集中的時候,所以是一個「薅羊毛」的爆發期。「平臺本身有優惠,用信用卡支付還有優惠,是聚集人氣非常有效的手段」。對於其中的門道,佟泰可以說出一大堆。1℃記者看到,「羊頭」會在群裡提供各種店鋪、商品的連結或二維碼,要求群員進入購買相應的商品,並用指定的信用卡付款結帳。
  • 用Java實現目標檢測 | PyTorch
    在過去,用戶可以用PyTorch C++ 寫JNI (Java Native Interface) 來實現這個過程。最近,PyTorch 1.4 也發布了試驗性的Java 前端。可是這兩種解決方案都沒有辦法能讓Java開發者很好的使用:用戶需要從易於使用和易於維護中二選一。
  • 用Java實現目標檢測|PyTorch
    在過去,用戶可以用PyTorch C++ 寫JNI (Java Native Interface) 來實現這個過程。最近,PyTorch 1.4 也發布了試驗性的Java 前端。可是這兩種解決方案都沒有辦法能讓Java開發者很好的使用:用戶需要從易於使用和易於維護中二選一。
  • 薅羊毛是什麼意思? 理財族慣用的手法了解一下
    薅羊毛是什麼意思? 理財族慣用的手法了解一下時間:2019-07-27 11:41   來源:愛秀美   責任編輯:沫朵 川北在線核心提示:原標題:薅羊毛是什麼意思? 理財族慣用的手法了解一下 薅羊毛是什麼意思 經常會聽到別人說薅羊毛,但是就是不知道是什麼意思?就連薅羊毛怎麼讀都不知道?
  • 考拉海購訂單讓紐西蘭上千隻羊駝被「薅羊毛」
    一群群羊駝在牧場撒歡了的奔跑,被關了這麼久終於可以活動一下了,羊駝們叫醒了南半球。羊駝已經很久沒剪毛了「劉海」遮住了眼睛,等著主人「薅羊毛」。但在可一夜之間,這些羊駝的毛被剃光。那些被「薅」走的羊毛去哪了?在不遠處的羊駝被工廠Ellis FIBRE,接到了復工後的第一個羊毛訂單,來自考拉海購的訂單,這些羊毛被將被打包,跨過幾千公裡,奔赴中國。
  • 你有沒有薅羊毛,結果送人頭的經歷?
    所以為了讓大家少走彎路,我給大家一些躲開坑的技巧一 淘寶神車經常能在知乎看到一塊錢買了一雙耐克鞋之類的淘寶截圖。然後評論裡就會有很多人回復「求上車」。一言以蔽之就是 薅羊毛群常有而羊毛不常有這些一塊錢,甚至一毛錢買到巨額的商品的機會,其實寥寥無幾。大部分都是官方店鋪的秒殺活動。偶爾有那麼一次。截圖就是用來吸引想薅羊毛的人。
  • 隨心飛來了,卻被滋長羊毛黨,薅羊毛終極騙保飛機延誤險
    這旅遊出行App上那些延誤險的根本不夠看,核心玩家都用信用卡。成本巨降,起飛的不是航班,而是他們薅到的羊毛,那真的是飛一般的感覺呀。左手薅羊毛,右手觀天象,然後就被警方抓獲。因為人用的都是親戚朋友的身份信息買票構成了騙保。為了不被懷疑騙保啊,天天坐飛機吃住在機場。為了不準點的機票,常年是夜觀星象都快在世諸葛亮。
  • 薅羊毛了!剛才證實的今日頭條發紅包了!
    點開就是下面這樣,有4個紅包搜索選項10月19號結束,還能薅幾天羊毛,0.5元能提現,我已經提現了。
  • 消費券"薅羊毛"花式套路 外地"黃牛"用虛擬定位軟體搶券
    一些「羊毛黨」藏身貼吧、閒魚等平臺,或公開收購消費券,或代付加收手續費,出現不少花式「薅羊毛」的套路。   「最後一波,收京東消費券,有意者聯繫」「北京消費券9折收,不需要墊資」「收北京消費券九折券,價格合理」……隨著一批北京消費券即將在9月1日過期,記者注意到,在貼吧、閒魚、微博等平臺,不少「黃牛」紛紛發出求購貼,並根據消費券的不同種類給出幾元至近百元的不同報價。
  • 華為雲攜手峰科發布FPGA基因加速雲解決方案,基因測序性能提升5倍
    打開APP 華為雲攜手峰科發布FPGA基因加速雲解決方案,基因測序性能提升5倍 工程師曾玲 發表於 2018-07-09 14:14:00
  • 「薅羊毛」一族網絡搶紅包 製造虛擬用戶可視為詐騙
    「薅羊毛」一族網絡搶紅包 製造虛擬用戶可視為詐騙 法治新聞來源:央視網 2019年02月26日 14:40 A-A+   小王說,然後有朋友就幫我拉到「跑碼群」裡面做一些薅羊毛的一些活動。  記者問到,這個「跑碼」是什麼意思?  小王說,「跑碼」就是有些手機驗證碼、身份證號、設備號都會在這裡,一般的搶紅包活動都會要你的手機號驗證登錄,然後註冊。
  • 零時科技丨CTF技能寶典之智能合約 薅羊毛漏洞
    本篇文章我們繼續分享CTF比賽中的空投題型,也就是薅羊毛。在系列文章整數溢出題型中,也用到了空投,但只是調用一次空投達到觸發其他漏洞的判斷條件,並沒有進行批量獲取空投。本篇我們以2020年NSSC CTF上skybank題目為例,分享智能合約薅羊毛的題型,該題型也是多次出現在CTF的賽場。相對於之前的系列文章內容,本篇薅羊毛題型更容易理解。