Arbitrary precision integers in TensorFlow.
TF 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 values, and exposed in Python through the
tf_big.Tensor wrapper for convenience. For importing and exporting, numbers are typically expressed as strings.
import tensorflow as tf import tf_big # load large values as strings x = tf_big.constant(["100000000000000000000", "200000000000000000000"]) # load ordinary TensorFlow tensors y = tf_big.convert_to_tensor(tf.constant([3, 4])) # perform computation as usual z = x * y # use TensorFlow sessions to evalutate the results with tf.Session() as sess: res = sess.run(z) print(res)
Python 3 packages are available from PyPI:
pip install tf-big
See below for further instructions for setting up a development environment.
conda create -n tfbig-dev python=3.6 source activate tfbig-dev
The only requirement for Ubuntu is to have docker installed. This is the recommended way to build custom operations for TensorFlow. We provide a custom development container for TF Big with all dependencies already installed.
Setting up a development environment on macOS is a little more involved since we cannot use a docker container. We need four things:
brew tap bazelbuild/tap brew install bazelbuild/tap/bazel brew install gmp brew install mmv
The remaining PyPI packages can then be installed using:
pip install -r requirements-dev.txt
Run 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:
docker build -t tf-encrypted/tf-big:0.1.0 .
Then we can run
sudo docker run -it \ -v `pwd`:/opt/my-project -w /opt/my-project \ tf-encrypted/tf-big:0.1.0 /bin/bash -c "make test"
Once the development environment is set up we can simply run:
This will install TensorFlow if not previously installed and build and run the tests.
Building pip package
CircleCI 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.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size tf_big-0.1.3-cp35-cp35m-manylinux1_x86_64.whl (980.2 kB)||File type Wheel||Python version cp35||Upload date||Hashes View hashes|
|Filename, size tf_big-0.1.3-cp36-cp36m-macosx_10_7_x86_64.whl (851.8 kB)||File type Wheel||Python version cp36||Upload date||Hashes View hashes|
|Filename, size tf_big-0.1.3-cp36-cp36m-manylinux1_x86_64.whl (980.2 kB)||File type Wheel||Python version cp36||Upload date||Hashes View hashes|
Hashes for tf_big-0.1.3-cp35-cp35m-manylinux1_x86_64.whl
Hashes for tf_big-0.1.3-cp36-cp36m-macosx_10_7_x86_64.whl
Hashes for tf_big-0.1.3-cp36-cp36m-manylinux1_x86_64.whl