A C++/CUDA neural network trained on fragrance data to predict gender and main accord from perfume notes and accords.
Download the dataset from Kaggle and place it in a datasets/ directory at the project root:
Dataset: Fragrantica Fragrance Dataset
fragNN/
└── datasets/
└── fra_cleaned.csv
Run the preprocessing script before building:
cd datasets/
python3 ../preprocess.pyThis will generate train.csv, test.csv, note_vocab.txt, and accord_vocab.txt inside data/.
fragNN/
├── data/ # generated by preprocess.py — do not edit manually
├── datasets/ # place fra_cleaned.csv here
├── src/
│ ├── dataloader.h
│ ├── dataloader.cpp
│ ├── network.h
│ └── network.cpp
├── cuda/
│ └── kernels.cu
│ └── kernels.cuh
├── main.cpp
├── preprocess.py
├── CMakeLists.txt
└── README.md
- CUDA-capable GPU (tested on RTX 2050)
- CUDA Toolkit
- CMake >= 3.24
- C++17
- When to use: 'morning', 'office', 'date', 'home'...
- Make a small web interface to the program: images, note pyramids...