From 93a10ef51ca288a94d48337be73cf32a57e0d8e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laure=CE=B7t?= Date: Tue, 29 Mar 2022 10:21:54 +0200 Subject: [PATCH] feat: added some stuff in rapport_0 --- docs/RAPPORT_0.md | 14 ++++++++++---- docs/image_methodo.jpg | Bin 0 -> 17012 bytes 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 docs/image_methodo.jpg diff --git a/docs/RAPPORT_0.md b/docs/RAPPORT_0.md index e06bfa5..0e87655 100644 --- a/docs/RAPPORT_0.md +++ b/docs/RAPPORT_0.md @@ -24,9 +24,15 @@ Voici l'image associée : ## Méthodologie -* Description de votre méthodologie pour partitionner les images en ensembles d’entraı̂nement, de validation et de test. +Nous pensons dans un premier temps fractionner notre dataset de la manière suivante: --> Voir la doc de tensorflow. +| Train | Test | Validation | +| :---: | :---: | :--------: | +| 70 | 15 | 15 | + +Nous utiliserons les méthodes fournies par Tensorflow pour split notre dataset via ces proportions. + +Notre objectif final serait d'utiliser l'augmentation pour obtenir plus d'un million d'images. ## Pronostic @@ -34,7 +40,7 @@ Si l'on décide d'évaluer le réseau sur des voitures avec une rotation qui est ## Chargement de nos données -* Script de chargement de vos données. +Comme nous possédons un grand nombre d'images et comme celle-ci sont réliées via un csv, nous allons devoir utiliser une [structure spéciale](https://www.tensorflow.org/tutorials/load_data/csv#using_tfdata) de Tensorflow pour charger les images via leur association dans le csv, et aussi pour permettre de ne pas tout charger en mémoire (car notre dataset sera très probablement de taille supérieur à la RAM de nos machines). ## Exemple du dataset @@ -51,4 +57,4 @@ Si l'on décide d'évaluer le réseau sur des voitures avec une rotation qui est | 6 | ![](demo_datas/0_6.jpg) | ![](demo_datas/1_6.jpg) | ![](demo_datas/2_6.jpg) | ![](demo_datas/3_6.jpg) | | 7 | ![](demo_datas/0_7.jpg) | ![](demo_datas/1_7.jpg) | ![](demo_datas/2_7.jpg) | ![](demo_datas/3_7.jpg) | | 8 | ![](demo_datas/0_8.jpg) | ![](demo_datas/1_8.jpg) | ![](demo_datas/2_8.jpg) | ![](demo_datas/3_8.jpg) | -| 9 | ![](demo_datas/0_9.jpg) | ![](demo_datas/1_9.jpg) | ![](demo_datas/2_9.jpg) | ![](demo_datas/3_9.jpg) | \ No newline at end of file +| 9 | ![](demo_datas/0_9.jpg) | ![](demo_datas/1_9.jpg) | ![](demo_datas/2_9.jpg) | ![](demo_datas/3_9.jpg) | diff --git a/docs/image_methodo.jpg b/docs/image_methodo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..15cabbd7db7b7a3e3693d601359ad36691ca3772 GIT binary patch literal 17012 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