深度神經網路訓練傳統上依賴ieee單精度格式,但在混合精度的情況下,可以訓練半精度,同時保持單精度網路的精度。這種同時使用單精度和半精度表示的技術稱為混合精度技術。
通過使用tensor core加速數學密集型運算,如線性和卷積層。
與單精度相比,通過訪問一半的位元組可以加快記憶體受限的操作。
減少訓練模型的記憶體需求,支援更大的模型或更小的批。
啟用混合精度涉及兩個步驟:在適當的情況下,將模型移植到使用半精度資料型別;並使用損失縮放來保持較小的梯度值。
tensorflow、pytorch和mxnet中的自動混合精度特性為深度學習研究人員和工程師提供了在nvidia volta和turing gpu上最多3倍的人工智慧訓練速度,而只需要新增幾行**。
在nvidia ngc容器登錄檔中提供的tensorflow容器中提供了自動混合精度特性。要在容器內啟用此功能,只需設定乙個環境變數:
export tf_enable_auto_mixed_precision=1
另外,環境變數可以在tensorflow python指令碼中設定:
os.environ['tf_enable_auto_mixed_precision'] = '1'
另外還需要對優化器(optimizer)作如下修改:
optimizer = tf.train.gradientdescentoptimizer(learning_rate=learning_rate)
optimizer = tf.train.experimental.enable_mixed_precision_graph_rewrite(optimizer) # 需要新增這句話,該例子是tf1.14.0版本,不同版本可能不一樣
自動混合精度在tensorflow內部應用這兩個步驟,使用乙個環境變數,並在必要時進行更細粒度的控制。
自動混合精度特性在github上的apex repository中可用。要啟用,請將這兩行**新增到您現有的訓練指令碼中:
model, optimizer = amp.initialize(model, optimizer)
with amp.scale_loss(loss, optimizer) as scaled_loss:
scaled_loss.backward()
nvidia正在為mxnet構建自動混合精度特性。你可以在github上找到正在進行的工作。要啟用該功能,請在現有的訓練指令碼中新增以下**行:
marsggbo♥原創
2020-01-23 17:45:35
pythonpip使用方法 pip使用方法整理
匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...
使用方法 離型劑使用方法
1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...
使用方法 卡丁車輪胎使用方法
輪胎的使用方法很重要 卡丁車輪胎是卡丁車場日常執行中的主要易損件,但是輪胎的使用方法很重要。哪些情況下會縮短輪胎的使用壽命呢?一 跑道地面粗糙 有的跑道在鋪瀝青時,或者選錯了瀝青中石子的規格,或者碾壓得不夠平整,導致路面粗糙。有的跑道使用現成的水泥地,但表面粗糙或不平整。有的室內跑道,為了提高輪胎的...