TFX Basic Shared Libraries (tfx_bsl
) contains libraries shared by many
TensorFlow eXtended (TFX) components.
Only APIs in tfx_bsl/public are intended for direct use by TFX users. APIs under other directories should be considered internal to TFX (and therefore there is no backward or forward compatibility guarantee for them).
Each minor version of a TFX component or TFX itself, if it needs to
depend on tfx_bsl
, will depend on a specific minor version of it (e.g.
tensorflow_data_validation
0.14.* will depend on and only work with tfx_bsl
0.14.*)
tfx_bsl
is available as a PyPI package.
pip install tfx-bsl
However it is a dependency of many TFX components and usually as a user you don't need to install it directly.
If you want to build a TFX component from the master branch, past the latest
release, you may also have to build the latest tfx_bsl
, as that TFX component
might have depended on new features introduced past the latest tfx_bsl
release.
Building from Docker is the recommended way to build tfx_bsl
under Linux,
and is continuously tested at Google.
Please first install docker
and
docker-compose
by following the
directions.
git clone https://github.com/tensorflow/tfx-bsl
cd tfx-bsl
Note that these instructions will install the latest master branch of tfx-bsl
.
If you want to install a specific branch (such as a release branch), pass
-b <branchname>
to the git clone
command.
When building on Python 2, make sure to strip the Python types in the source code using the following commands:
pip install strip-hints
python tfx_bsl/tools/strip_type_hints.py tfx_bsl/
Then, run the following at the project root:
sudo docker-compose build manylinux2010
sudo docker-compose run -e PYTHON_VERSION=${PYTHON_VERSION} manylinux2010
where PYTHON_VERSION
is one of {27, 35, 36, 37}
.
A wheel will be produced under dist/
.
pip install dist/*.whl
If NumPy is not installed on your system, install it now by following these directions.
If Bazel is not installed on your system, install it now by following these directions.
tfx_bsl
needs to be built with specific PyArrow versions (
as indicated in third_party/pyarrow.version). Install pyarrow by following
these directions.
When installing please make sure to specify the compatible pyarrow version. For example:
pip install "pyarrow>=0.14.0,<0.15.0"
git clone https://github.com/tensorflow/tfx-bsl
cd tfx-bsl
Note that these instructions will install the latest master branch of tfx_bsl
If you want to install a specific branch (such as a release branch),
pass -b <branchname>
to the git clone
command.
When building on Python 2, make sure to strip the Python types in the source code using the following commands:
pip install strip-hints
python tfx_bsl/tools/strip_type_hints.py tfx_bsl/
TFDV uses Bazel to build the pip package from source. Before invoking the
following commands, make sure the python
in your $PATH
is the one of the
target version and has NumPy and PyArrow installed.
./configure.sh
bazel run -c opt --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0 tfx_bsl:build_pip_package
The flag D_GLIBCXX_USE_CXX11_ABI=0
is to use an older std::string ABI. Which
is used by all manylinux2010
compliant wheels (including PyArrow). If you
also build PyArrow from source without that flag, you may not need to specify
it here.
You can find the generated .whl
file in the dist
subdirectory.
pip install dist/*.whl
tfx_bsl
is tested on the following 64-bit operating systems:
- macOS 10.12.6 (Sierra) or later.
- Ubuntu 16.04 or later.
- Windows 7 or later.