机器学习性能测试框架
项目描述
tempeh
tempeh是一个框架,用于
TEst
Machine learning
PErformance
exHaustively
包括跟踪内存使用和运行时间。这对于作为您存储库性能测试的可插入工具特别有用。通常,人们希望定期在不同的数据集和/或使用多个模型上运行它们,以捕获与运行时间或内存消耗相关的回归。这应该像
import pytest
from time import time
from tempeh.configurations import datasets, models
@pytest.mark.parametrize('Dataset', datasets.values())
@pytest.mark.parametrize('Model', models.values())
def test_fit_predict_regression(Dataset, Model):
dataset = Dataset()
X_train, X_test = dataset.get_X()
y_train, y_test = dataset.get_y()
model = Model()
max_execution_time = get_max_execution_time(dataset, model)
if model.compatible_with_dataset(dataset):
start_time = time()
model.fit(X_train, y_train)
model.predict(X_test)
duration = time() - start_time
assert duration < max_execution_time
安装
tempeh依赖于各种包来提供模型,包括tensorflow
、torch
、xgboost
、lightgbm
。要安装tempeh
的发行版,只需运行
pip install tempeh
常见问题
- 如果您正在使用32位Python版本,您可能需要首先切换到64位Python版本,才能成功安装tensorflow。
- 如果
torch
的安装失败,请尝试使用pytorch网站上的建议,为您的操作系统上的Python版本使用不带CUDA的稳定版本。 - 如果
lightgbm
或xgboost
的安装失败,请尝试使用小于20.0的pip版本,直到其错误被解决。
结构
数据集
数据集(位于datasets/
目录中)封装了用于测试的不同数据集。
要添加新的数据集
- 在
datasets/
目录中创建一个名为[name]_datasets.py
的Python文件 - 继承
BasePerformanceDatasetWrapper
。命名约定是[dataset_name]PerformanceDatasetWrapper
- 在
__init__
中加载数据集并调用super().__init__(data, targets, size)
- 将类添加到
__init__.py
- 确保类包含类变量
task
、data_type
和size
- 在
configurations.py
中向datasets
字典添加条目。
模型
模型(models/
目录)封装不同的机器学习模型。
要添加新的数据集
- 在
models/
目录中创建一个名为[name]_model.py
的 Python 文件 - 将
BaseModelWrapper
子类化,并将类命名为[name]ModelWrapper
- 在
__init__
中训练模型;我们期望格式为__init__(self, ...)
- 模型必须包含
tasks
和algorithm
- 在
configurations.py
中向models
字典添加条目。
维护者
按字母顺序
贡献
要贡献,请查看我们的贡献指南。
问题
常规(非安全)问题
请通过Github issues提交报告。维护者将在合理的时间内响应并处理问题,如下所示
- 错误:将错误分类为
bug
并根据严重性提供估计时间表 - 功能请求:将功能请求分类为
feature request
并提供估计时间表 - 问题或讨论:将问题分类为
question
并响应或通知/识别合适的专家进行响应
维护者应尽可能链接重复的问题。
报告安全问题
请参阅我们关于报告安全问题的指南。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
tempeh-0.1.12.tar.gz (22.9 kB 查看哈希)
构建分布
tempeh-0.1.12-py3-none-any.whl (39.4 kB 查看哈希)
关闭
tempeh-0.1.12.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9565fbeb2bef5b23f3aa5412fa33956b7df520d294e27d403f1e3a02e3a26b65 |
|
MD5 | 85629780899e8039343572640a29bd60 |
|
BLAKE2b-256 | 761b6cec6ab29489a619141fa0312da7157acebdf2cf9ffe37ecfd4a61365ea1 |
关闭
tempeh-0.1.12-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8bf4d276d09a301ff8c5e105855d03a7d1e89f495b5ad913edaf3d5d16a39e03 |
|
MD5 | 352136e7298e661be498e64de1b7d9d8 |
|
BLAKE2b-256 | b71bd016f8d2ac250b7df50ffb630c3f71371d35ac92deb80653b0e4d2f9c1a9 |