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
PyTorch implementation of paper “Unbiased Scene Graph Generation from Biased Training”

A new codebase for popular Scene Graph Generation methods (2020). Visualization & Scene Graph Extraction on custom images/datasets are provided. It's also a PyTorch implementation of paper “Unbiased

Kaihua Tang 824 Jan 03, 2023
PyTorch implementation of MICCAI 2018 paper "Liver Lesion Detection from Weakly-labeled Multi-phase CT Volumes with a Grouped Single Shot MultiBox Detector"

Grouped SSD (GSSD) for liver lesion detection from multi-phase CT Note: the MICCAI 2018 paper only covers the multi-phase lesion detection part of thi

Sang-gil Lee 36 Oct 12, 2022
This is the repository for The Machine Learning Workshops, published by AI DOJO

This is the repository for The Machine Learning Workshops, published by AI DOJO. It contains all the workshop's code with supporting project files necessary to work through the code.

AI Dojo 12 May 06, 2022
Lexical Substitution Framework

LexSubGen Lexical Substitution Framework This repository contains the code to reproduce the results from the paper: Arefyev Nikolay, Sheludko Boris, P

Samsung 37 Sep 15, 2022
Anti-Adversarially Manipulated Attributions for Weakly and Semi-Supervised Semantic Segmentation (CVPR 2021)

Anti-Adversarially Manipulated Attributions for Weakly and Semi-Supervised Semantic Segmentation Input Image Initial CAM Successive Maps with adversar

Jungbeom Lee 110 Dec 07, 2022
SwinTrack: A Simple and Strong Baseline for Transformer Tracking

SwinTrack This is the official repo for SwinTrack. A Simple and Strong Baseline Prerequisites Environment conda (recommended) conda create -y -n SwinT

LitingLin 196 Jan 04, 2023
Denoising Diffusion Probabilistic Models

Denoising Diffusion Probabilistic Models This repo contains code for DDPM training. Based on Denoising Diffusion Probabilistic Models, Improved Denois

Alexander Markov 7 Dec 15, 2022
Affine / perspective transformation in Pose Estimation with Tensorflow 2

Pose Transformation Affine / Perspective transformation in Pose Estimation with Tensorflow 2 Introduction 이 repo는 pose estimation을 연구하고 개발하는 데 도움이 되기

Kim Junho 1 Dec 22, 2021
AirPose: Multi-View Fusion Network for Aerial 3D Human Pose and Shape Estimation

AirPose AirPose: Multi-View Fusion Network for Aerial 3D Human Pose and Shape Estimation Check the teaser video This repository contains the code of A

Robot Perception Group 41 Dec 05, 2022
Dynamic wallpaper generator.

Wiki • About • Installation About This project is a dynamic wallpaper changer. It waits untill you turn on the music, downloads album cover if it's po

3 Sep 18, 2021
This repo provides code for QB-Norm (Cross Modal Retrieval with Querybank Normalisation)

This repo provides code for QB-Norm (Cross Modal Retrieval with Querybank Normalisation) Usage example python dynamic_inverted_softmax.py --sims_train

36 Dec 29, 2022
Circuit Training: An open-source framework for generating chip floor plans with distributed deep reinforcement learning

Circuit Training: An open-source framework for generating chip floor plans with distributed deep reinforcement learning. Circuit Training is an open-s

Google Research 479 Dec 25, 2022
minimizer-space de Bruijn graphs (mdBG) for whole genome assembly

rust-mdbg: Minimizer-space de Bruijn graphs (mdBG) for whole-genome assembly rust-mdbg is an ultra-fast minimizer-space de Bruijn graph (mdBG) impleme

Barış Ekim 148 Dec 01, 2022
Ladder Variational Autoencoders (LVAE) in PyTorch

Ladder Variational Autoencoders (LVAE) PyTorch implementation of Ladder Variational Autoencoders (LVAE) [1]: where the variational distributions q at

Andrea Dittadi 63 Dec 22, 2022
Implementation of our recent paper, WOOD: Wasserstein-based Out-of-Distribution Detection.

WOOD Implementation of our recent paper, WOOD: Wasserstein-based Out-of-Distribution Detection. Abstract The training and test data for deep-neural-ne

8 Dec 24, 2022
2021搜狐校园文本匹配算法大赛 分比我们低的都是帅哥队

sohu_text_matching 2021搜狐校园文本匹配算法大赛Top2:分比我们低的都是帅哥队 本repo包含了本次大赛决赛环节提交的代码文件及答辩PPT,提交的模型文件可在百度网盘获取(链接:https://pan.baidu.com/s/1T9FtwiGFZhuC8qqwXKZSNA ,

hflserdaniel 43 Oct 01, 2022
AutoVideo: An Automated Video Action Recognition System

AutoVideo is a system for automated video analysis. It is developed based on D3M infrastructure, which describes machine learning with generic pipeline languages. Currently, it focuses on video actio

Data Analytics Lab at Texas A&M University 267 Dec 17, 2022
A library of multi-agent reinforcement learning components and systems

Mava: a research framework for distributed multi-agent reinforcement learning Table of Contents Overview Getting Started Supported Environments System

InstaDeep Ltd 463 Dec 23, 2022
A simple software for capturing human body movements using the Kinect camera.

KinectMotionCapture A simple software for capturing human body movements using the Kinect camera. The software can seamlessly save joints and bones po

Aleksander Palkowski 5 Aug 13, 2022
A tiny, pedagogical neural network library with a pytorch-like API.

candl A tiny, pedagogical implementation of a neural network library with a pytorch-like API. The primary use of this library is for education. Use th

Sri Pranav 3 May 23, 2022