TensorFlow检查正在使用哪个protobuf实现

时间:2016-08-22 12:03:16

标签: installation tensorflow protocol-buffers

有没有办法检查TensorFlow使用哪个protobuf实现(即它是使用C ++版还是Python版)?

2 个答案:

答案 0 :(得分:3)

@keveman的回答告诉我们默认实现,但不是活动实现。

重要的是,PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION环境变量影响哪个实现处于活动状态,所以

PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp python -c "from google.protobuf.internal import api_implementation; print(api_implementation._default_implementation_type)"

PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python python -c "from google.protobuf.internal import api_implementation; print(api_implementation._default_implementation_type)"

将始终显示相同的结果。

要查看哪个实现处于活动状态,请改用:

python -c "from google.protobuf.internal import api_implementation; print(api_implementation.Type())"

更改PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION环境变量会导致Type()的结果更改为_default_implementation_type所没有的位置。

答案 1 :(得分:1)

尝试以下方法:

$ python -c "from google.protobuf.internal import api_implementation; print(api_implementation._default_implementation_type)"

应打印pythoncpp