--- title: README emoji: π¦ colorFrom: green colorTo: gray sdk: static pinned: false ---
EuroPython Dublin, You're invited!
Welcome to the 14th European Conference on Python in Science. The EuroSciPy meeting is a cross-disciplinary gathering focused on the use and development of the Python language in scientific research.This event strives to bring together both users and developers of scientific tools, as well as academic research and state of the art industry.
Come Join us from August 29th to September 2th for a Hackathon in person and online using Gradio and Hugging Face to build and host Machine Learning and data science demos. Find tutorial on getting started with Gradio on Hugging Face here and to get started with the new Gradio Blocks API here. Once the gradio demo is setup, see how to add it to Hugging Face Spaces here. Come see the talk on How to craft awesome Machine Learning demos with Python in Liffey Hall 2 on 13 July 2022 at 14:00 by Omar Sanseviero
See the EuroPython Leaderboard
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
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.
All you need to do is to run this in the terminal: pip install gradio
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)}
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.
io.launch()
You should see a web interface like the following where you can drag and drop your data points and see the predictions: