Randstad Artificial Intelligence Challenge (powered by VGEN). Soluzione proposta da Stefano Fiorucci (anakin87) - primo classificato

Overview

Randstad Artificial Intelligence Challenge (powered by VGEN)

Soluzione proposta da Stefano Fiorucci (anakin87) - primo classificato

Struttura directory del progetto

  • directory input:

  • directory output:

    • best_model.joblib: il migliore modello addestrato (su Windows), salvato con la libreria joblib
    • best_predictions.csv: file CSV delle predizioni del miglior modello sul test set, contenente le colonne Job_description, Label_true e Label_pred; il separatore è“;”(assente per motivi di copyright)
  • directory principale:

    • esplorazione_scelta_modello.ipynb: il notebook python che descrive il percorso di esplorazione e scelta del migliore modello machine learning
    • esplorazione_scelta_modello.html: esportazione in formato HTML del suddetto notebook
    • logo.jpg: logo della competizione
    • readme.md: questa guida
    • requirements.txt: le librerie python da installare per riprodurre l'ambiente di addestramento/predizione
    • slides.pdf: la presentazione della soluzione proposta
    • train_model_windows.py: versione Windows dello script python che consente di ripetere l'addestramento, la valutazione del modello, il salvataggio del modello e la scrittura del CSV con le predizioni
    • train_model_linux.py: versione Linux dello script python di addestramento
    • utils.py: modulo python contenente alcune funzioni necessarie per il training e la predizione
    • try_best_model.py: script python di esempio che mostra come caricare il modello salvato e usarlo per nuove predizioni

Preparazione dell'ambiente di esecuzione

Per eseguire gli script, è necessario Python>=3.6. Si consiglia di preparare l’ambiente di esecuzione mediante i seguenti passaggi:

  1. scaricamento del repository
  2. a partire dalla directory principale, creazione di un python virtual environment con il comando
    python3 -m venv venv
  3. attivazione del virtual environment
    • windows
      venv\Scripts\activate
    • linux
      source venv/bin/activate
  4. installazione delle librerie necessarie con il comando
    pip install -r requirements.txt

Esecuzione degli script

  • try_best_model è uno script python di esempio che mostra come caricare il migliore modello salvato e usarlo per nuove predizioni si lancia con la sintassi
    python try_best_model.py
  • Lo script train_model lancia l’addestramento del modello, seguito dalla stampa delle metriche valutate sul test set e può essere eseguito con la sintassi
    • Windows
      python train_model_windows.py
    • Linux
      python train_model_linux.py

      Possono essere specificati i parametri: --save-model (oppure -s), che salva il modello appena addestrato nella directory output, con un nome file indicante data e ora --get-predictions (oppure -p), che genera le predizioni sul test set in formato csv e le salva nella directory di output, con un nome file indicante data e ora

Nota

A causa di un bug noto di numpy, l'addestramento dei modelli su Windows e Linux non è completamente identico e, a parità di parametri e random state, produce modelli leggermenti diversi, con effetti sulle performance (F1).

Si è cercato il più possibile di ottenere modelli con performance vicine nei due sistemi operativi (facendo variare il random state).

Il migliore modello è stato addestrato in ambiente Windows ed è salvato come best_model.joblib. Le predizioni migliori (best_predictions.csv) sono relative a questo modello. Usando lo script fornito (train_model_windows.py), il modello può essere riaddestrato rapidamente (pochi secondi) in ambiente Windows. Anche se addestrato su Windows, può essere correttamente impiegato su Linux per la predizione.

Il modello per Linux, addestrabile con l’apposito script (train_model_linux.py), è molto simile a quello per Windows: le differenze riscontrabili a livello di performance (F1) sono inferiori a 0.001.

Attenzione: usando lo script di addestramento per Windows in ambiente Linux o viceversa, non si ottengono errori di esecuzione, ma il modello addestrato mostra delle performance qualitative (F1) inferiori a quelle attese.

Owner
Stefano Fiorucci
Machine learning engineer, Python developer
Stefano Fiorucci
A task-agnostic vision-language architecture as a step towards General Purpose Vision

Towards General Purpose Vision Systems By Tanmay Gupta, Amita Kamath, Aniruddha Kembhavi, and Derek Hoiem Overview Welcome to the official code base f

AI2 79 Dec 23, 2022
Dungeons and Dragons randomized content generator

Component based Dungeons and Dragons generator Supports Entity/Monster Generation NPC Generation Weapon Generation Encounter Generation Environment Ge

Zac 3 Dec 04, 2021
Towards Flexible Blind JPEG Artifacts Removal (FBCNN, ICCV 2021)

