Quick Start
Launch terminal
In this short tutorial, you can try Towhee for yourself in this browser-based scenario. To begin, click the "Launch Terminal" button below.
Clicking on any of the code snippets below will automatically paste the contents of the snippet into the terminal you just launched. Once you close this page, the environment that you just spun up along with all of its contents will be wiped clean.
Install Towhee
The browser-based terminal you just brought up is a completely clean environment, so we'll need to install Towhee first: (click the following command, it will be copied into the terminal)
First, install Towhee:
pip3 install towhee
If you want to install models in towhee, just run:
pip3 install towhee.models
Some prep work
Once Towhee is installed, let's move onto a bit of prep work.
Running your first pipeline
Now it's time to generate your first embedding with Towhee! Open up a python
terminal:
python3
Data transformations are central to Towhee; Pipelines are simply a series of transformations connected together in a directed acyclic graph. All pre-built Towhee pipelines are given names that are representative of the task at hand. To create a pipeline, import the pipeline
function from towhee
:
from towhee import pipeline
Now let's instantiate an image embedding pipeline:
p = pipeline('image-embedding')
Towhee allows users to specify an image via URL:
output = p('https://raw.githubusercontent.com/towhee-io/towhee/main/docs/02-Getting%20Started/towhee.jpeg')
That's it! The embedding vector for the corresponding input image (towhee.jpeg
) is stored in the output
variable:
print(output)
Using a local image
Alternatively, we can use a local image instead. Let's grab one:
wget https://raw.githubusercontent.com/towhee-io/towhee/main/docs/02-Getting%20Started/towhee.jpeg
The default image-embedding
pipeline supports both HTTP (via the requests
library) and local paths. Run it through the pipeline as so:
output = p('towhee.jpeg')
Note that the default model used by image-embedding
is ResNet50
(you can find the corresponding mapping for default pipelines here). The default repository for this pipeline is located on the Towhee hub; following the link will take you to a README page describing the pipeline, the model(s) used, and a simple diagram explaining how data flows through the pipeline.
Prototyping ML applications
Towhee also provides DataCollection
- Pythonic method-chaining API for developing applications and running pipelines in just a couple lines of code. Let's import it first:
from towhee.functional import DataCollection
Now let's get the list of all numbers divisible by 7 between 0 and 99:
DataCollection.range(100).filter(lambda x: x % 7 == 0).to_list()
It's as easy as that! Feel free to continue trying - we have more examples here.
Cleaning up
Once you're finished, be sure to quit out of the enviroment using:
quit()
Learn more
A list of all the operators we provide can be found here. As always, if you have any questions or comments, feel free to get in touch with us via Slack.