TfExperiment
A simple library to manage Tensorflow experiments though git and reduce boilerplate. Compatible with tf 1.x
Usage
This library relies of git to manage experiments. Each experiment should be a unique git branch, and the name of the experiment, if not give, will be the current git branch.
experiment = tfExperiment.Experiment(finalizeGraph = False)
experiment.saveGraph()
# output
# > graph location ======================================>
# > tensorboard --logdir output\experimentName\graph
# with with
with experiment.trainingSession(epochs = 125, saveAfter = 2, testAfter = 2) as ts:
ts.saveGraph() # function to save the graph
ts.trainCallback = runTrainingCallback
ts.testCallback = runTestCallback
# as function
experiment.train(runTrainingCallback)
experiment.test(runTestCallback)
API
__init__(name = None, finalizeGraph = False, location = os.path.join(os.getcwd(), 'output'))
-
name: string: Name of the experiment, if no name is provided the name of the current git branch will be used. -
finalizeGraph: bool: Finalizes the graph. Attention I have not tried this feature much. -
location: string: absolute path where the experiment results where saved in a folder with same name as name
train(trainCallback, epochs = 1, saveModelAfter = 2, saveGraph = False, testCallback = None, testAfter = 0)
Runs the training and validates/test the model
-
trainCallback: function: Function to be run at each epoch. This should contain your loop with the training actions to execute for each batch. The training callback can take 2 parameters: session (current tf.session), and env (if env is used you should use the exact name) experiment environment with access to functionalities like timer and dataSaver. -
epochs: integer: Number of epochs to run, that is to say the number of times the traininCallbacks will be called. Attention: the experiment object keeps track of the number of epochs run so far, so if you callexperiment.trainagain, the epoch number will continue to grow from the last epoch number. -
saveModelAfter: integer: Save the model after n epochs have run. This only considers the current run. -
saveGraph: bool: If we should save the graph at the current run. -
testCallback: function: Function to call to test/validate the current network. Similar to trainCallback. -
testAfter: integer: test the model after n epochs have run. This only considers the current run.
test(testCallback)
Runs the testing/validation of the model once
testCallback: function: Function to call to test/validate the current network. Similar to trainCallback.
env: Box object
The env object contains
env.training.currentEpoch: integer: number of epochs since the instance was initialized.env.training.currentEpoch: integer: number of epochs since the instance was initialized.env.training.dataSavePath: path string: path in which the data will be used if dataSaver is used during training.env.training.dataSaver: dataSaver Instance: dataSaver instance (initialized with env.training.dataSavePath) for training to the training file.env.testing.dataSavePath: path stringpath in which the data will be used if dataSaver is used during testing.env.testing.dataSaver: dataSaver Instance: dataSaver instance (initialized with env.testing.dataSavePath) for testing to the training file.
Proposed New API
def TrainExperiment(Experiment):
def __init__(self, constructor, ...):
#someconfig
#self.nrTotEpochs
#self.epochsToValidateAfter
#...
def beforeEpoch
def afterEpoch
def beforeSave
def afterSave
def beforeTest
def afterTest
def beforeIteration
def afterIteration
def train(session, data, dataProvider = None):
return 0 #trainingLoopPerSession
def validate(session, data, dataProvider = None):
return 0 #trainingLoopPerSession
experiment(TrainExperiment)
Metadata
Release files for tfExperiment 1.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tfExperiment-1.1.7.tar.gz | 8.3 kB | Without provenance | Details for tfExperiment-1.1.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tfExperiment-1.1.7-py3-none-any.whl | Python 3 | none | any | Details for tfExperiment-1.1.7-py3-none-any.whl |
Total release size: 16.9 kB
Release files / tfExperiment-1.1.7.tar.gz
| Download URL | tfExperiment-1.1.7.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
087b7a2dff6122ca19ee0d0bc7eab1501d7c45223bb7d85d669f23c110cf16f4
|
|
BLAKE2b-256 checksum How to use checksums |
062efde37ce5b4eccfaa09f517f6bb3fbd707efabb5d2baf9076a2eb68946488
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.27.0 CPython/3.6.7
|
Release files / tfExperiment-1.1.7-py3-none-any.whl
| Download URL | tfExperiment-1.1.7-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0f042e839ef20f3dfd92302044f79e28db1b48542959b7b9fadad67ec3ae2a31
|
|
BLAKE2b-256 checksum How to use checksums |
a02091feee6e71a28d9508e0aaca6047493693361d9191d5c9461ccedb15386d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.27.0 CPython/3.6.7
|
Security for tfExperiment 1.1.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.