Package: trains
Allegro TrainsAuto-Magical Experiment Manager, Version Control and ML-Ops for AI"Because it’s a jungle out there":point_right: Help improve Trains by filling our 2-minuser surveyTrains is our solution to a problem we share with countless other researchers and developers in the machine
learning/deep learning universe: Training production-grade deep learning models is a glorious but messy process.
Trains tracks and controls the process by associating code version control, research projects,
performance metrics, and model provenance.We designed Trains specifically to require effortless integration so that teams can preserve their existing methods
and practices. Use it on a daily basis to boost collaboration and visibility, or use it to automatically collect
your experimentation logs, outputs, and data to one centralized server.We have a demo server up and running athttps://demoapp.trains.allegro.ai.:steam_locomotive:Getting Started Tutorial:rocket:You can try out Trains andtest your code, with no additional setup.Trains Automatically Logs EverythingWith only two lines of code, this is what you are getting:Git repository, branch, commit id, entry point and local git diffPython environment (including specific packages & versions)stdout and stderrResource Monitoring (CPU/GPU utilization, temperature, IO, network, etc.)Hyper-parametersArgParser for command line parameters with currently used valuesExplicit parameters dictionaryTensorflow Defines (absl-py)Initial model weights fileModel snapshots (With optional automatic upload to central storage: Shared folder, S3, GS, Azure, Http)Artifacts log & store (Shared folder, S3, GS, Azure, Http)Tensorboard/TensorboardX scalars, metrics, histograms,images, audio and videoMatplotlib & SeabornSupported frameworks:PyTorch,Tensorflow,Keras,AutoKeras,XGBoostandScikit-Learn(MxNet is coming soon)Seamless integration (including version control) withJupyter NotebookandPyCharmremote debuggingAdditionally, log data explicitly usingTrains Explicit Logging.Using TrainsTrains is a two part solution:Trainspython packageauto-magically connects with your codeTrains requires only two lines of code for full integration.To connect your code with Trains:Install Trainspip install trainsAdd optional cloud storage support (S3/GoogleStorage/Azure):pipinstalltrains[s3]pipinstalltrains[gs]pipinstalltrains[azure]Add the following lines to your codefrom trains import Task
  task = Task.init(project_name="my project", task_name="my task")If project_name is not provided, the repository name will be used insteadIf task_name (experiment) is not provided, the current filename will be used insteadRun your code. When Trains connects to the server, a link is printed. For exampleTrains Results page:
  https://demoapp.trains.allegro.ai/projects/76e5e2d45e914f52880621fe64601e85/experiments/241f06ae0f5c4b27b8ce8b64890ce152/output/logOpen the link and view your experiment parameters, model and tensorboard metricsSee exampleshereTrains Serverfor logging, querying, control and UI (Web-App)We already have a demo server up and running for you athttps://demoapp.trains.allegro.ai.You can try out Trains without the need to install your owntrains-server, just add the two lines of code, and it will automatically connect to the Trains demo-server.Note that the demo server resets every 24 hours and all of the logged data is deleted.When you are ready to use your own Trains server, go ahead andinstalltrains-server.Configuring Your Own Trains serverInstall and runtrains-server(seeInstalling the Trains Server)Run the initial configuration wizard for your Trains installation and follow the instructions to setup Trains package
(http://trains-server-ip:portand user credentials)trains-initAfter installing and configuring, you can access your configuration file at~/trains.confSample configuration file availablehere.Who We AreTrains is supported by the same team behindallegro.ai,
where we build deep learning pipelines and infrastructure for enterprise companies.We built Trains to track and control the glorious but messy process of training production-grade deep learning models.
We are committed to vigorously supporting and expanding the capabilities of Trains.Why Are We Releasing Trains?We believe Trains is ground-breaking. We wish to establish new standards of experiment management in
deep-learning and ML. Only the greater community can help us do that.We promise to always be backwardly compatible. If you start working with Trains today,
even though this project is currently in the beta stage, your logs and data will always upgrade with you.LicenseApache License, Version 2.0 (see theLICENSEfor more information)Documentation, Community & SupportMore information in theofficial documentationandon YouTube.For examples and use cases, check theexamples folderandcorresponding documentation.If you have any questions: post on ourSlack Channel, or tag your questions onstackoverflowwith 'trains' tag.For feature requests or bug reports, please useGitHub issues.Additionally, you can always find us attrains@allegro.aiContributingSee the TrainsGuidelines for Contributing.May the force (and the goddess of learning rates) be with you!