机器学习性能测试框架
项目描述
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 |