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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

巨省显存的重计算技巧在TF、Keras中的正确打开方式

發(fā)布時間:2024/7/5 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 巨省显存的重计算技巧在TF、Keras中的正确打开方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一只小狐貍帶你解鎖 煉丹術(shù)&NLP?秘籍

作者:蘇劍林(來自追一科技,人稱“蘇神”)

前言

在前不久的文章《BERT重計算:用22.5%的訓(xùn)練時間節(jié)省5倍的顯存開銷(附代碼)》中介紹了一個叫做“重計算”的技巧(附pytorch和paddlepaddle實(shí)現(xiàn))。簡單來說重計算就是用來省顯存的方法,讓平均訓(xùn)練速度慢一點(diǎn),但batch_size可以增大好幾倍,該技巧首先發(fā)布于論文《Training Deep Nets with Sublinear Memory Cost》。

最近筆者發(fā)現(xiàn),重計算的技巧在tensorflow也有實(shí)現(xiàn)。事實(shí)上從tensorflow1.8開始,tensorflow就已經(jīng)自帶了該功能了,當(dāng)時被列入了tf.contrib這個子庫中,而從tensorflow1.15開始,它就被內(nèi)置為tensorflow的主函數(shù)之一,那就是tf.recompute_grad。找到?tf.recompute_grad?之后,筆者就琢磨了一下它的用法,經(jīng)過一番折騰,最終居然真的成功地用起來了,居然成功地讓?batch_size?從48增加到了144!然而,在繼續(xù)整理測試的過程中,發(fā)現(xiàn)這玩意居然在tensorflow 2.x是失效的...于是再折騰了兩天,查找了各種資料并反復(fù)調(diào)試,最終算是成功地補(bǔ)充了這一缺陷。

最后是筆者自己的開源實(shí)現(xiàn):

Github地址:

https://github.com/bojone/keras_recompute

該實(shí)現(xiàn)已經(jīng)內(nèi)置在bert4keras中,使用bert4keras的讀者可以升級到最新版本(0.7.5+)來測試該功能。

使用

筆者的實(shí)現(xiàn)也命名為recompute_grad,它是一個裝飾器,用于自定義Keras層的?call函數(shù),比如

from recompute import recompute_gradclass MyLayer(Layer): @recompute_grad def call(self, inputs): return inputs * 2

對于已經(jīng)存在的層,可以通過繼承的方式來裝飾:

from recompute import recompute_grad class MyDense(Dense):@recompute_graddef call(self, inputs):return?super(MyDense,?self).call(inputs)

自定義好層之后,在代碼中嵌入自定義層,然后在執(zhí)行代碼之前,加入環(huán)境變量RECOMPUTE=1來啟用重計算。

注意:不是在總模型里插入了@recomputr_grad,就能達(dá)到省內(nèi)存的目的,而是要在每個層都插入@recomputr_grad才能更好地省顯存。簡單來說,就是插入的@recomputr_grad越多,就省顯存。具體原因請仔細(xì)理解重計算的原理。

效果

bert4keras0.7.5已經(jīng)內(nèi)置了重計算,直接傳入環(huán)境變量RECOMPUTE=1就會啟用重計算,讀者可以自行嘗試,大概的效果是:

1、在BERT Base版本下,batch_size可以增大為原來的3倍左右;

2、在BERT Large版本下,batch_size可以增大為原來的4倍左右;

3、平均每個樣本的訓(xùn)練時間大約增加25%;

4、理論上,層數(shù)越多,batch_size可以增大的倍數(shù)越大。

環(huán)境

在下面的環(huán)境下測試通過:

tensorflow 1.14 + keras 2.3.1

tensorflow 1.15 + keras 2.3.1

tensorflow 2.0 + keras 2.3.1

tensorflow 2.1 + keras 2.3.1

tensorflow 2.0 + 自帶tf.keras

tensorflow 2.1 + 自帶tf.keras

確認(rèn)不支持的環(huán)境:

tensorflow 1.x + 自帶tf.keras

