GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

IDSIA

sacred – Sacredは、IDSIAで開発された実験の設定、整理、記録、再現を支援するツール

投稿日:

Sacredは、IDSIAで開発された実験の設定、整理、記録、再現を支援するツールです。

神聖

すべての実験は神聖である
すべての実験は素晴らしい
実験が浪費された場合
神はかなり怒っている

Sacredは、実験の構成、整理、記録、再現を支援するツールです。 実際の実験で必要となるすべての面倒なオーバーヘッド作業を行うように設計されています。

  • あなたの実験のすべてのパラメータを追跡する
  • さまざまな設定で簡単に実験を実行できます
  • データベース内の個々の実行の設定を保存する
  • 結果を再現する

Sacredは、次の主なメカニズムによってこれを実現します。

  • ConfigScopes関数内のローカル変数を使って非常に便利な方法で、実験で使用するパラメータを定義できます。
  • 設定注入 :すべての機能から設定のすべてのパラメータにアクセスできます。 それらは自動的に名前で注入されます。
  • コマンドラインインターフェイス :各実験ごとに強力なコマンドラインインターフェイスを使用して、パラメータを変更してさまざまなバリエーションを実行できます。
  • Observers :Sacredは、実験、その依存関係、使用した設定、実行されたマシン、そしてもちろん結果に関するすべての種類の情報を記録するオブザーバを提供します。 後で簡単にアクセスできるように、これらをMongoDBに保存することができます。
  • 自動シーディングは、結果が再現可能なように、実験のランダム性を制御するのに役立ちます。

虹彩データセット上のSVMを訓練するためのスクリプト 神聖な実験と同じスクリプト
from numpy.random import permutation
from sklearn import svm, datasets





C = 1.0
gamma = 0.7



iris = datasets.load_iris()
perm = permutation(iris.target.size)
iris.data = iris.data[perm]
iris.target = iris.target[perm]
clf = svm.SVC(C, 'rbf', gamma=gamma)
clf.fit(iris.data[:90],
        iris.target[:90])
print(clf.score(iris.data[90:],
                iris.target[90:]))
from numpy.random import permutation
from sklearn import svm, datasets
from sacred import Experiment
ex = Experiment('iris_rbf_svm')

@ex.config
def cfg():
  C = 1.0
  gamma = 0.7

@ex.automain
def run(C, gamma):
  iris = datasets.load_iris()
  per = permutation(iris.target.size)
  iris.data = iris.data[per]
  iris.target = iris.target[per]
  clf = svm.SVC(C, 'rbf', gamma=gamma)
  clf.fit(iris.data[:90],
          iris.target[:90])
  return clf.score(iris.data[90:],
                   iris.target[90:])

ドキュメンテーション

ドキュメントはReadTheDocsでホストされています

インストール

あなたはpipを使ってPython Package Indexから直接インストールすることができます:

霊的にインストールする

あるいは手動でやりたいのであれば、gitから現在のバージョンをチェックアウトして自分でインストールすることができます:

CD神聖な
python setup.py install

numpyパッケージとpymongoパッケージをインストールすることもpymongoます。 オプションの依存関係ですが、いくつかの優れた機能を提供します:

pip install numpy、pymongo

テスト

神聖なテストはpy.testパッケージを使用します。 以下のような神聖なディレクトリでpy.test実行することでそれらを実行することができます:

py.test

toxの設定ファイルもありますので、 次のようなさまざまなPythonバージョンのテストを自動的に実行できます:

フロントエンド

この時点では、神聖な(私が知っている)によって作成されたデータベースエントリに2つのフロントエンドがあります。 それらは別々のプロジェクトとして外部的に開発されています。

サクレボード

Sacredboardは、MongoDBに格納されている神聖な実行に対するWebベースのダッシュボードインターフェイスです。

SacredBrowser

SacredBrowserは、聖なる実験によって作成されたMongoDBエントリをブラウズするためのPyQt4アプリケーションです。 機能には、カスタムクエリ、結果の並べ替え、保存されたソースコードへのアクセスなどがあります。 インストールは不要で、ローカルデータベースまたはネットワーク経由で接続できます。

預言者

Prophetは神聖な実験によって作成されたMongoDBエントリへのWebインターフェイスの初期プロトタイプであり、これは中止されています。 RestHeartを実行してデータベースにアクセスする必要があります。

関連プロジェクト

スマトラ

スマトラは、数値に基づいてプロジェクトを管理および追跡するためのツールです
シミュレーションおよび/または分析を行い、再現性のある研究を支援します。
これは、自動化された電子ラボ用ノートブックと考えることができます
計算プロジェクト。

スマートトラは、プロジェクトを初期化してから任意のコード(Pythonだけでなく)を実行するコマンドラインツールを提供することで、異なるアプローチを採用しています。 SQLデータベース内のすべての実行に関する情報を追跡し、すばらしいブラウザツールを提供します。 これは実行されるコードとあまり密接に統合されないため、非Pythonの実験に簡単に適用できます。 しかし、これはまた、各実験でより多くのセットアップが必要であり、ファイルを使用して設定を行う必要があることを意味します。 非Python実験を実行する必要がある場合や、追加のセットアップ/設定のオーバーヘッドでOKの場合は、このプロジェクトを使用してください。

将来のガジェット研究所

FGLabは、プロトタイピングを行うために設計された機械学習ダッシュボードです
実験は簡単です。 実験の詳細と結果はデー​​タベースに送られ、
分析が完了した後に実行されることを可能にする。 サーバー
FGLabであり、クライアントはFGMachinesです。

スマトラと同様に、FGLabは任意のプログラムから実行を追跡できる外部ツールです。 プロジェクトはJSONスキーマを介して設定され、プログラムはコマンドラインオプションでこれらの設定を受け入れる必要があります。 FGLabは、いくつかのマシンで実行を分散させることによって、基本スケジューラの役割も果たします。

CDE

プログラムの実行中にシステムコールをトレースすることにより、CDEは使用されているすべてのファイルとライブラリのスナップショットを作成し、UNIXプログラムの実行を再現できるようにします。 それ再現性を解決するだけですが、完全にそうします。

ライセンス

このプロジェクトは、 MITライセンスの条件でリリースされています。







-IDSIA
-, , , , , ,

執筆者: