{ "info": { "author": "Ravindra Marella", "author_email": "mv.ravindra007@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Training utilities for TensorFlow.\n\n\n\n\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n\t- [Model Function](#model-function)\n\t- [Training Mode](#training-mode)\n- [License](#license)\n\n\n\n\n## Installation\n\n[Install TensorFlow]:\n\n```sh\npip install tensorflow\n```\n\nand run:\n\n```sh\npip install train\n```\n\nIt is recommended to use a [virtual environment].\n\n\n## Getting Started\n\n```py\nfrom train import Model, GradientDescent\nimport tensorflow as tf\n\n# Define the network architecture - layers, number of units, activations etc.\ndef network(inputs):\n hidden = tf.layers.Dense(units=64, activation=tf.nn.relu)(inputs)\n outputs = tf.layers.Dense(units=10)(hidden)\n return outputs\n\n# Configure the learning process - loss, optimizer, evaluation metrics etc.\nmodel = Model(network,\n loss='sparse_softmax_cross_entropy',\n optimizer=GradientDescent(0.001),\n metrics=['accuracy'])\n\n# Train the model using training data\nmodel.train(x_train, y_train, epochs=30, batch_size=128)\n\n# Evaluate the model performance on test or validation data\nloss_and_metrics = model.evaluate(x_test, y_test)\n\n# Use the model to make predictions for new data\npredictions = model.predict(x)\n# or call the model directly\npredictions = model(x)\n```\n\nMore configuration options are available:\n\n```py\nmodel = Model(network,\n loss='sparse_softmax_cross_entropy',\n optimizer=GradientDescent(0.001),\n metrics=['accuracy'],\n model_dir='/tmp/my_model')\n```\n\nYou can also use custom functions for loss and metrics:\n\n```py\ndef custom_loss(labels, outputs):\n pass\n\ndef custom_metric(labels, outputs):\n pass\n\nmodel = Model(network,\n loss=custom_loss,\n optimizer=GradientDescent(0.001),\n metrics=['accuracy', custom_metric])\n```\n\n### Model Function\n\nTo have more control, you may configure the model inside a function using `Estimator` class:\n\n```py\nfrom train import Estimator, PREDICT\nimport tensorflow as tf\n\ndef model(features, labels, mode):\n # Define the network architecture\n hidden = tf.layers.Dense(units=64, activation=tf.nn.relu)(features)\n outputs = tf.layers.Dense(units=10)(hidden)\n predictions = tf.argmax(outputs, axis=1)\n # In prediction mode, simply return predictions without configuring learning process\n if mode == PREDICT:\n return predictions\n\n # Configure the learning process for training and evaluation modes\n loss = tf.losses.sparse_softmax_cross_entropy(labels, outputs)\n optimizer = tf.train.GradientDescentOptimizer(0.001)\n accuracy = tf.metrics.accuracy(labels, predictions)\n return dict(loss=loss,\n optimizer=optimizer,\n metrics={'accuracy': accuracy})\n\n# Create the model using model function\nmodel = Estimator(model)\n\n# Train the model\nmodel.train(x_train, y_train, epochs=30, batch_size=128)\n```\n\n`mode` parameter specifies whether the model is used for training, evaluation or prediction.\n\n### Training Mode\n\nFor layers like `Dropout`, you may use the training mode variable:\n\n```py\nfrom train import training\n\nx = tf.layers.Dropout(rate=0.4)(x, training=training())\n```\n\n`Model` and `Estimator` classes automatically manage the training mode variable. To change it manually, use:\n\n```py\n# Enter training mode\ntraining(True, session=session)\n\n# Exit training mode\ntraining(False, session=session)\n```\n\n\n## License\n\n[MIT][license]\n\n\n[license]: /LICENSE\n[virtual environment]: https://docs.python.org/3/library/venv.html\n[Install TensorFlow]: https://www.tensorflow.org/install/", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/AppliedDeepLearning/train", "keywords": "train tensorflow neural-network deep-learning machine-learning", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "train", "package_url": "https://pypi.org/project/train/", "platform": "", "project_url": "https://pypi.org/project/train/", "project_urls": { "Homepage": "https://github.com/AppliedDeepLearning/train" }, "release_url": "https://pypi.org/project/train/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "Training utilities for TensorFlow.", "version": "0.0.3" }, "last_serial": 3845134, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "4099c984de5ee6d220365e0803721863", "sha256": "126dfe175217c4369c3019fac58cb68775d40d84bd25eb4e77c64d26d96d8bc7" }, "downloads": -1, "filename": "train-0.0.0.tar.gz", "has_sig": false, "md5_digest": "4099c984de5ee6d220365e0803721863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3697, "upload_time": "2018-04-30T18:11:00", "url": "https://files.pythonhosted.org/packages/b2/4d/2c1499971db7719d829fdd4cdd372f3251a10c2e44b89e18ae7b7d453d22/train-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "d746de8f0aaa6361bf2a3d374387ae7f", "sha256": "6d5bac41a02b97a6fc327ecab8367209771e72d08cf8ae421963826a7bd82553" }, "downloads": -1, "filename": "train-0.0.1.tar.gz", "has_sig": false, "md5_digest": "d746de8f0aaa6361bf2a3d374387ae7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3716, "upload_time": "2018-05-07T09:02:01", "url": "https://files.pythonhosted.org/packages/74/e0/7d501212e1e000ef79051ef233a89cb4a3b9e510df71b67e2066f5120000/train-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "969bffa20aba9204b29f149b8a7f5932", "sha256": "8d151a72b93ab9a35022e396221129690cf784a48f10be5a63466816529dab12" }, "downloads": -1, "filename": "train-0.0.2.tar.gz", "has_sig": false, "md5_digest": "969bffa20aba9204b29f149b8a7f5932", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3794, "upload_time": "2018-05-08T16:28:40", "url": "https://files.pythonhosted.org/packages/64/80/aef40f3a7ec8321143fdfc0ce2b130d544539618b183a885bc5fdc73e8e6/train-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "46cb8214ab78360ac2c9f60bfbba5fab", "sha256": "75fbac3ae7e177067ce4c6199b936f0b3ad47a40a44477f70ed5e48475894f2d" }, "downloads": -1, "filename": "train-0.0.3.tar.gz", "has_sig": false, "md5_digest": "46cb8214ab78360ac2c9f60bfbba5fab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3856, "upload_time": "2018-05-08T18:46:33", "url": "https://files.pythonhosted.org/packages/40/41/1ea2e51a8873917d82bd5ead4fc4dedfbf74c92ac8f3f3ce7cff55a91f8d/train-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "46cb8214ab78360ac2c9f60bfbba5fab", "sha256": "75fbac3ae7e177067ce4c6199b936f0b3ad47a40a44477f70ed5e48475894f2d" }, "downloads": -1, "filename": "train-0.0.3.tar.gz", "has_sig": false, "md5_digest": "46cb8214ab78360ac2c9f60bfbba5fab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3856, "upload_time": "2018-05-08T18:46:33", "url": "https://files.pythonhosted.org/packages/40/41/1ea2e51a8873917d82bd5ead4fc4dedfbf74c92ac8f3f3ce7cff55a91f8d/train-0.0.3.tar.gz" } ] }