Skip to main content

This project is an local experiment record manager for python based on SQLite DMS, suitable for recording experiment and analysing experiment data with a web UI, which can help you efficiently save your experiment settings and results for later analysis.

Project description

PyERM (Python Experiment Record Manager)

This project is an experiment record manager for python based on SQLite DMS, which can help you efficiently save your experiment settings and results for later analysis.

In the current version, all operations will be performed locally.

Introduction

This project is used to save the settings and results of any experiment consists of three parts: method, data, task.

Besides, the basic information and detail information of the experiment will also be recorded.

All data you want can be efficiently saved by API provided without knowing the detail implement, but I suggest reading the table introduction for further dealing with the records.

Install Introduction

All you need to do for using the python package is using the following command:

pip install pyerm

Workflow Introduction

Table Define & Init

Before starting the experiment, you need to init the tables you need for the experiment by three init function: data_init(), method_init(), task_init().

You need to input the name and experiment parameter for the first two. The function can automatically detect the data type, and they will create the table if not exist. If you want to define the DMS type yourself, you can input a param_def_dict to these function, whose key means column name, and value means column SQL type define, like {"people", "TEXT DEFAULT NULL"}.

Experiment

The experiment recorder mainly consists of four parts, experiment_start(), experiment_over(), experiment_failed(), detail_update(). From the name of these function, you can easily know where and how to use them.

experiment_start() saves the basic experiment information before experiment formally starts and will set the experiment status to running.

experiment_over() saves the experiment results after experiment ends and will set the experiment status to over.

experiment_failed() saves the reason why experiment failed and will set the experiment status to failed.

detail_update() saves the intermediate results. It's optional, and if you never use it and don't manually set the define dict, the detail table may not be created.

Scripts Introduction

export_xls

Export the content of a SQLite database to an Excel file

export_xls db_path(default ~/experiment.db) output_path(default ./experiment_record.xls)

db_merge

Merge two SQLite databases.

db_merge db_path_destination db_path_source

Table Introduction

Experiment Table

All experiments' basic information will be recorded in the experiment_list table. It contains the description of the method, the method (with its setting id) & data (with its setting id) & task, the start & end time of the experiment, useful & total time cost, tags, experimenters, failure reason and the experiment status, each experiment is identified by the experiment id.

Method Table

Each Method Table is identified by its corresponding method name, and any different method will be assigned a different table for saving its different parameter setting, such as method-specific hyper-parameters, etc. The table is used to save different parameter for every method.

The only necessary column for method table is the method setting id, which will be set automatically, other specific column is set by users.

Data Table

Each Data is identified by its corresponding data name, and any different data will be assigned a different table for saving its different parameter setting, such as data-specific preprocess parameters, etc. The table is used to save different parameter for every data.

The only necessary column for method table is the data setting id, which will be set automatically, other specific column is set by users.

Result Table

Each Result Table is identified by its corresponding task name, and different tasks will be assigned with different tables for saving its different experiment results, such as accuracy for classification, normalized mutual information for clustering.

Besides, this table offers several columns for saving image in order for latter visualization.

The only necessary column for result table is the experiment id, other specific column is set by users.

Detail Table

Each Detail Table is identified by its corresponding method name, different methods are related to different detail table. During an experiment, you may need to record some intermediate results, which can be saved in this table.

The only necessary column for detail table is the detail id (which can be set automatically) and the experiment id, other specific column is set by users.

Future Plan

  • Some Scripts For Better Usage
  • Experiment Summary Report Generate
  • Web UI Visualize & Commonly Used Analyze Fuctions

Contact

My email is yx_shao@qq.com. If you have any question or advice, please contact me.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyerm-0.2.2.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

pyerm-0.2.2-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file pyerm-0.2.2.tar.gz.

File metadata

  • Download URL: pyerm-0.2.2.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pyerm-0.2.2.tar.gz
Algorithm Hash digest
SHA256 8b2508d64d4dc3801da7679fd9df6aa2727695b884cbfb302218c206bffea242
MD5 ce1603b118c3a4d2beca70275fa18515
BLAKE2b-256 a2b3914aa357dd05050fb877892dce7239fe7f043b365c6d9ca5bb88a5b22f38

See more details on using hashes here.

File details

Details for the file pyerm-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pyerm-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pyerm-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 60053a2b0a9906cc21e2dedf1a2271a67e7f36d4e937339b75ed754f55fae3e7
MD5 52bfd686550219ab89bc2444e6e0f7c2
BLAKE2b-256 bf6d6f449175813643b9dc46938dc5f42238fbeb9ee3d61063875d882c9b5810

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page