Variable stars change brightness over time, and the shape of that change tells astronomers what kind of star it is. I trained two PyTorch models on light curves from the Zwicky Transient Facility (ZTF): a 2D-CNN that reads each curve as an image-like representation, and a hybrid CNN-LSTM that reads the reconstructed sequence. Both were evaluated with 5-fold cross-validation on 5-class and 10-class setups.
2D-CNN: 99.95% accuracy on the full 5-class dataset, 88.7% on 10 classes. CNN-LSTM: 90.0%, with training about three times faster.
Group project · NLP course, University of Cyprus · 2024
Parameter-efficient fine-tuning of Mistral-7B-v0.1: the model is loaded in 4-bit and adapted with LoRA through Hugging Face PEFT, so it trains on a single GPU. Given a list of ingredients, it writes a recipe title and the instructions. We ran five training rounds, from 200 to almost 20,000 recipes, improving data cleaning and prompt format each time.
Evaluated with BLEU, ROUGE-1 and METEOR: 62%, 81% and 78%.
Notebooks covering the classic NLP pipeline on news data: text pre-processing, n-gram language models and perplexity, text classification with traditional models, TF-IDF features and word vectors.
A YOLO model trained on the DeepPCB dataset to find six kinds of defects on printed circuit boards: open, short, mousebite, spur, pin hole and spurious copper. One script runs the whole pipeline, from data preparation and train/validation/test split to training and testing. A FastAPI service exposes the trained model, and Docker packages it.
Two-person project · AI in Medicine course, University of Cyprus · 2024
Classifies white blood cells as healthy or leukemic (acute lymphoblastic leukemia) on the C-NMC 2019 dataset. Instead of a convolutional network, it uses OpenCV preprocessing and augmentation, handcrafted features and a small Keras neural network tuned with grid search, which needs far less compute.
F1 score 84.66%, against 77.43% for an SVM on the same features.
Course project · Computer Vision, University of Padua
A system that compares two pictures of a canteen tray, one before and one after the meal. It recognises the food on the tray in the first image and estimates how much of each food is left in the second.
A two-wheeled robot learns to reach a goal while avoiding six obstacles, using a simulated 24-ray LIDAR. The agent is a Soft Actor-Critic implementation in PyTorch with continuous linear and angular velocities, trained in PyBullet, with an optional ROS2 node.
Course assignments · Intelligent Robotics, University of Padua
A navigation and manipulation system for the TIAGO robot built on ROS and Actionlib. The robot moves to a target pose while avoiding obstacles detected with its laser scanner, then picks and places objects with MoveIt!.
Compares ordinary linear regression with RANSAC regression for estimating Swiss house prices from living space. RANSAC ignores the houses with anomalous prices and gives a more reliable fit.
Course project · Software Engineering, University of Padua
Adapters that implement the Java Collections interfaces (List, Map, Set, Iterator) on top of the classes available in Java ME CLDC 1.1, so that a library written for J2SE 1.4.2 runs unchanged in the smaller environment.
Course project · Entrepreneurship in AI, University of Cyprus · 2024
A business plan, not code: an AI platform that helps households cut energy use and emissions. Market segmentation, end-user profile, business model canvas and pitch.