有没有办法检查TensorFlow使用哪个protobuf实现(即它是使用C ++版还是Python版)?
答案 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)"
应打印python
或cpp
。