Paris study group March -April 2019

Bonjour à tous - concernant la Session 1 du groupe:

  • La séance a lieu lundi 11 à 19h - Amine a demandé qu’on décale les sessions sur 19h à partir de maintenant.

  • Je parlerai français pendant mon éxposé, saud demande générale de passer en anglais. Ceux qui désirent s’entraider en anglais pour les exos peuvent le faire.

  • Robert Salita peut venir expliquer la configuration d’un PC Deep Learning à domicile, pour ceux qui désirent avoir ça chez eux. A vous de décider quand vous voulez qu’il vienne.

  • A mon avis la carte graphique pas cher à acheter en ce moment est la Nvidia RTX 2060, et dans tous les cas, une RTX. Compter 300 zeuros. Il existe des notebooks HP et Dell/Alienware qui ent embarquent une version peut-être un peu bridée.

  • Ce serait super que vous mettiez à jour vos photos içi et sur le Meetup afin que l’on sâche qui est qui.

VISIONNEZ LA LECON 1 SVP - VISIONNEZ!!! ET LISEZ LES NOTES DE COURS INDIQUEES EN MARGE.
Edmund

1 Like

The next practical will be on Monday March 25 as Amine is busy on Monday March 18.

The March 11 hands-on practical covered training with image augmentation transforms (rotations etc), actually looking at the data files, saving a trained net, running individual images through a classifier. Students who attended should now play with running their own pictures through deep nets, and attempt to train their own nets from reduced sample sets with the help of data augmentation transforms (rotations etc).

Homework Assignment:
All people who attended were told to make 4 pieces of1/4 sheet of A4 paper hand-marked with a heavy marker pen, each with one of the signs 3, 7, O (circle) , X (cross) . The assigned homework is

  • to image the handwritten 3 and 7 with a cellphone and run them through the MNIST sample net as trained in the course notes during Lesson 1 (see below).

  • to train a net to recognize general handwritten O (circle) and X cross.

  • All trained nets and marked page photos should be kept and on March 25 week we will try and see who has the best trained net.

Edmund

PS. Please try to work through Lesson 2 of the FastAI course before the next practical.

Here is the link to the notebook that was on the projector.

J’ai réussi à complèter la première partie du devoir à la maison.

Je n’ai pas encore tout compris, mais en faisant l’exo en lisant la doc on finit par comprendre comment importer des fichiers, sauver des réseaux etc.

Deux fonctions utiles:

open_image(‘monfichierimage’) vous affiche une image, mais img=open_image(monfichierimage’) vous crée un object img de type Image.

si learn est un object Learner déjà entrainé, et img un object Image, learn.predict(img) effectue l’infèrence et vous imprime les prévisions du réseau.

Excusez mes erreurs, je suis très vague, ou plutôt corrigez les, vous avez la moitié voir un tiers de mon age!

Annoncez aussi votre réussite içi même, c’est motivant!

Cet exercice est réellement utile pour prendre en main la librairie FastAI et l’environnement - se perdre un peu dans une nouvelle ville, c’est tout le plaisir du touriste, non?

Edmund

Mon premier test …

1 Like

Hello Edmund
Et quel predict ??
Dans le TP, je ne comprends pas la prédiction de O et X avec la data augmentation ??
Bon we
Bruno

1 Like

@bruno16 -

C’est bien de poser des questions!

C’était juste pour montrer les images utilisées pour mon premier test, qu’elles commencent très crades. Un des buts du jeu est de trouver comment on passe d’images prises en mauvaises conditions à quelquechose que le réseau reconnait. Et ça je voudrais que les gens le fassent eux mêmes. SE CONFRONTER AU MONDE REEL.

La prédiction avec O et X avec Data Augmentation. C’est que en fait pour créer un réseau de rien on n’a pas assez d’échantillons, donc je propose aux étudiants d’utiliser les options de transformation dans les classes du générateur DataImageBunch pour créer des versions transformées (zooméées, symmetrisées, tournées etc) à partir de quelques O et X dessinés qu’ils se font eux mêmes, et voir si leur réseau résultant fonctionne mieux que sans cela. .

La Data Augmentation est une des découvertes récentes avec le Transfer Learning avec ResNet qui fornt que les CNN fonctionnent si bien en pratique sans enormément de de données d’entrainement.

J’épére bien que tu feras le TP et afficheras tes résultats-où les difficutés içi,

Edmund

@bruno16

