Machine Learning Art
AI & ML interests
We are a group of 800+ ML engineers and AI designers working to create intelligent artworks and develop new algorithms for creativity and machine learning. Subscribe to MLearning.ai for updates on our progress, blog posts about AI art, and more opportunities for creative minds like you!
This organization invites participants to showoff AI art on huggingface as a Gradio Web Demo
Join organization by clicking here
Hugging Face Gradio MLearningAI
MLearningAI Community is accepting Gradio AI art demo submissions, you can submit demos for multiple projects. Find tutorial on getting started with Gradio on Hugging Face here and to get started with the new Gradio Blocks API here
In this tutorial, we will demonstrate how to showcase your demo with an easy to use web interface using the Gradio Python library and host it on Hugging Face Spaces so that conference attendees can easily find and try out your demos. Also, see https://gradio.app/introduction_to_blocks/, for a more flexible way to build Gradio Demos
π Create a Gradio Demo from your Model
The first step is to create a web demo from your model. As an example, we will be creating a demo from an image classification model (called model) which we will be uploading to Spaces. The full code for steps 1-4 can be found in this colab notebook.
1. Install the gradio library
All you need to do is to run this in the terminal: pip install gradio
2. Define a function in your Python code that performs inference with your model on a data point and returns the prediction
Hereβs we define our image classification model prediction function in PyTorch (any framework, like TensorFlow, scikit-learn, JAX, or a plain Python will work as well):
def predict(inp):
inp = Image.fromarray(inp.astype('uint8'), 'RGB')
inp = transforms.ToTensor()(inp).unsqueeze(0)
with torch.no_grad():
prediction = torch.nn.functional.softmax(model(inp)[0], dim=0)
return {labels[i]: float(prediction[i]) for i in range(1000)}
3. Then create a Gradio Interface using the function and the appropriate input and output types
For the image classification model from Step 2, it would like like this:
inputs = gr.inputs.Image()
outputs = gr.outputs.Label(num_top_classes=3)
io = gr.Interface(fn=predict, inputs=inputs, outputs=outputs)
If you need help creating a Gradio Interface for your model, check out the Gradio Getting Started guide.
4. Then launch() you Interface to confirm that it runs correctly locally (or wherever you are running Python)
io.launch()
You should see a web interface like the following where you can drag and drop your data points and see the predictions: