方法一:在solver檔案中寫入
#solver mode: cpu or gpu
solver_mode: gpu
方法二:命令列引數:-gpu
#train
./build/tools/caffe train -solver examples/mnist/lenet_solver.prototxt -gpu 0
#test
./build/tools/caffe test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -gpu 0 -iterations 100
方法一:系統指派
sess = tf.session(config=tf.configproto(log_device_placement=true))
方法二:人為指派
with tf.device('/gpu:2'):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
sess = tf.session(config=tf.configproto(log_device_placement=true))
這時候,a,b都是用的gpu2,而c是系統指派,但是如果gpu2不存在,那麼可以將之前的tf. session增加乙個引數設定,如下:
sess = tf.session(config=tf.configproto(
allow_soft_placement=true, log_device_placement=true))
這樣,如果gpu2不存在,系統會自動分配存在可用的gpu來使用。
如果使用多塊gpu,只需要加入迴圈如下:
for d in ['/gpu:2', '/gpu:3']:
with tf.device(d):
而為什麼要使用gpu呢?
主要是因為gpu的並行能力,在深度學習火起來之前,gpu主要用於影象的渲染,也就是遊戲效果中。cpu在處理影象的卷積操作 時,只能one-by-one的滑動,事實上,相關領域的研究人員發現,每一步的卷積操作之間不會相互影響,因此對於一次卷積甚至也可以用多個核來進行處理。當然不同的卷積核之間更不會相互影響,當然也可以用多個核來處理了,這就有了gpu。
深度學習火起來之後,由於限制cnn速度的絕大多數計算量都來自於卷積操作,而gpu恰好擅長這樣的計算,因此這也就是為什麼做深度學習的要有乙個好gpu了。主要就是為了解決卷積計算的時間,從而縮短網路的訓練時間。
gpu也有缺點,它不像cpu一樣擅長邏輯複雜的運算,它擅長高吞吐量的平行計算。
windows 離線 安裝tensorflow
辦公室台式電腦不能聯網,因此安裝tensorflow比較費時,現把步驟總結如下 電腦之前安裝了anaconda 但只包含python2.7,1建立環境py3,此時,由於離線,不能自動安裝python3.5,需要後續手動安裝 conda create n py3 clone root 這樣在新環境py...
jupyter無法匯入tensorflow
環境 我在ubuntu系統下安裝的anaconda3,然後並在裡面使用env安裝的tensorflow,之前安裝的jupyter notebook並不是在我的tensorflow環境下安裝的,所以你無法引入tensorflow。這是我在安裝之前的展示的jupyter的結果 很顯然,我的jupyter...
Ubuntu下如何安裝TensorFlow
本文目錄 利用anaconda安裝tensorflow 總結利用docker安裝tensorflow 安裝過程中的一些小問題記錄 tensorflow tensor 向量 flow 流 張量在網路圖中流動 主要參考 1 tensorflow官網tutorials 2 極客學院對tensorflow官...