歡迎報告更多的測試結(jié)果。

順便說一下,強(qiáng)烈建議用keras2.3.1配合tensorflow1.x/2.x來跑,強(qiáng)烈不建議使用tensorflow 2.x自帶的tf.keras來跑

  • 算法工程師的效率神器——vim篇

  • 硬核推導(dǎo)Google AdaFactor:一個省顯存的寶藏優(yōu)化器

  • 數(shù)據(jù)缺失、混亂、重復(fù)怎么辦?最全數(shù)據(jù)清洗指南讓你所向披靡

  • LayerNorm是Transformer的最優(yōu)解嗎?

  • ACL2020|FastBERT:放飛BERT的推理速度

夕小瑤的賣萌屋

_

關(guān)注&星標(biāo)小夕,帶你解鎖AI秘籍

訂閱號主頁下方「撩一下」有驚喜哦

總結(jié)

以上是生活随笔為你收集整理的巨省显存的重计算技巧在TF、Keras中的正确打开方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色aaa毛片 | 欧美一级影院 | 18做爰免费视频网站 | 欧美破处大片 | 中国免费毛片 | 捆绑最紧bdsm视频 | 91亚洲精华 | 国产日韩免费视频 | 在线免费观看黄色av | 加勒比一区在线 | 一区二区一级片 | 好男人www在线视频 我们的2018在线观看免费高清 | 久久免费久久 | 日韩中文字幕一区二区三区 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 国产精品无码天天爽视频 | 免费看欧美黄色片 | 嫩草影院一区二区三区 | 精品一区二区欧美 | 91系列在线观看 | 777中文字幕 | 久久理伦| 性视频网址| 日韩精品在线观看网站 | 精品欧美一区二区久久久 | 国产精品人 | 成人在线视频免费播放 | 黑人操日本女人视频 | 七月色 | 国产91在线免费观看 | 欧美日韩免费网站 | 成人做爰黄 | 国产va在线 | 成人免费小视频 | 日韩和欧美的一区二区 | 国产一级片免费观看 | 成人免费观看视频 | 国产精品成人无码专区 | 在线黄网站 | 国产激情二区 | 久久久网站 | 久久免费在线观看视频 | 超碰97在线免费 | 欧美福利在线观看 | 性一交一乱一伧老太 | 无码一区二区三区免费视频 | 激情 小说 亚洲 图片 伦 | 国产片一区二区 | 日穴视频| 日日噜噜噜夜夜爽爽狠狠视频97 | 欧美在线播放一区二区 | 男同志毛片特黄毛片 | 色月婷婷 | 国产精品一区二区精品 | 国产xxx69麻豆国语对白 | 男女操网站 | 亚洲久视频 | 爱爱福利社 | 99热导航 | 亚洲大成色 | 人人舔人人爽 | 91视频精选| 中文字幕2区| 亚洲色网址 | japanese24hdxxxx中文字幕 | 亚洲一区 欧美 | 日本亲子乱子伦xxxx50路 | 色天使在线视频 | 视频在线观看免费 | 亚洲福利av| 波多野结衣一二三区 | 亚洲成a人片77777精品 | 91精品国产综合久久香蕉 | 免费在线观看的黄色网址 | 五月开心婷婷 | 中国一级片黄色一级片黄 | 午夜影视免费 | 欧美视频精品在线 | 中文字幕一区二区三区在线观看 | 亚洲成人自拍偷拍 | 最新在线黄色网址 | 日日夜夜2017 | 伊人55| 久久久永久久久人妻精品麻豆 | 麻豆视频入口 | 黑人巨茎大战欧美白妇 | 中文字幕av一区二区三区 | 国产黄在线播放 | 福利社av| 成人一级影视 | a级黄色在线观看 | 日韩av电影网 | 亚洲av无码乱码国产精品fc2 | 无码少妇精品一区二区免费动态 | 香蕉视频黄色在线观看 | 中日韩在线播放 | 久操中文 | 国产成人自拍偷拍 | 尤物视频在线免费观看 |