{ "info": { "author": "Matthew Rahtz", "author_email": "matthew.rahtz@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# Easy TensorFlow Logging\n\n[![CircleCI](https://circleci.com/gh/mrahtz/easy-tf-log.svg?style=shield)](https://circleci.com/gh/mrahtz/easy-tf-log)\n\nAre you prototyping something and want to be able to _magically_ graph some value\nwithout going through all the usual steps to set up TensorFlow logging properly?\n\n`easy_tf_log` is a simple module to do just that.\n\n```\nfrom easy_tf_log import tflog\n```\n\nthen you can do\n\n```\nfor i in range(10):\n tflog('really_interesting_variable_name', i)\n```\n\nand you'll find a directory `logs` that you can point TensorBoard to\n\n`$ tensorboard --logdir logs`\n\nto get\n\n![](https://github.com/mrahtz/easy-tf-log/blob/master/tensorboard_screenshot.png)\n\nSee [`demo.py`](demo.py) for a full demo.\n\nBased on logging code from OpenAI's [baselines](https://github.com/openai/baselines).\n\n## Installation\n\n`pip install easy-tf-log`\n\nNote that TensorFlow must be installed separately.\n\n## Documentation\n\n`easy-tf-log` supports logging using either a global logger or an instantiated logger object.\n\nThe global logger is good for very quick prototypes, but for anything more complicated,\nyou'll probably want to instantiate your own `Logger` object.\n\n### Global logger\n\n* `easy_tf_log.tflog(key, value, step=None)`\n * Logs `value` (int or float) under the name `key` (string).\n * `step` (int) sets the step associated with `value` explicitly.\n If not specified, the step will increment on each call.\n* `easy_tf_log.set_dir(log_dir)`\n * Sets the global logger to log to the specified directory.\n * `log_dir` can be an absolute or a relative path.\n* `easy_tf_log.set_writer(writer)`\n * Sets the global logger to log using the specified `tf.summary.FileWriter` instance.\n\nBy default (i.e. if `set_dir` is not called), the global logger logs to a `logs` directory\nautomatically created in the working directory.\n\n### Logger object\n\n* `logger = easy_tf_log.Logger(log_dir=None, writer=None)`\n * Create a `Logger`.\n * `log_dir`: an absolute of relative path specifying the directory to log to.\n * `writer`: an existing `tf.summary.FileWriter` instance to use for logging.\n * If neither `log_dir` nor `writer` are specified, the logger will log to a `logs` directory in the\n working directory. If both are specified, the constructor will raise a `ValueError`.\n* `logger.log_key_value(key, value, step=None)`\n * See `tflog`.\n* `logger.log_list_stats(key, values_list)`\n * Log the minimum, maximum, mean, and standard deviation of `values_list` (a list of ints or floats).\n* `logger.measure_rate(key, value)`\n * Log the rate at which `value` (int or float) changes per second.\n * The first call internally stores the time of the first value;\n the second call logs the change between the second value and the first value divided by the\n time between the calls; etc.\n* `logger.set_dir(log_dir)`\n * See `easy_tf_log.set_dir(log_dir)`.\n* `logger.set_writer(writer)`\n * See `easy_tf_log.set_writer(writer)`.\n* `logger.close()`\n * Flush logs and close the log file handle.\n\n\n", "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/mrahtz/easy-tf-log", "keywords": "tensorflow graph graphs graphing", "license": "", "maintainer": "", "maintainer_email": "", "name": "easy-tf-log", "package_url": "https://pypi.org/project/easy-tf-log/", "platform": "", "project_url": "https://pypi.org/project/easy-tf-log/", "project_urls": { "Homepage": "https://github.com/mrahtz/easy-tf-log" }, "release_url": "https://pypi.org/project/easy-tf-log/1.11/", "requires_dist": null, "requires_python": "", "summary": "TensorFlow logging made easy", "version": "1.11" }, "last_serial": 5831497, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "64db31ea6e0584be13ff1cc857129584", "sha256": "b27970e1b16fac2a1b37578eca69ae81c1853bd5fe990243c200b67b4f502353" }, "downloads": -1, "filename": "easy_tf_log-1.1.tar.gz", "has_sig": false, "md5_digest": "64db31ea6e0584be13ff1cc857129584", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2076, "upload_time": "2018-05-15T12:06:40", "url": "https://files.pythonhosted.org/packages/48/5e/fb9f73d7655f893ded64acbae41dd672ee87e1faf7cfdf4d41e55d5478d7/easy_tf_log-1.1.tar.gz" } ], "1.10": [ { "comment_text": "", "digests": { "md5": "dec25b6b29338225d84f721496004489", "sha256": "8674540e88562c25ca3f4eeee11acc4bfa95a8dc57c7ca2e1e07363db4681e50" }, "downloads": -1, "filename": "easy_tf_log-1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "dec25b6b29338225d84f721496004489", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3199, "upload_time": "2019-03-19T21:23:56", "url": "https://files.pythonhosted.org/packages/54/97/60ceec0c5755a3a829a3dca8bd5b4795376815d5815c0f84188679697b9d/easy_tf_log-1.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fde69ec4a70b55e6165ee76ff13767ca", "sha256": "888e8dcb1137a3b75f9f0931b8d519668b8f16e16b247764c262b381897ad8a2" }, "downloads": -1, "filename": "easy_tf_log-1.10.tar.gz", "has_sig": false, "md5_digest": "fde69ec4a70b55e6165ee76ff13767ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2898, "upload_time": "2019-03-19T21:23:58", "url": "https://files.pythonhosted.org/packages/14/4c/13c139b5147e256871e57363927717c833e9bfdb76de7663658a27c03a89/easy_tf_log-1.10.tar.gz" } ], "1.11": [ { "comment_text": "", "digests": { "md5": "e9c698b3881f04f42578dc323f8b34d6", "sha256": "5209075518550bd384656d7458a4a98ac2ab4c9331f70339cd946c3fe1008d6a" }, "downloads": -1, "filename": "easy_tf_log-1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "e9c698b3881f04f42578dc323f8b34d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4608, "upload_time": "2019-09-15T11:03:57", "url": "https://files.pythonhosted.org/packages/19/21/96cf0f35116bf4e64477157cc2784b0a33910d38a96309b0c63e2ec83abc/easy_tf_log-1.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7079d6cebfde60a0436388b0f9129c90", "sha256": "cbad2d244dc405c4c1701511c1f24a2a2aa9ae735f9c067743f37f0faf02106b" }, "downloads": -1, "filename": "easy_tf_log-1.11.tar.gz", "has_sig": false, "md5_digest": "7079d6cebfde60a0436388b0f9129c90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3575, "upload_time": "2019-09-15T11:03:59", "url": "https://files.pythonhosted.org/packages/1f/91/6f6fef9b02fd7038df166fce44adb2191be85339f77bd583854e4172c3c6/easy_tf_log-1.11.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "e6d2bd7e9218b8c0941e472d99b5d71c", "sha256": "a842b9d0683b0eb9564c1411b83dbcb52a5fce9a38667749964ba941615a9c98" }, "downloads": -1, "filename": "easy_tf_log-1.2e.tar.gz", "has_sig": false, "md5_digest": "e6d2bd7e9218b8c0941e472d99b5d71c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2199, "upload_time": "2018-05-07T13:12:48", "url": "https://files.pythonhosted.org/packages/43/d0/ce4dce959b5f9ed1f6293399ef7702380e8bf7b688b9a5b53cac1b127d02/easy_tf_log-1.2e.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "fe3d6cce164a36ed9628f65d7101a5df", "sha256": "c5c351822ced08b484930d9347d11f6f99a6fcb4e8e81184140197750f51c8bc" }, "downloads": -1, "filename": "easy_tf_log-1.4.tar.gz", "has_sig": false, "md5_digest": "fe3d6cce164a36ed9628f65d7101a5df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2202, "upload_time": "2018-05-07T13:15:24", "url": "https://files.pythonhosted.org/packages/bb/52/116df972c2371edf8b52ffa5de972ddf6c983a181b4163f4e4ddbe1a7b0f/easy_tf_log-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "735dec2189258fe93bfc02781b85090a", "sha256": "b9dff048f03f200836aa25a732e31df79405c76c1830619ed6a99077124038ad" }, "downloads": -1, "filename": "easy_tf_log-1.5.tar.gz", "has_sig": false, "md5_digest": "735dec2189258fe93bfc02781b85090a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2204, "upload_time": "2018-05-11T22:10:10", "url": "https://files.pythonhosted.org/packages/1a/4e/332251c20c03bf48caa42ab53dd6fdb3a6d30914ad70b86073e0c7b16f1b/easy_tf_log-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "2c7b97d5678dd3a931588091171b8cd9", "sha256": "1c53860d21d89def1e7c5ae4f0610ac6b60426b7120a8c1d4481c6c336130e0b" }, "downloads": -1, "filename": "easy_tf_log-1.6.tar.gz", "has_sig": false, "md5_digest": "2c7b97d5678dd3a931588091171b8cd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2474, "upload_time": "2018-05-15T12:03:04", "url": "https://files.pythonhosted.org/packages/89/4e/a7e9b2bfdc9f7db8ec28efdae922945ccce1d8a23dcffdb09124e9299f0e/easy_tf_log-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "7501fd94963c6a1179bf1b8c9ee3b60c", "sha256": "a42d1ec41f146d5900d104e36db580e0df9ec98406ee5cd7014ed82bde97f64b" }, "downloads": -1, "filename": "easy_tf_log-1.7.tar.gz", "has_sig": false, "md5_digest": "7501fd94963c6a1179bf1b8c9ee3b60c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2586, "upload_time": "2018-06-21T07:28:45", "url": "https://files.pythonhosted.org/packages/37/92/3965d4eb3dc4293ee39b14c881a7577f1197106762a07268bddb1c45ee4b/easy_tf_log-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "173f8359aa5b4180b47d7ace3993cd56", "sha256": "4e59ba645faf5149c6a66aefa2feb11d921a4afa7357ca6d3ea5ad5c2916947d" }, "downloads": -1, "filename": "easy_tf_log-1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "173f8359aa5b4180b47d7ace3993cd56", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3001, "upload_time": "2019-02-17T06:14:15", "url": "https://files.pythonhosted.org/packages/cd/86/4209babc8a03f089422431c7e4a409c27e7d125bb3ec75e9a726376516e6/easy_tf_log-1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfbc67450123115346ca9eb8ad25ad77", "sha256": "5634c29cd1fdb262e179dc61f5b11c09d177489b78c4906759b514ff4826dcdb" }, "downloads": -1, "filename": "easy_tf_log-1.8.tar.gz", "has_sig": false, "md5_digest": "cfbc67450123115346ca9eb8ad25ad77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2703, "upload_time": "2019-02-17T06:14:16", "url": "https://files.pythonhosted.org/packages/13/7f/80bb826a0f180beeacd37f7dde39de7e165735528677edbe22d446ba46fb/easy_tf_log-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "50e315327afc59391e84200572bd641e", "sha256": "20dac6922457259e2cbc3abd6655243fff1335ccab9a666d0d29a7e547059d5d" }, "downloads": -1, "filename": "easy_tf_log-1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "50e315327afc59391e84200572bd641e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3088, "upload_time": "2019-03-15T19:16:37", "url": "https://files.pythonhosted.org/packages/34/a2/2c30340ab414a55632eb352836f3feb79264572a8a5e4a241fe2c1445fff/easy_tf_log-1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1df7da7a7c1a2842ec84a8e1d0419f5d", "sha256": "113f56c61995d1e0422dc34f12a65d1383d3603744e310840ecb444e2e7efe9c" }, "downloads": -1, "filename": "easy_tf_log-1.9.tar.gz", "has_sig": false, "md5_digest": "1df7da7a7c1a2842ec84a8e1d0419f5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2794, "upload_time": "2019-03-15T19:16:39", "url": "https://files.pythonhosted.org/packages/88/b2/ba4bd537addb48690626ab8821311bb4b3efde810ef30fcc4eee2f4bb730/easy_tf_log-1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e9c698b3881f04f42578dc323f8b34d6", "sha256": "5209075518550bd384656d7458a4a98ac2ab4c9331f70339cd946c3fe1008d6a" }, "downloads": -1, "filename": "easy_tf_log-1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "e9c698b3881f04f42578dc323f8b34d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4608, "upload_time": "2019-09-15T11:03:57", "url": "https://files.pythonhosted.org/packages/19/21/96cf0f35116bf4e64477157cc2784b0a33910d38a96309b0c63e2ec83abc/easy_tf_log-1.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7079d6cebfde60a0436388b0f9129c90", "sha256": "cbad2d244dc405c4c1701511c1f24a2a2aa9ae735f9c067743f37f0faf02106b" }, "downloads": -1, "filename": "easy_tf_log-1.11.tar.gz", "has_sig": false, "md5_digest": "7079d6cebfde60a0436388b0f9129c90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3575, "upload_time": "2019-09-15T11:03:59", "url": "https://files.pythonhosted.org/packages/1f/91/6f6fef9b02fd7038df166fce44adb2191be85339f77bd583854e4172c3c6/easy_tf_log-1.11.tar.gz" } ] }