欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Tensorflow與Keras自適應使用顯存方式

 更新時間:2020年06月22日 10:19:44   作者:一呆飛仙  
這篇文章主要介紹了Tensorflow與Keras自適應使用顯存方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Tensorflow支持基于cuda內(nèi)核與cudnn的GPU加速,Keras出現(xiàn)較晚,為Tensorflow的高層框架,由于Keras使用的方便性與很好的延展性,之后更是作為Tensorflow的官方指定第三方支持開源框架。

但兩者在使用GPU時都有一個特點,就是默認為全占滿模式。在訓練的情況下,特別是分步訓練時會導致顯存溢出,導致程序崩潰。

可以使用自適應配置來調(diào)整顯存的使用情況。

一、Tensorflow

1、指定顯卡

代碼中加入

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

或者在運行代碼前,在終端

export CUDA_VISIBLE_DEVICES=0

2、為顯存分配使用比例

在建立tf.Session加入設置數(shù)據(jù)(顯存使用比例為1/3),但有時你雖然設置了使用上限,在程序需要更高顯存時還是會越過該限制

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

3、自適應分配

會自適應分配顯存,不會將顯存全部分配導致資源浪費

config = tf.ConfigProto() 
config.gpu_options.allow_growth=True 
sess = tf.Session(config=config) 

二、Keras

與tensorflow大差不差,就是將tf.Session配置轉(zhuǎn)置Keras配置

1、指定顯卡

代碼中加入

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

或者在運行代碼前,在終端

export CUDA_VISIBLE_DEVICES=0

2、為顯存分配使用比例

import tensorflow as tf
import keras.backend.tensorflow_backend as KTF

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.333
session = tf.Session(config=config)
KTF.set_session(session)

3、自適應分配

import keras.backend.tensorflow_backend as KTF

config = tf.ConfigProto() 
config.gpu_options.allow_growth=True 
session = tf.Session(config=config)
KTF.set_session(session)

4、如有設置fit_generator

將多線程關閉

#可將
use_multiprocessing=True
#改為
use_multiprocessing=False

補充知識:Keras 自動分配顯存,不占用所有顯存

自動分配顯存,不占用所有顯存

import keras.backend.tensorflow_backend as KTF
import tensorflow as tf
import os
 
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
config = tf.ConfigProto()
config.gpu_options.allow_growth=True #不全部占滿顯存, 按需分配
sess = tf.Session(config=config)
KTF.set_session(sess)

以上這篇Tensorflow與Keras自適應使用顯存方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python技巧匿名函數(shù)、回調(diào)函數(shù)和高階函數(shù)

    Python技巧匿名函數(shù)、回調(diào)函數(shù)和高階函數(shù)

    本文分享的是Python技巧匿名函數(shù)、回調(diào)函數(shù)和高階函數(shù),我們在Python中使用lambda表達式來使用匿名函數(shù),回調(diào)函數(shù)即callback,先寫一個函數(shù),讓預先寫好的系統(tǒng)來調(diào)用,一個函數(shù)可以作為參數(shù)傳給另外一個函數(shù),或者一個函數(shù)的返回值為另外一個函數(shù),滿足其一則為高階函數(shù)
    2021-12-12
  • Python增強下git那長長的指令詳解

    Python增強下git那長長的指令詳解

    這篇文章主要介紹了Python增強下git那長長的指令 ,在開發(fā)中用到的代碼目錄結構,本文也給大家詳細講解,需要的朋友可以參考下
    2021-09-09
  • 使用matplotlib繪制熱圖(heatmap)全過程

    使用matplotlib繪制熱圖(heatmap)全過程

    這篇文章主要介紹了使用matplotlib繪制熱圖(heatmap)全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python類super()及私有屬性原理解析

    Python類super()及私有屬性原理解析

    這篇文章主要介紹了Python類super()及私有屬性原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 詳解四種Python中基本形態(tài)學濾波的實現(xiàn)

    詳解四種Python中基本形態(tài)學濾波的實現(xiàn)

    最基礎的形態(tài)學操作有四個,分別是腐蝕、膨脹、開計算和閉計算。這篇文章主要介紹了這四種形態(tài)學濾波的實現(xiàn),感興趣的小伙伴可以跟隨小編一起學習一下
    2023-04-04
  • 淺析Python的對象拷貝和內(nèi)存布局

    淺析Python的對象拷貝和內(nèi)存布局

    這篇文章主要為大家詳細介紹了Python中的對象拷貝和內(nèi)存布局的相關知識,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,需要的可以參考一下
    2022-12-12
  • python標準日志模塊logging的使用方法

    python標準日志模塊logging的使用方法

    python的標準庫里的日志系統(tǒng)從Python2.3開始支持。只要import logging這個模塊即可使用。
    2013-11-11
  • Python學習之str重要函數(shù)

    Python學習之str重要函數(shù)

    這篇文章主要介紹了Python str重要函數(shù),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • python遍歷序列enumerate函數(shù)淺析

    python遍歷序列enumerate函數(shù)淺析

    enumerate函數(shù)用于遍歷序列中的元素以及它們的下標。下面通過本文給大家分享python遍歷序列enumerate函數(shù)淺析,需要的朋友參考下吧
    2017-10-10
  • Numpy中的數(shù)組搜索中np.where方法詳細介紹

    Numpy中的數(shù)組搜索中np.where方法詳細介紹

    這篇文章主要介紹了Numpy中的數(shù)組搜索中np.where方法詳細介紹,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論