tensorflow進行模型時會將視訊記憶體佔滿,導致不能與其他模型並行。
在python中的tensorflow視訊記憶體設定**
config=tf.configproto();
config.gpu_options.per_process_gpu_memory_fraction=0.5
set_session(tf.session(config=config))
在c++中
gpuoption類中有乙個per_process_gpu_memory_fraction物件。其預設值為1。所以會每次將視訊記憶體佔滿,將改值修改即可。
session* session;
configproto configproto;
//新建乙個gpuoption物件
gpuoptions gpuoptions;
//設定視訊記憶體
gpuoptions.set_per_process_gpu_memory_fraction(0.3);
//修改configproto中的gpuoption物件
configproto.set_allocated_gpu_options(&gpuoptions);
//新建乙個sessionoption物件並將configproto物件賦值給它
sessionoptions sessionoptions;
sessionoptions.config=configproto;
status status = newsession(sessionoptions, &session);//建立新會話session
sessionoption類中含有configproto的物件,若不需要對視訊記憶體進行修改,則直接呼叫sessionoptions的預設建構函式即可。
status status = newsession(sessionoptions(), &session);
一開始是想使用configproto.gpuoption()函式來獲得gpuoption物件,並對它進行修改。但是發現該函式返回的是乙個const物件。。。。
後來使用configproto.set_allocated_gpu_options()函式完成。
不加視訊記憶體限制結果如下:
加視訊記憶體限制結果:
因為出來tensorflow以外還有其他模型,所以顯示卡數值不是完全的0.3。但是可以看出明顯限制視訊記憶體了。可以同時載入多個模型了。
使用TensorFlow低階別的API進行程式設計
tensorflow的低階api要使用張量 tensor 圖 graph 會話 session 等來進行程式設計。雖然從一定程度上來看使用低階的api非常的繁重,但是它能夠幫助我們更好的理解tensorflow的,更加靈活的控制訓練的過程。程式的構建分為兩個步驟,第乙個步驟是圖的構建,第二個步驟是會...
tensorflow編譯擴充套件包
我們常常需要在不同的環境下編譯tensorflow的擴充套件包,不同的環境下編譯選項也不一樣,改來改去非常麻煩,這裡提供乙個通用的編譯方式 g std c 11 tf interpolate.cpp o tf interpolate so.so shared fpic i python c impo...
將lua編譯進nginx
export luajit lib usr local lib export luajit inc usr local include luajit 其中luajit表示luajit的安裝目錄 5 接下來是編譯nginx了 其中兩個 add module表示lua的nginx模組和ngx devel...