tensorflow指定CPU與GPU運算的方法實現(xiàn)
1.指定GPU運算
如果安裝的是GPU版本,在運行的過程中TensorFlow能夠自動檢測。如果檢測到GPU,TensorFlow會盡可能的利用找到的第一個GPU來執(zhí)行操作。
如果機器上有超過一個可用的GPU,除了第一個之外的其他的GPU默認(rèn)是不參與計算的。為了讓TensorFlow使用這些GPU,必須將OP明確指派給他們執(zhí)行。with......device語句能夠用來指派特定的CPU或者GPU執(zhí)行操作:
import tensorflow as tf import numpy as np with tf.Session() as sess: with tf.device('/cpu:0'): a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
設(shè)備的字符串標(biāo)識,當(dāng)前支持的設(shè)備包括以下的幾種:
cpu:0 機器的第一個cpu。
gpu:0 機器的第一個gpu,如果有的話
gpu:1 機器的第二個gpu,依次類推
類似的還有tf.ConfigProto來構(gòu)建一個config,在config中指定相關(guān)的GPU,并且在session中傳入?yún)?shù)config=“自己創(chuàng)建的config”來指定gpu操作
其中,tf.ConfigProto函數(shù)的參數(shù)如下:
log_device_placement=True: 是否打印設(shè)備分配日志
allow_soft_placement=True: 如果指定的設(shè)備不存在,允許TF自動分配設(shè)備
import tensorflow as tf import numpy as np config = tf.ConfigProto(log_device_placement=True, allow_soft_placement=True) with tf.Session(config=config) as sess: a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
2.設(shè)置GPU使用資源
上文的tf.ConfigProto函數(shù)生成的config之后,還可以設(shè)置其屬性來分配GPU的運算資源,如下代碼就是按需分配
import tensorflow as tf import numpy as np config = tf.ConfigProto(log_device_placement=True, allow_soft_placement=True) config.gpu_options.allow_growth = True with tf.Session(config=config) as sess: a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
使用allow_growth option,剛開始會分配少量的GPU容量,然后按需要慢慢的增加,有與不會釋放內(nèi)存,隨意會導(dǎo)致內(nèi)存碎片。
同樣,上述的代碼也可以在config創(chuàng)建時指定,
import tensorflow as tf import numpy as np gpu_options = tf.GPUOptions(allow_growth=True) config = tf.ConfigProto(gpu_options=gpu_options) with tf.Session(config=config) as sess: a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
我們還可以給gpu分配固定大小的計算資源。
gpu_options = tf.GPUOptions(allow_growth=True, per_process_gpu_memory_fraction=0.5)
上述代碼的含義是分配給tensorflow的GPU顯存大小為:GPU的實際顯存*0.5
到此這篇關(guān)于tensorflow指定CPU與GPU運算的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)tensorflow指定CPU與GPU運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 運行tensorflow python程序,限制對GPU和CPU的占用操作
- 基于Tensorflow使用CPU而不用GPU問題的解決
- 在tensorflow中設(shè)置使用某一塊GPU、多GPU、CPU的操作
- 卸載tensorflow-cpu重裝tensorflow-gpu操作
- 使用Tensorflow-GPU禁用GPU設(shè)置(CPU與GPU速度對比)
- 詳解tf.device()指定tensorflow運行的GPU或CPU設(shè)備實現(xiàn)
- 用gpu訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),用tensorflow-cpu跑出錯的原因及解決方案
- Tensorflow中使用cpu和gpu有什么區(qū)別
- tensorflow之如何使用GPU而不是CPU問題
- TensorFlow安裝CPU版本和GPU版本的實現(xiàn)步驟
相關(guān)文章
修復(fù)CentOS7升級Python到3.6版本后yum不能正確使用的解決方法
這篇文章主要介紹了修復(fù)CentOS7升級Python到3.6版本后yum不能使用的問題,本文給大家?guī)砹私鉀Q方法,需要的朋友可以參考下2018-01-01python中l(wèi)ower函數(shù)實現(xiàn)方法及用法講解
在本篇文章里小編給大家整理的是一篇關(guān)于python中l(wèi)ower函數(shù)實現(xiàn)方法及用法講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2020-12-12python實現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法
這篇文章主要介紹了python實現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法,可以批量修改視頻文件名稱,非常具有實用價值,需要的朋友可以參考下2014-09-09在Pycharm中調(diào)試Django項目程序的操作方法
今天小編就為大家分享一篇在Pycharm中調(diào)試Django項目程序的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python使用LSTM實現(xiàn)銷售額預(yù)測詳解
大家經(jīng)常會遇到一些需要預(yù)測的場景,比如預(yù)測品牌銷售額,預(yù)測產(chǎn)品銷量。本文給大家分享一波使用?LSTM?進行端到端時間序列預(yù)測的完整代碼和詳細解釋,需要的可以參考一下2022-07-07