--- license: apache-2.0 language: - en datasets: - AiresPucrs/CelebA-Smiles metrics: - accuracy tags: - image-classification --- # LeNNon Smile Detector (Teeny-Tiny Castle) This model is part of a tutorial tied to the [Teeny-Tiny Castle](https://github.com/Nkluge-correa/TeenyTinyCastle), an open-source repository containing educational tools for AI Ethics and Safety research. ## How to Use ```python import torch from PIL import Image from lennon import LeNNon from torchvision import transforms from huggingface_hub import hf_hub_download # Download the pytorch model hf_hub_download(repo_id="AiresPucrs/LeNNon-Smile-Detector", filename="LeNNon-Smile-Detector.pt", local_dir="./", repo_type="model" ) # Download the source implementation of the model's architecture hf_hub_download(repo_id="AiresPucrs/LeNNon-Smile-Detector", filename="lennon.py", local_dir="./", repo_type="model" ) # Check if GPU is available device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # Load the model an pass it to the proper device model = torch.load('./LeNNon-Smile-Detector.pt') model = model.to(device) model.eval() # This `transform` object will transform our test images into proper tensors transform = transforms.Compose([ transforms.Resize((100, 100)),  # Resize the image to 100x100 transforms.ToTensor(), ]) image_path = "your_image_path_here" # Open and preprocess he image image = Image.open(image_path) tensor = transform(image) tensor = tensor.to(device) # forward pass trough the model with torch.no_grad(): outputs = model(tensor) # Get the class prediction _, predicted = torch.max(outputs.data, 1) print("Smiling" if predicted.item() > 0 else "Not Smiling") ```