Towards Flexible Blind JPEG Artifacts Removal (FBCNN, ICCV 2021)

Jiaxi Jiang 282 Jan 02, 2023
A different spin on dataclasses.

dataklasses Dataklasses is a library that allows you to quickly define data classes using Python type hints. Here's an example of how you use it: from

David Beazley 752 Nov 18, 2022
A scikit-learn compatible neural network library that wraps PyTorch

A scikit-learn compatible neural network library that wraps PyTorch. Resources Documentation Source Code Examples To see more elaborate examples, look

4.9k Dec 31, 2022
Cross-Image Region Mining with Region Prototypical Network for Weakly Supervised Segmentation

Cross-Image Region Mining with Region Prototypical Network for Weakly Supervised Segmentation The code of: Cross-Image Region Mining with Region Proto

LiuWeide 16 Nov 26, 2022
Deep Anomaly Detection with Outlier Exposure (ICLR 2019)

Outlier Exposure This repository contains the essential code for the paper Deep Anomaly Detection with Outlier Exposure (ICLR 2019). Requires Python 3

Dan Hendrycks 464 Dec 27, 2022
E2EC: An End-to-End Contour-based Method for High-Quality High-Speed Instance Segmentation

E2EC: An End-to-End Contour-based Method for High-Quality High-Speed Instance Segmentation E2EC: An End-to-End Contour-based Method for High-Quality H

zhangtao 146 Dec 29, 2022
A standard framework for modelling Deep Learning Models for tabular data

PyTorch Tabular aims to make Deep Learning with Tabular data easy and accessible to real-world cases and research alike.

801 Jan 08, 2023
Build upon neural radiance fields to create a scene-specific implicit 3D semantic representation, Semantic-NeRF

Semantic-NeRF: Semantic Neural Radiance Fields Project Page | Video | Paper | Data In-Place Scene Labelling and Understanding with Implicit Scene Repr

Shuaifeng Zhi 243 Jan 07, 2023
TSDF++: A Multi-Object Formulation for Dynamic Object Tracking and Reconstruction

TSDF++: A Multi-Object Formulation for Dynamic Object Tracking and Reconstruction TSDF++ is a novel multi-object TSDF formulation that can encode mult

ETHZ ASL 130 Dec 29, 2022
Dynamical movement primitives (DMPs), probabilistic movement primitives (ProMPs), spatially coupled bimanual DMPs.

Movement Primitives Movement primitives are a common group of policy representations in robotics. There are many different types and variations. This

DFKI Robotics Innovation Center 63 Jan 06, 2023
Towards Multi-Camera 3D Human Pose Estimation in Wild Environment

PanopticStudio Toolbox This repository has a toolbox to download, process, and visualize the Panoptic Studio (Panoptic) data. Note: Sep-21-2020: Curre

335 Jan 09, 2023
Implementation of neural class expression synthesizers

NCES Implementation of neural class expression synthesizers (NCES) Installation Clone this repository: https://github.com/ConceptLengthLearner/NCES.gi

NeuralConceptSynthesis 0 Jan 06, 2022
Official implementation of GraphMask as presented in our paper Interpreting Graph Neural Networks for NLP With Differentiable Edge Masking.

GraphMask This repository contains an implementation of GraphMask, the interpretability technique for graph neural networks presented in our ICLR 2021

Michael Schlichtkrull 29 Sep 02, 2022
Ian Covert 130 Jan 01, 2023
This is a repository for a No-Code object detection inference API using the OpenVINO. It's supported on both Windows and Linux Operating systems.

OpenVINO Inference API This is a repository for an object detection inference API using the OpenVINO. It's supported on both Windows and Linux Operati

BMW TechOffice MUNICH 68 Nov 24, 2022
Code for "Learning Graph Cellular Automata"

Learning Graph Cellular Automata This code implements the experiments from the NeurIPS 2021 paper: "Learning Graph Cellular Automata" Daniele Grattaro

Daniele Grattarola 37 Oct 26, 2022
Why Are You Weird? Infusing Interpretability in Isolation Forest for Anomaly Detection

Why, hello there! This is the supporting notebook for the research paper — Why Are You Weird? Infusing Interpretability in Isolation Forest for Anomal

2 Dec 14, 2021
Arch-Net: Model Distillation for Architecture Agnostic Model Deployment

Arch-Net: Model Distillation for Architecture Agnostic Model Deployment The official implementation of Arch-Net: Model Distillation for Architecture A

MEGVII Research 22 Jan 05, 2023