{ "info": { "author": "The TF Encrypted Authors", "author_email": "contact@tf-encrypted.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Security :: Cryptography" ], "description": "# TF Big\n\nTF Big adds big number support to TensorFlow, allowing computations to be performed on arbitrary precision integers. Internally these are represented as variant tensors of [GMP](https://gmplib.org/) values, and exposed in Python through the `tf_big.Tensor` wrapper for convenience. For importing and exporting, numbers are typically expressed as strings.\n\n[![PyPI](https://img.shields.io/pypi/v/tf-big.svg)](https://pypi.org/project/tf-big/) [![CircleCI Badge](https://circleci.com/gh/tf-encrypted/tf-big/tree/master.svg?style=svg)](https://circleci.com/gh/tf-encrypted/tf-big/tree/master)\n\n## Usage\n\n```python\nimport tensorflow as tf\nimport tf_big\n\n# load large values as strings\nx = tf_big.constant([\"100000000000000000000\", \"200000000000000000000\"])\n\n# load ordinary TensorFlow tensors\ny = tf_big.convert_to_tensor(tf.constant([3, 4]))\n\n# perform computation as usual\nz = x * y\n\n# use TensorFlow sessions to evalutate the results\nwith tf.Session() as sess:\n res = sess.run(z)\n print(res)\n```\n\n## Installation\n\nPython 3 packages are available from [PyPI](https://pypi.org/project/tf-big/):\n\n```\npip install tf-big\n```\n\nSee below for further instructions for setting up a development environment.\n\n## Development\n\n### Requirements\n\nWe recommend using [Miniconda](https://docs.conda.io/en/latest/miniconda.html) or [Anaconda](https://www.anaconda.com/distribution/) to set up and use a Python 3.5 or 3.6 environment for all instructions below:\n\n```\nconda create -n tfbig-dev python=3.6\nsource activate tfbig-dev\n```\n\n#### Ubuntu\n\nThe only requirement for Ubuntu is to have [docker installed](https://docs.docker.com/install/linux/docker-ce/ubuntu/). This is the recommended way to [build custom operations for TensorFlow](https://github.com/tensorflow/custom-op). We provide a custom development container for TF Big with all dependencies already installed.\n\n#### macOS\n\nSetting up a development environment on macOS is a little more involved since we cannot use a docker container. We need four things:\n\n- Python (>= 3.5)\n- [Bazel](https://www.bazel.build/) (>= 0.15.0)\n- [GMP](https://gmplib.org/) (>= 6.1.2)\n- [TensorFlow](https://www.tensorflow.org/) (== 1.13.1)\n\nUsing [Homebrew](https://brew.sh/) we first make sure that both [Bazel](https://docs.bazel.build/versions/master/install-os-x.html#install-with-installer-mac-os-x) and GMP are installed:\n\n```\nbrew tap bazelbuild/tap\nbrew install bazelbuild/tap/bazel\nbrew install gmp\nbrew install mmv\n```\n\nThe remaining PyPI packages can then be installed using:\n\n```\npip install -r requirements-dev.txt\n```\n\n### Testing\n\n#### Ubuntu\n\nRun the tests on Ubuntu by running the `make test` command inside of a docker container. Right now, the docker container doesn't exist on docker hub yet so we must first build it:\n\n```\ndocker build -t tf-encrypted/tf-big:0.1.0 .\n```\n\nThen we can run `make test`:\n\n```\nsudo docker run -it \\\n -v `pwd`:/opt/my-project -w /opt/my-project \\\n tf-encrypted/tf-big:0.1.0 /bin/bash -c \"make test\"\n```\n\n#### macOS\n\nOnce the development environment is set up we can simply run:\n\n```\nmake test\n```\n\nThis will install TensorFlow if not previously installed and build and run the tests.\n\n### Building pip package\n\nCircleCI currently builds the pip packages for us. If you have a need to do it on your own you can just run `make build`. For linux, doing it inside the tensorflow/tensorflow:custom-op container is recommended.\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/tf-encrypted/tf-big", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "tf-big", "package_url": "https://pypi.org/project/tf-big/", "platform": "", "project_url": "https://pypi.org/project/tf-big/", "project_urls": { "Homepage": "https://github.com/tf-encrypted/tf-big" }, "release_url": "https://pypi.org/project/tf-big/0.1.3/", "requires_dist": [ "numpy (>=1.14)", "tensorflow (<2,>=1.13.1)", "tensorflow (<2,>=1.13.1) ; extra == 'tf'" ], "requires_python": ">=3.5", "summary": "Arbitrary precision integers in TensorFlow.", "version": "0.1.3" }, "last_serial": 5753942, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8c5d84d34fad659266054b568cf04757", "sha256": "8c8daaf2b86de47ff7277689b02ad0236b64a9800ffba3a3584ec691fbae7ed7" }, "downloads": -1, "filename": "tf_big-0.1.0-cp35-cp35m-macosx_10_6_x86_64.whl", "has_sig": false, "md5_digest": "8c5d84d34fad659266054b568cf04757", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": ">=3.5", "size": 270177, "upload_time": "2019-07-04T13:38:55", "url": "https://files.pythonhosted.org/packages/fd/c6/a1f635c974e4ff0c70622e3a173f5d6d8f314a0414c09808fe10bc4644a6/tf_big-0.1.0-cp35-cp35m-macosx_10_6_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "30251207e88014abf7437e23a96d711a", "sha256": "5d8cd483a7754c2b2f5c1dcc746c958f14917fb4fb41fdc8bb417ecfdd755fe6" }, "downloads": -1, "filename": "tf_big-0.1.0-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "30251207e88014abf7437e23a96d711a", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": ">=3.5", "size": 315820, "upload_time": "2019-07-04T14:22:27", "url": "https://files.pythonhosted.org/packages/94/23/1be28c918d16bdaec9fb59d5bf17fec23f2540f643dbcc45048a6b6b3222/tf_big-0.1.0-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0f017dad2c106c719adc08eddd942d3b", "sha256": "beb643fcd1d5d9f82b2b51b8efff786a4a66364684db3ce1dbe3b6069007216b" }, "downloads": -1, "filename": "tf_big-0.1.0-cp36-cp36m-macosx_10_7_x86_64.whl", "has_sig": false, "md5_digest": "0f017dad2c106c719adc08eddd942d3b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.5", "size": 270796, "upload_time": "2019-07-04T10:45:17", "url": "https://files.pythonhosted.org/packages/31/44/0b17b5a3064d350d6bec32d363f25feee1654631fdc3d28b39ded9ceace1/tf_big-0.1.0-cp36-cp36m-macosx_10_7_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8152fe0e432bfd8795aa9843f3dce4b3", "sha256": "1d96fc95edc97388f144ea90e0c3c098ba881a0f3d5141ead8b738794c4743b4" }, "downloads": -1, "filename": "tf_big-0.1.0-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8152fe0e432bfd8795aa9843f3dce4b3", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.5", "size": 315819, "upload_time": "2019-07-04T14:22:29", "url": "https://files.pythonhosted.org/packages/9f/67/e36ed8667e65dca78c0a527cb2aeefc49c4b2333ad827304be0e0f5d817c/tf_big-0.1.0-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "dd614ec347a89a9c52cac581ee85a281", "sha256": "b08b6540b51fa86ab555cb1bafff7e69c3e59a3cd5c4da0628f1b9e727f00224" }, "downloads": -1, "filename": "tf_big-0.1.0-cp37-cp37m-macosx_10_7_x86_64.whl", "has_sig": false, "md5_digest": "dd614ec347a89a9c52cac581ee85a281", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.5", "size": 270175, "upload_time": "2019-07-04T13:38:57", "url": "https://files.pythonhosted.org/packages/db/8a/c5e92dc5ee84fda04786096df4e6a6c56eefeb946bec1d784e515677e11b/tf_big-0.1.0-cp37-cp37m-macosx_10_7_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "074f49346db3da972333b62e24dacc1b", "sha256": "0631fb8fadbdbb51c0373a15b944ab69cadcac08e4cded32a1978d1963f44a18" }, "downloads": -1, "filename": "tf_big-0.1.1-cp36-cp36m-macosx_10_7_x86_64.whl", "has_sig": false, "md5_digest": "074f49346db3da972333b62e24dacc1b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.5", "size": 840344, "upload_time": "2019-08-27T15:36:47", "url": "https://files.pythonhosted.org/packages/95/44/ddda143843779a39abf3b50581732e9863284ddf073ddb7933e334beb0aa/tf_big-0.1.1-cp36-cp36m-macosx_10_7_x86_64.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "3d12442ae60a2a285f3162afa163fb73", "sha256": "0751b0f24dafab5eb95c61b607b8d20ab8e15e069082f36de7ce10a6324f1059" }, "downloads": -1, "filename": "tf_big-0.1.3-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "3d12442ae60a2a285f3162afa163fb73", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": ">=3.5", "size": 980239, "upload_time": "2019-08-29T15:17:54", "url": "https://files.pythonhosted.org/packages/9d/22/b8730dcba48b336438a6456cef3f2faba250247842045707640b7fb40da3/tf_big-0.1.3-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8b5357c5377e17f8b658d205da83779a", "sha256": "2192054a4b147a9dbc1a4ad28901c9a4f2227b28e96507c4e6fa672bc464c2d9" }, "downloads": -1, "filename": "tf_big-0.1.3-cp36-cp36m-macosx_10_7_x86_64.whl", "has_sig": false, "md5_digest": "8b5357c5377e17f8b658d205da83779a", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.5", "size": 851837, "upload_time": "2019-08-29T13:30:09", "url": "https://files.pythonhosted.org/packages/f4/00/3214fdf02eebd634642efd7105226d64a9c6a4a2fac3238a78e5a5c762ba/tf_big-0.1.3-cp36-cp36m-macosx_10_7_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "376e6474434db423196cf86122dfa062", "sha256": "e6e57e362565b4b0a2798a7f2bd650426e98b01c4220faa5c04b0112e147a338" }, "downloads": -1, "filename": "tf_big-0.1.3-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "376e6474434db423196cf86122dfa062", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.5", "size": 980237, "upload_time": "2019-08-29T13:09:22", "url": "https://files.pythonhosted.org/packages/23/e5/51b3120b356c4a9a85128b688fef0499c20dea108b09f8ea816686d3cc0e/tf_big-0.1.3-cp36-cp36m-manylinux1_x86_64.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3d12442ae60a2a285f3162afa163fb73", "sha256": "0751b0f24dafab5eb95c61b607b8d20ab8e15e069082f36de7ce10a6324f1059" }, "downloads": -1, "filename": "tf_big-0.1.3-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "3d12442ae60a2a285f3162afa163fb73", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": ">=3.5", "size": 980239, "upload_time": "2019-08-29T15:17:54", "url": "https://files.pythonhosted.org/packages/9d/22/b8730dcba48b336438a6456cef3f2faba250247842045707640b7fb40da3/tf_big-0.1.3-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8b5357c5377e17f8b658d205da83779a", "sha256": "2192054a4b147a9dbc1a4ad28901c9a4f2227b28e96507c4e6fa672bc464c2d9" }, "downloads": -1, "filename": "tf_big-0.1.3-cp36-cp36m-macosx_10_7_x86_64.whl", "has_sig": false, "md5_digest": "8b5357c5377e17f8b658d205da83779a", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.5", "size": 851837, "upload_time": "2019-08-29T13:30:09", "url": "https://files.pythonhosted.org/packages/f4/00/3214fdf02eebd634642efd7105226d64a9c6a4a2fac3238a78e5a5c762ba/tf_big-0.1.3-cp36-cp36m-macosx_10_7_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "376e6474434db423196cf86122dfa062", "sha256": "e6e57e362565b4b0a2798a7f2bd650426e98b01c4220faa5c04b0112e147a338" }, "downloads": -1, "filename": "tf_big-0.1.3-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "376e6474434db423196cf86122dfa062", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.5", "size": 980237, "upload_time": "2019-08-29T13:09:22", "url": "https://files.pythonhosted.org/packages/23/e5/51b3120b356c4a9a85128b688fef0499c20dea108b09f8ea816686d3cc0e/tf_big-0.1.3-cp36-cp36m-manylinux1_x86_64.whl" } ] }