Python中get_pretty_env_info()函数的源码分析
发布时间:2023-12-16 08:43:40
get_pretty_env_info() 函数是位于 "tensorflow/python/platform/build_info.py" 文件中的一个函数,用于返回TensorFlow的环境信息。
该函数的定义如下:
def get_pretty_env_info():
"""Return useful environment information strings, versions, and counts."""
metadata = [
('OS Platform', _sys.platform),
('TensorFlow Version', tf.__version__),
('Python Version', _sys.version.replace('
', ' ')),
]
versions = ['tf_nightly', 'tf_python', 'tf_cuda', 'tf_cudnn', 'tf_torch',
'tf_rocm', 'tf_mpi', 'tf_gdr', 'tf_perf']
info_counters = collections.Counter([_os.environ.get(k) for k in versions])
extra_info = ''
for key, version in info_counters.most_common():
if version > 1:
extra_info += ' * {} ({}): {} instances
'.format(
_os.environ[versions[0]], key, version)
metadata.append(('Extra Info', extra_info))
return metadata
该函数的作用是返回一个包含有用的环境信息的列表。列表中的每一项是一个元组,元组的 个元素是信息的名称,第二个元素是信息的值。
该函数首先创建一个元组列表 metadata ,其中包含三个元组。 个元组表示操作系统平台、第二个元组表示 Tensorflow 的版本、第三个元组表示 Python 的版本。
接下来,函数创建了一个名为 versions 的列表,该列表包含了一些版本号的名称。
然后,函数使用 Counter 类对这些版本号进行计数,得到每个版本号出现的次数。
接着,函数遍历 info_counters 中的每个版本号及其出现次数,并将其拼接到一个额外信息字符串 extra_info 中。
最后,函数将 extra_info 加入到 metadata 列表中,并返回该列表。
使用例子:
import tensorflow as tf
from tensorflow.python.platform import build_info
metadata = build_info.get_pretty_env_info()
for info in metadata:
print(info[0], ": ", info[1])
这段代码中,首先导入了 tensorflow 和 build_info 模块。
然后,调用 get_pretty_env_info() 函数获取环境信息。
最后,使用一个循环遍历 metadata 列表,并将每个元组的 个元素(信息名称)和第二个元素(信息值)打印出来。
以上代码执行的结果可能如下所示:
OS Platform : Linux-4.15.0-147-generic-x86_64-with-debian-buster-sid
TensorFlow Version : 2.0.0
Python Version : 3.7.4 (default, Jul 10 2019, 14:54:22) [GCC 7.4.0]
Extra Info : * tf_nightly (build_info) : 3 instances
