Streamlit is an open-source Python library designed to make it easy to build custom web-apps for machine learning and data science, from the company of the same name in San Francisco. Streamlit also hosts its community's Streamlit Component offered via API to help users get started.
N/A
TensorFlow
Score 7.7 out of 10
N/A
TensorFlow is an open-source machine learning software library for numerical computation using data flow graphs. It was originally developed by Google.
- Don't want to pay Tableau $1,000 / seat? Use Streamlit - Want fully custom views and navigation? Use Streamlit - Want access to Machine Learning and not just your dev team? Use Streamlit - Want to keep things internal and secure? Use Streamlit - Want your Data Science team to be able to crank out projects quickly? Use Streamlit - Sick of Jupyter Notebooks and Business Leaders not understanding them? Use Streamlit Our D.S. strategy has moved completely to delivering pages in Streamlit. I can hand an executive a Jupyter notebook and it'll get lost in translation. I can give them sign-in access to a page and they can answer all of their own "What-If?" questions! We've used Streamlit to productize our Data Science and Machine Learning capabilities.
TensorFlow is great for most deep learning purposes. This is especially true in two domains: 1. Computer vision: image classification, object detection and image generation via generative adversarial networks 2. Natural language processing: text classification and generation. The good community support often means that a lot of off-the-shelf models can be used to prove a concept or test an idea quickly. That, and Google's promotion of Colab means that ideas can be shared quite freely. Training, visualizing and debugging models is very easy in TensorFlow, compared to other platforms (especially the good old Caffe days). In terms of productionizing, it's a bit of a mixed bag. In our case, most of our feature building is performed via Apache Spark. This means having to convert Parquet (columnar optimized) files to a TensorFlow friendly format i.e., protobufs. The lack of good JVM bindings mean that our projects end up being a mix of Python and Scala. This makes it hard to reuse some of the tooling and support we wrote in Scala. This is where MXNet shines better (though its Scala API could do with more work).
Recent Security issues (they quickly released an update to combat this though...)
Requires a bit of HTML knowledge to really customize. If you're going quick, you don't need HTML though. Streamlit commands will pump your page out fast.
Theano is perhaps a bit faster and eats up less memory than TensorFlow on a given GPU, perhaps due to element-wise ops. Tensorflow wins for multi-GPU and “compilation” time.
Community support for TensorFlow is great. There's a huge community that truly loves the platform and there are many examples of development in TensorFlow. Often, when a new good technique is published, there will be a TensorFlow implementation not long after. This makes it quick to ally the latest techniques from academia straight to production-grade systems. Tooling around TensorFlow is also good. TensorBoard has been such a useful tool, I can't imagine how hard it would be to debug a deep neural network gone wrong without TensorBoard.
I started using Streamlit when it first came out and thought it was really useful and powerful. A few years later and they've really hit their stride! The features / widgets / materials they provide have been well researched, well designed, and well implemented. I will take Streamlit to any future companies I go to as well as be a strong promoter wherever I'm currently at. It's free. It's easy to use. It is really powerful. Sure? You could go pay for a larger system but your Data Science team should be able to handle Streamlit easily. I'd argue a non-technical person spending a few weeks in python could pick up Streamlit really quickly.
Keras is built on top of TensorFlow, but it is much simpler to use and more Python style friendly, so if you don't want to focus on too many details or control and not focus on some advanced features, Keras is one of the best options, but as far as if you want to dig into more, for sure TensorFlow is the right choice