用于发布使用基准人工智能框架的度量的客户端库。

benchmarkai-client-lib的Python项目详细描述


一个小库,用于在使用基准ai基础设施运行工作流时发布度量。

安装

pip install benchmarkai-client-lib

API

库提供单一方法:

def emit(metrics: Dict[str, float])

ps:这个库也适用于python 2,它没有类型系统。

示例用法

frombenchmarkaiimportemitdefmy_fancy_benchmark():importtimebegin=time.time()forepochinrange(100):execute_training()elapsed_time=time.time()-beginemit({"alexnet.batchsize16.latency":elapsed_time})

性能

作为作者,您不必担心emit()速度慢,因为它有两个功能:

  • metrics序列化为json
  • 将此字符串写入文件(请参阅内部详细信息)

所以它会尽可能的慢,这是相当快的操作。

接受值

metrics参数提供的字典的格式为:

"metric-name" => value

  • metric-name是一个string
  • value是一个float

运行测试

要设置运行测试的环境,将提供文件test-environment.yml。这个conda环境文件 具有运行测试所需的所有依赖项。

$ conda env create -f test-environment.yml
$ conda activate benchmark-ai-client-library-tests
$ tox

内部细节

模式

从现在起,库可以在以下模式下使用:

  1. stdout打印(这是default模式)
  2. 基准人工智能基础设施

要控制所需的行为,可以将环境变量BENCHMARK_AI设置为以下值之一:

  • stdout:默认模式。在此配置中,emit()方法等价于:

    defemit(metrics):importjsonprint(json.dumps(metrics))
  • fifo:在基准ai基础设施中运行时,这是使用的模式。

先进先出模式

在这种模式下,emit()方法将json字符串写入创建为 named pipe。它不会not写入stdout

请记住,客户端库不会not创建named pipe文件,这是委托给 “守护进程”,它将与基准ai基础设施中的基准进程一起运行。

守护进程负责:

  • 创建命名管道
  • 阅读此管道中的内容
  • 将此管道的内容发布到Metrics服务器(例如:Elastic Search、CloudWatch等)

第一次调用^ {CD1>},它检查文件的存在并使用它。如果它不存在,它 等待一段时间,然后放弃并引发异常FifoNotCreatedInTimeError

先进先出模式配置

这些环境变量控制客户端库的行为:

  • BENCHMARK_AI_FIFO_FILEPATH:将创建为命名管道的文件的路径。 默认值:/tmp/benchmark-ai-fifo
  • ^ }:客户端库将等待的最大时间量 要创建的命名管道文件。 类型为float,单位为seconds,默认值为10
  • BENCHMARK_AI_FIFO_WAIT_TIME_STEP:客户端库在每次检查之前等待的时间 再次检查^ {EM1}$$命名管道文件EEM>的存在性。 类型为float,单位为seconds,默认值为0.5

important:这些环境变量用于内部使用基准ai基础设施。它们被列出 此处仅供参考。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将springboot war部署到debian jetty8   java破坏了函数,即使它看起来是正确的   当MockMvc不可自动编译时,java会有选择地从Spring Security向其应用单个过滤器   java AndroidStudio每秒播放n次生成的声音   JavaJBossSeam:继承的方法被拦截了吗?   ScheduledExecutorService中线程默认名称中池号的java含义   在Java中用递归方法实现类Fibonacci的递归   java虚拟路径/文件夹   java即时与ZoneDateTime。转换到另一时区   用GaussLegendre算法在java中逼近Pi   java RecyclerView findFirstVisibleItemPosition()返回1   java根据当前经过身份验证的用户的角色返回不同的JSON对象   java从内部类访问扩展类的方法   Android程序中的Java语法WRT静态方法   可选参数初始化Java字符串文字时出错