Voici un exemple où l’équipe Fastai gagné un concours avec sa Data Augmentation:

If you want to match our top single-machine CIFAR-10 result, it’s as simple as four lines of code:

tfms = ([pad(padding=4), crop(size=32, row_pct=(0,1), col_pct=(0,1)),
    flip_lr(p=0.5)], [])
data = data_from_imagefolder('data/cifar10', valid='test',
    ds_tfms=tfms, tfms=cifar_norm)
learn = Learner(data, wrn_22(), metrics=accuracy).to_fp16()
learn.fit_one_cycle(25, wd=0.4)

Tu peux lire plus içi:
https://www.fast.ai/2018/10/02/fastai-ai/

Hi Edmond @eronald
Thanks for the link, but to be clear ,
pour la data-augmentation c’est au sein d’une même classe,
si on fait un classifier pour les 3 et les 7 , cela ne donne rien d’augmenter avec des 0 ou X ?
Voici un medium récent sur le one-shot learning en détection d’image
mais c’est plutot du fastai part 2

Bonne semaine
Bruno

1 Like

Hi Bruno,
Merçi bien de ton commentaire.

Thank you for the link, which is very interesting.

En ce qui concerne les O et le X, cela n’a rien à voir avec les 3 et les 7, le but du jeu est de créer à partir de tout point de départ que tu te choisis, comme par exemple Resnet, un classifieur avec très peu de données de training, quelques gribouillages vite faits., Içi je pense qu’à l’aide de la data augmentation incorporée dans FastAi cet exercice difficile à priori devient un TP à la portée des membres de notre groupe.

Nous le saurons avec certitude lundi prochain!

Edmund

Bonjour Ronald,
J’ai réussi à faire les 2 exercices et m’apprête à demander à mes enfants de faire des O et des X pour démontrer mes talents de devin. Pas sûr que ça les impressionne, mais cela a été très satisfaisant pour moi !
A lundi,
Jean-Luc

1 Like

Bonjour Jean-Luc,

Bravo et Félicitations!

Je suis content que vous avez trouvé que ce travail était un bon investissement de temps.

Vous devenez volontaire désigné pour raconter les problèmes rencontrés - et comment ils ont été surmontés - aux autres membres du groupe Lundi prochain.

Vos enfants sont nés dans un monde où les machines savent lire. Pas nous.

Edmund

Hi,

I am getting lost trying to understand how the predict function from fastAI works.
If someone could explain to me what the reconstruct function does and what an ItemBase is, I would greatly appreciate it. Thanks!

Hi,
On an full res image
torch.Size([3, 3968, 2976])

I can predict , but with very low probas

learn.predict(an_img)
(Category 3, tensor(0), tensor([0.6589, 0.3411]))

Question how to resize an image with fastai lib ??

@EmmaS you can do ItemBase?? but it doesn’t exist ??

For resize a quick search in the forum

verify_images [source][test]

verify_images ( path : PathOrStr , delete : bool = True , max_workers : int = 4 , max_size : int = None , recurse : bool = False , dest : PathOrStr = '.' , n_channels : int = 3 , interp = 2 , ext : str = None , img_format : str = None , resume : bool = None , **** kwargs** )

1 Like

So far, I understood that the images can be directly resized when you call the ImageDataBunch function with the parameter size=224 for example, which will resize your images to 224x224 during training. I don’t know if it accepts different height and width as input. This should be tested.

Emma

The part I don’t understand is why you don’t go out and ask your questions on the US-based part of these forums etc. You’re all supposed to be qualified people with degrees, you have access to people and even source code (!). What’s the reason for this inertia?
I don’t have the slightest idea myself how the fastai classes work, as we all know too well, but I am sure that running a few queries in a notebook or looking at the source code would clarify matters, and also there is always the documentation on http://docs.fast.ai which points to the source

I guess people who are smarter than me will demo all this in real time at the practical tonight at Octo.

Edmund

There is debate whether we should follow the course sequence, or skip ahead to NLP.

Opinions?

Edmund

my opinion :
Skip ahead to NLP, =
end of Lesson 3 , when Jeremie presents TextDataBunch and lesson3-imdb notebook
and Lesson4

Bruno

1 Like

Imo if we switch to NLP, we should before end computer vision by the TP you gave us Edmund. Emma will have a nice solution to present you I guess. ^^

1 Like

Hello / Bonjour ! I just discovered that there was a Paris study group. Would it be OK to join in mid-way through for your next meet-up?

1 Like