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