Creating the project
Wine classification example
To demonstrate the essential elements of a Union project, we will start with a simple model training workflow called wine-classification
. It consists of three steps:
- Get the classic wine dataset using scikit-learn.
- Process the data that simplifies the 3-class prediction problem into a binary classification problem by consolidating class labels
1
and2
into a single class. - Train a
LogisticRegression
model to learn a binary classifier.
Create the project using pyflyte init
We will use the pyflyte
(the CLI tool that ships with flytekit
) to quickly initialize the project, from a template. The wine-classification
example is among the installable examples published in the GitHub repository flyteorg/flytekit-python-template
.
Install the example, and cd
into it:
[~]:wine-classification
$ pyflyte init --template wine-classification wine-classification
[~]:wine-classification
$ cd wine-classification
[~/wine-classification]:wine-classification
$
Note
If you need to use a Dockerfile in your project instead of ImageSpec, you can use the Dockerfile template:
pyflyte init --template basic-template-dockerfile my_project
Project structure
If you examine the wine-classification
directory you’ll see the following file structure:
[~/wine-classification]:wine-classification
$ tree
.
├── LICENSE
├── README.md
├── local-requirements.txt
├── image-requirements.txt
└── workflows
├── __init__.py
└── example.py
Note
You can create your own conventions and file structure for your Union projects. The pyflyte init
command just provides a good starting point.
Install the local dependencies
We will explain the significance of the two requirements files later. For now, you just need to install the local dependencies. Make sure that you have activated your wine-classification
conda environment, then install the dependencies from local-requirements.txt
:
[~/wine-classification]:wine-classification
$ pip install -r local-requirements.txt