Tflon: Non-stick tensorflow
Tflon is an up-and-coming deep learning toolkit designed to streamline tensorflow model and data pipeline construction while enabling complex, dynamically structured operations on data to foster innovative deep learning research.
Currently, tflon's most developed use case is executing computations on graph-structure data, such as chemical data, using the wave architecture.(1,2)
Ultimately, tflon aims to provide three key features.
A flexible data input model, which uses python multiprocessing to enable throughput without necessitating custom tensorflow extensions for handling complex data.
A modular model construction framework, which supports complex, dynamically structured operations on data, and can be mixed with pure tensorflow, or alternative APIs such as keras or sonnet.
Seamless, intuitive integration with other tools including: data storage (pyarrow, parquet), distributed execution (horovod, MPI), profiling (pyflame, tfprof), resource monitoring (psutil, GPUtil), and others.
Currently, we are still a long way off from achieving these goals. If you are interested in contributing, please let us know!
This software is in pre-release development, and is provided on an as-is basis, with no guarantees about future functionality or support. This software is likely to undergo substantial changes in the near future. Please be advised that projects making use of this software may require substantial changes to maintain compatibility with future releases. We expect to arrive at a stable API soon.
In addition, be advised that this software is currently provided on a restricted non-commercial license (see LICENSE). Future releases of tflon will likely be provided under a permissive open source license, depending upon interest.
Tflon is tested for python 2.7 on unix based systems (CentOS, Ubuntu, MacOS). Some features (such as process monitoring and profiling) will likely not work on Windows. Tflon core requirements are listed below, all python package requirements are available in pypi. Additional packages are required to use some features as noted.
- networkx (2.0 or later; for graph and chem modules)
- openopt (for using scipy.minimize optimizers)
- tess (for 3-D chemistry models)
- ppca (for PCA with missing data)
- pyflame (for the profiler)
hg clone https://bitbucket.org/mkmatlock/tflon cd tflon python setup.py build pip install .
Read the tutorials and documentation at: https://tflon.readthedocs.io/en/latest/
Wave graph deep-learning architecture
The current primary use of tflon is processing graph structured data
with the wave architecture.(1,2) For complete implementation examples,
we have provided the
module. The module
tflon.examples.tox21 implements several graph
architectures on the tox21 dataset, a set of small-molecules annotated
with activity data from several toxicity related assays. The module
tflon.exmaples.maze trains a dynamic wave network to perform the image
maze task from our paper.(2)
This software is currently under a restricted non-commercial license (see LICENSE).
- Matlock, M. K., Dang, N. L., and Swamidass, S. J. (2018). Learning a local variable model of aromatic and conjugated systems. ACS central science, 4(1), 52-62.
- Matlock, M. K., Datta, A., Dang, N. L., Jiang, K., and Swamidass, S. J. (2018). Deep learning long-range information in undirected graphs with wave networks. ArXiV preprint: https://arxiv.org/abs/1810.12153