簡體   English   中英

Tensorflow Float16 for VGG19 模型參數

[英]Tensorflow Float16 for VGG19 model parameters

我正在 Python 中使用 TensorFlow(使用 19.01 Nvidia TensorFlow Docker 映像)進行神經風格遷移 我有一個 Nvidia 2070 顯卡,當我嘗試運行較新版本的 TensorFlow docker 映像(例如 19.08)時,出現內存不足錯誤。 所以我決定也許是時候考慮使用 16 位精度而不是 32 位來存儲 VGG19 CNN 的參數了。

我在構建機器時的初步研究讓我相信從 32 切換到 16 是輕而易舉的事,但現在我正在積極嘗試進行轉換,這並不是我的經驗。

這就是我所做的:

  1. 我設置了 tf.keras.backend.set_floatx('float16')
  2. 設置 tf.keras.backend.set_epsilon(1e-4)
  3. 將 VGG19 網絡的圖像輸入更改為 float16,以及將 float32 數據類型與 float16 結合使用的代碼的任何其他雜項部分。

當我運行代碼時,nvidia-smi 仍然報告基本上 100% 的 GPU 正在使用。 有沒有人通過在 TensorFlow 中切換到 float16 來減少模型內存占用?

TensorFlow 有多種管理混合精度的方法。 最合適的混合精度方法取決於您計划使用的優化器。 例如,Keras 優化器有一個API,旨在輕松地以一種或另一種方式移植代碼 它被稱為mixed_precision

如果您使用的是 TFv1 優化器,或 TensorFlow 提供的其他非 keras 優化器之一,您可以使用他們的圖形重寫功能將圖形的各個部分轉換為浮點 16。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM