Paris study group March -April 2019

Meeting Zero to get people organised:
Monday, March 4, 2019
6:30 PM to 8:30 PM
OCTO Technology
34 Avenue de l’Opéra · Paris

As usual with Travaux Dirigés in France, we will assume at each meeting that students reviewed the video or are prepared to hang on by their fingernails. Thus we will focus on code explanations, demos and computer exercises.

Meeting Zero will focus on computer setup and Google Colab , and some practice notebook walkthroughs. Students will be expected to have a Gmail account.

Edmund

7 Likes

Organization named 2/3 pers. per week that prepare and view the videos…
2/3 others who checks the notebook…
Bruno

1 Like

Bruno, explique en Français stp

Edmund

Edmund
Pour éviter le truc passif, planifies les 7 leçons , et chaque semaine un groupe de 2/3 personnes, s’engage à voir la video en entier et faire tourner le / les notebooks.
A discuter lundi
Bon we
Bruno

1 Like

Bonjour, je viens de commencer un fil de discussion sur les groupes d’étude fastai afin de recueillir les réactions des organisateurs et des participants afin de répertorier les meilleures pratiques et d’éviter certaines lacunes.

Vous trouverez plus d’informations dans ce post. Merci si vous pouvez prendre quelques minutes pour participer à la discussion :slight_smile:

1 Like

Bruno, plus je pense à ta suggestion de désigner des volontaires, plus elle me plait. :slight_smile:
Edmund

Pour pouvoir utiliser Colab avec la nouvelle version du cours :

Utiliser un jupyter local (à ne faire que si vous avez installé le driver GPU de NVIDIA) :

  • Installer anaconda par le site web ou en ligne de commande :

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh
bash ~/miniconda.sh -b -p $HOME/miniconda
export PATH=’$HOME/miniconda/bin:$PATH’

  • Exécuter le snippet suivant qui isolera l’environnement fastai :
    conda create -y -n fastai python=3.6
    conda activate fastai
    conda install -y -c pytorch -c fastai fastai
    conda install -y jupyter
    python -m ipykernel install --name fastai
    conda install -y boto3
    jupyter notebook

  • Un notebook correctement configuré apparaîtra. Il faudra sélectionner le kernel fastai pour pouvoir utiliser les bonnes librairies.

3 Likes

Hello Ronald

1 Like

RECAP DU 1er COURS:

MANIPS A REALISER POUR LANCER LE NOTEBOOK FAST.AI ET EXECUTER SON CODE.

Manipulations:

  • créer un compte gmail

  • Ouvrir collab (aller sur https://colab.research.google.com/)

  • [optionnel] Si Google vous demande de vous identifier… ben faites-le ! :wink:

  • Une fenêtre avec un bord en haut orange s’ouvre (voir ci-dessous). Cliquer sur l’onglet GITHUB

  • Entrer fastai/course-v3 dans le champ sous “Saisissez une URL GitHub…” puis choisir le cours (Pour le 1er cours: “nbs/dl1/lesson1-pets.ipynb”)

  • Cliquer sur l’onglet en haut de la page “Exécution” ("Runtime en anglais) puis sur le champ “gérer les sessions” (“change runtime type”). Une interface apparaît. Sous “Accélération matériel” (“Hardware accelerator”) et choisissez “GPU”.

  • Voila, vous pouvez commencer à jouer avec votre Notebook !

Executer les cellules d’un notebook.

Chaque “notebook” Jupyter est découpé en “cellules” (“cells”) (délimité par un cadre).

Une cellule contient du code (écrit dans ce cours en Python) ou du texte (formaté en Markdown).

Pour exécuter le code dans une cellule de code:

  • cliquer sur la cellule,
  • taper “shift” + “enter”

Si la cellule a un output, après quelques temps celui-ci s’affichera et la prochaine cellule en dessous sera sélectionnée. Vous pouvez l’exécuter toujours avec “shift” + “enter”.

3 Likes

Grâce à Amine, nous disposons d’un Google Drive partagé içi
Thanks to Amine we now have a shared Google Drive

http://bit.ly/fast_ai

Edmund

3 Likes

Regular expressions

For those who want to better understand regular expressions, I highly recommend to read and watch the links given in the course:

8 Likes

En parlant de regex, celle présente dans la 9ème cellule de code du notebook de la 1ere leçon mérite peut-être quelques explications…

pat = r'/([^/]+)_\d+.jpg$' Qu’est-ce que cela peut bien signifier ??

D’abord le “r” devant une string (délimitée par des apostrophes ou des guillemets) est propre à Python signifie que cette string sera interprétée selon des règles différentes des string “normales”. Cela permet notamment de modifier les règles d’interprétation des “caractères d’échappement”.

Comme dans tous langages, pour comprendre cette regex, il faut la décomposer:

  1. /” signifie simplement que l’on cherche un slash.
  2. ([^/]+) est plus complexe, il faut le décomposer à nouveau :
    a) “[^/]” signifie tous les caractères et symboles à l’exclusion de/”.
    b) Le “+” qui suit signifie au moins une fois.
    c) Les parenthèses “()” sont utiles avec certaines fonctions afin de distinguer la chaîne de caractère que l’on cherche de celle que l’on veut transmettre en output. Cela indique que c’est la chaîne correspondant au regex entre les parenthèses qui sera transmise en output.
    d) Donc, “([^/]+)” signifie : renvoie le 1er bout de code qui est précédé par /, qui ne contient pas /et est qui est suivi par la regex qui suit cette expression, en l’occurence “_\d+.jpg$” que nous allons maintenant interprêter à nouveau morceau par morceau.
  1. \d” remplace tous nombres entre 0 & 9 donc “\d+” recherche une suite de nombre (par exemple 0000marcherait).
  2. .jpg” recherche cette suite de caractère
  3. Enfin “$” indique la fin de la chaîne de caractère (ou parfois un retour à la ligne).

Bref, si on interprète r'/([^/]+)_\d+.jpg$' dans le contexte de ce notebook en langage naturel, cela dit:

"pour la chaine de caractère passée en input, recherche la partie de son nom qui suit le dernier slash ("/") et qui est suivi par underscore ("_"), un nombre et l’extension “.jpg” et fournit la en output à la fonction suivante."

:stuck_out_tongue_closed_eyes:

6 Likes

Bonjour à tous!

Merci pour cette décomposition @godot, très utile !
J’ajouterai au post de @EmmaS que le site https://regexone.com/ est très intéressant, il construit sur base d’exercices progressifs. C’est simple au début, mais franchement compliqué (tordu ?) à la fin :slight_smile:

1 Like

Bonjour,

Merçi à tous d’être venus.
Le meetup suivant a été programmé officiellement.

Godefroy m’a envoyé un email concernant la téchnique du “scraping” comme on appelle la recupération d’images via le web:

"… il me semble qu’il ne serait pas inintéressant d’utiliser pour le cours prochain un tuto de Pyimagesearch (une célèbre newsletter autour du deep learning et du computer vision) qui indique pas à pas comment récupérer par Google des images que l’on peut ensuite utiliser pour faire de l’entraînement. Voici le lien:

https://www.pyimagesearch.com/2017/12/04/how-to-create-a-deep-learning-dataset-using-google-images/

D’abord cela permettra à chacun de personnaliser le classifieur de la leçon 1 et donc de s’amuser encore plus et ensuite, cela fournit une partie de la solution au problème proposé par Jeremy Howard à la fin de la vidéo.

Bonne soirée,

Godefroy

A noter que les commentaires du dit article proposent des outils.

Edmund

1 Like

Bonjour @AmineSab, @eronald, @godot. Si vous n’y voyez pas d’inconvénients, je vais insérer dans le wiki post du thread Feedbacks from existing study groups votre idée d’un Google Drive partagé. C’est une super idée afin d’archiver et rendre accessibles tous les documents produits dans le cadre des groupes d’études.

2 Likes

Bonjour @AmineSab. Fastai a publié un guide pour utiliser fastai sur Colab: https://course.fast.ai/start_colab.html
Je ne l’ai pas encore utilisé. Tu en as écrit un autre car celui-ci ne fonctionne pas bien?

1 Like

Bonjour @pierreguillou, j’ai pris mes infos de ce tuto! J’ai eu du mal à le trouver hier, c’est pourquoi j’ai préféré faire une version courte et en français que j’ai partagé aux gens présents hier soir (et pour avoir la version jupyter local sur le même document). Je t’en prie pour le google drive ! Un point important selon moi est que tout le monde puisse avoir accès en lecture et écriture, pour tous les documents car on peut toujours avoir quelque chose à rajouter ou enrichir. La curation se fait facilement avec les documents drive en cas d’abus.

2 Likes

Super d’accord. J’ai inséré ton initiative dans le wiki post du feedback sur les groupes d’études. Merci :slight_smile:

Hello,

Un hack simple et utile pour télécharger un jeux de données d’images via Google Images et s’entraîner au “hot dog/no hot dog”:

Amusez-vous bien !

3 Likes

Bonjour,

Pour la création de dataset, j’ajouterai ce lien : Small tool to build image dataset: fastclass. Deux scripts très pratiques !