欢迎访问宙启技术站
智能推送

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])

这段代码中,首先导入了 tensorflowbuild_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