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

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