tensorflow c接口設置會話選項

       tensorflow中GPU的選項描述,可以到這裏查看,具體這裏就不詳細描述。對於visible_device_list選項的描述,具體在這裏有描述。

       對於TF_SetConfig中,需要提供把配置作爲序列化的protobuf字符串處理。這裏就詳細舉一個例子來說:
       

 

import tensorflow as tf gpu_options = tf.GPUOptions(allow_growth=True,visible_device_list='3') config = tf.ConfigProto(gpu_options=gpu_options) serialized = config.SerializeToString() list(map(hex, serialized))

1

2

3

4

5

import tensorflow as tf  

gpu_options = tf.GPUOptions(allow_growth=True,visible_device_list='3')

config = tf.ConfigProto(gpu_options=gpu_options)

serialized = config.SerializeToString()

list(map(hex, serialized))

 

       結果輸出爲:

 

['0x32', '0x5', '0x20', '0x1', '0x2a', '0x1', '0x33']

1

['0x32', '0x5', '0x20', '0x1', '0x2a', '0x1', '0x33']

 

       在c/c++代碼中:

 

C++

TF_Graph* graph = TF_NewGraph (); TF_Status* status = TF_NewStatus (); TF_SessionOptions*session_opts = TF_NewSessionOptions(); uint8_t config[7] ={0x32, 0x5, 0x20, 0x1, 0x2a, 0x1, 0x32}; TF_SetConfig(session_opts,(void*)config,7,status); TF_Session* sess = TF_NewSession(graph, session_opts, status);

1

2

3

4

5

6

TF_Graph* graph = TF_NewGraph ();

TF_Status* status = TF_NewStatus ();

TF_SessionOptions*session_opts = TF_NewSessionOptions();

uint8_t config[7] ={0x32, 0x5, 0x20, 0x1, 0x2a, 0x1, 0x32};

TF_SetConfig(session_opts,(void*)config,7,status);

TF_Session* sess = TF_NewSession(graph, session_opts, status);

 

文章鏈接:
1)https://github.com/tensorflow/tensorflow/issues/13853
2)  https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/protobuf/config.proto
3)https://github.com/tensorflow/tensorflow/issues/1888
4)https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/common_runtime/gpu/gpu_id.h

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章