Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Commit

Permalink
lint
Browse files Browse the repository at this point in the history
  • Loading branch information
sdpython committed Apr 16, 2021
1 parent 7b3f3af commit 1cac94d
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 28 deletions.
2 changes: 1 addition & 1 deletion _doc/sphinxdoc/source/blog/2021/2021-02-01_reading.rst
Expand Up @@ -13,7 +13,7 @@

Un article qui n'a rien à voir
`The Indirect Convolution Algorithm <https://arxiv.org/pdf/1907.02129.pdf>`_.

Je m'aperçois également que beaucoup de projets
de machine learning commencent par la mise au point
d'un modèle et repoussent la mise en production à plus tard,
Expand Down
2 changes: 1 addition & 1 deletion _doc/sphinxdoc/source/blog/2021/2021-02-02_fair.rst
Expand Up @@ -6,7 +6,7 @@
:categories: fairness

La recherche dans le domaine du machine learning éthique est
assez disparate. Je suis tombé sur cet article
assez disparate. Je suis tombé sur cet article
`An overview of some available Fairness Frameworks & Packages
<https://www.linkedin.com/pulse/
overview-some-available-fairness-frameworks-packages-murat-durmus/>`_
Expand Down
2 changes: 0 additions & 2 deletions _doc/sphinxdoc/source/blog/2021/2021-03-21_pypolars.rst
Expand Up @@ -9,5 +9,3 @@
des dataframes, comme :epkg:`pandas`, à ceci près qu'elle
propose également une interface *lazy* ou streaming.
Elle est implémentée en :epkg:`Rust`.


10 changes: 4 additions & 6 deletions _doc/sphinxdoc/source/i_getting_started.rst
Expand Up @@ -46,7 +46,6 @@ Les traces d'installation ont été conservées dans cet article
`2021-01-09 Install Python 3.9 and many packages on Linux Debian 10
<http://www.xavierdupre.fr/app/pymyinstall/helpsphinx//blog/2021/2021-01-09_debian.html>`_.


2018-2020
+++++++++

Expand Down Expand Up @@ -100,15 +99,14 @@ Et Les plus utilisés sont de plus en plus disponibles sur
`pypi <https://pypi.org/>`_. Pour les autres, il faut allez à
`Unofficial Windows Binaries for Python Extension Packages
<http://www.lfd.uci.edu/~gohlke/pythonlibs/>`_.
Certains modules n'existent pas sous forme précompilée à
Certains modules n'existent pas sous forme précompilée à
moins de le faire soi-même. Il faut qu'un compilateur
soit installée sur la machine et sans doute d'autres
dépendances. Il est possible aussi de suivre les instructions
exécutées à chaque changement :
`appveyor.yml
<https://github.com/sdpython/ensae_teaching_cs/blob/master/appveyor.yml>`_.


Linux en ligne de commande / MacOS
++++++++++++++++++++++++++++++++++

Expand All @@ -121,7 +119,7 @@ Vous pouvez aussi suivre les instructions utilisées à chaque
changement `config.yml
<https://github.com/sdpython/ensae_teaching_cs/blob/master/.circleci/config.yml>`_.

Il existe des différences sur MacOs. Mais vous pouvez suivre
Il existe des différences sur MacOs. Mais vous pouvez suivre
les instructions contenus dans ce fichier `azure-pipelines.yml
<https://github.com/sdpython/mlprodict/blob/master/azure-pipelines.yml#L63>`_.

Expand Down Expand Up @@ -323,7 +321,7 @@ Les modules indispensables sont intégrés à la distribution

*Visualisation*

Voir `10 plotting libraries at PyData 06/14/2016 in Paris
Voir `10 plotting libraries at PyData 06/14/2016 in Paris
<http://www.xavierdupre.fr/app/jupytalk/helpsphinx/2016/pydata2016.html>`_
ou :ref:`l-visualisation`.

Expand Down Expand Up @@ -540,7 +538,7 @@ ou un prof fera l'affaire. Ensuite, des livres de mathématiques, des articles..
* `Quelques astuces pour faire du machine learning <http://www.xavierdupre.fr/blog/2014-03-28_nojs.html>`_
* `Python Tools for Machine Learning <http://www.cbinsights.com/blog/python-tools-machine-learning/>`_
* `Python extensions to do machine learning <http://www.xavierdupre.fr/blog/2013-09-15_nojs.html>`_
* `22 outils gratuits pour visualiser et analyser les données (1ère partie)
* `22 outils gratuits pour visualiser et analyser les données (1ère partie)
<http://www.lemondeinformatique.fr/actualites/lire-22-outils-gratuits-pour-visualiser-et-analyser-les-donnees-1ere-partie-47241-page-3.html>`_
* `Gradient Boosted Regression Trees <http://orbi.ulg.ac.be/bitstream/2268/163521/1/slides.pdf>`_
* `A Reliable Effective Terascale Linear Learning System <http://arxiv.org/pdf/1110.4198v3.pdf>`_
Expand Down
2 changes: 1 addition & 1 deletion _doc/sphinxdoc/source/ml2a/td2a_mlbasic_text_embedding.rst
Expand Up @@ -39,4 +39,4 @@ méthodes les plus courantes. La section
* `tokenizers <https://github.com/huggingface/tokenizers>`_
(Provides an implementation of today's most used tokenizers,
with a focus on performance and versatility.)
* `pyglove <https://github.com/Lguyogiro/pyglove>`_
* `pyglove <https://github.com/Lguyogiro/pyglove>`_
24 changes: 9 additions & 15 deletions _doc/sphinxdoc/source/questions/route_3A_2020.rst
Expand Up @@ -79,7 +79,6 @@ Séance 3
Séance 4
^^^^^^^^


Séance 5
^^^^^^^^

Expand All @@ -94,7 +93,7 @@ Parallelisation CPU
Cython
* `Presentation <https://cython.org/>`_
* Compilateur (`Windows <https://visualstudio.microsoft.com/fr/vs/community/>`_ (VS),
`Linux <https://doc.ubuntu-fr.org/gcc>`_ (gcc),
`Linux <https://doc.ubuntu-fr.org/gcc>`_ (gcc),
`MacOs <https://developer.apple.com/xcode/>`_ (xcode))
* `manylinux <https://www.python.org/dev/peps/pep-0513/>`_ sur pypi
* `C et Cython <https://cython.readthedocs.io/en/latest/src/userguide/external_C_code.html>`_
Expand Down Expand Up @@ -126,11 +125,11 @@ Libraires pour aller plus vite sur CPU
* `Torch <https://pytorch.org/docs/stable/torch.html>`_ = numpy + numba + pybind11

Stratégies d'optimisation
* Composer à partir de librairies implémentant des calculs standards (matriciel)
* Fusionner deux opérations en une seule (transposition + multiplication A B' ->
`gemm <https://en.wikipedia.org/wiki/GEMM>`_),
* Composer à partir de librairies implémentant des calculs standards (matriciel)
* Fusionner deux opérations en une seule (transposition + multiplication A B' ->
`gemm <https://en.wikipedia.org/wiki/GEMM>`_),
`opt_einsum <https://github.com/dgasmith/opt_einsum>`_
= recomposition des calculs, nombre accru d'opérations,
= recomposition des calculs, nombre accru d'opérations,
`MLPRegressor <http://www.xavierdupre.fr/app/mlprodict/helpsphinx/
skl_converters/visual-neural_network-004.html>`_
* Implémentation spécifiques (graphes, arbres)
Expand All @@ -154,13 +153,12 @@ Demain
* `Trends pytorch,tensorflow,numpy <https://trends.google.com/trends/explore?date=all&geo=US&q=pytorch,tensorflow,numpy>`_
* `NVidia Stock <https://www.google.com/search?q=nvidia+stock&oq=nvidia+stock&aqs=chrome..69i57.2676j0j4&sourceid=chrome&ie=UTF-8>`_
* `Intel Stock <https://www.google.com/search?ei=T6kGYIP3FInYaIbNvbAC&q=intel+stock&oq=intel+stock&gs_lcp=CgZwc3ktYWIQAzIFCAAQkQIyBggAEAcQHjIGCAAQBxAeMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADoECAAQR1DhY1jFZ2D5aGgAcAN4AIABVYgBlAOSAQE2mAEAoAEBqgEHZ3dzLXdpesgBCMABAQ&sclient=psy-ab&ved=0ahUKEwjD2tun2qfuAhUJLBoKHYZmDyYQ4dUDCA0&uact=5>`_

Liens `pytorch <https://pytorch.org/>`_:
* `CUSTOM C++ AND CUDA EXTENSIONS <https://pytorch.org/tutorials/advanced/cpp_extension.html?highlight=thread>`_
* `Convert Torch Tensor to flattened C++ array <https://discuss.pytorch.org/t/convert-torch-tensor-to-flattened-c-array/94341>`_
* `TORCH.FROM_NUMPY <https://pytorch.org/docs/stable/generated/torch.from_numpy.html>`_


**Notes en vrac**

Mémoire --> L3 --> L2 --> L1 --> 256o de registres - CPU1, CPU2, CPU3, CPU4 calcul --> L1 --> L2 --> L3 Mémoire
Expand All @@ -173,7 +171,6 @@ Processus
--> Traitement de texte --> 1 processus
--> Python --> 1 processus
--> Python --> 1 autre processus


Serialisation
Données --> d'une machine à une autre
Expand Down Expand Up @@ -201,15 +198,15 @@ Cython prérequis
* Interpréteur python (3.7+)
* Compilateur (gcc sur linux (clang), Visual Studio Windows (Community Edition), gcc MacOs

Programme
Programme
* 1 fichier python
* 1 fichier cython --> cython le convertit en C ou C++ --> compilé (DLL, .pyd, .so) --> prêt à l'emploi

On veut paralléliser sous linux avec une librairie openmp sous Linux:
* "Error: je ne trouve libomp" --> sudo apt-get install libomp (dépendance)

Plus rapide:
Matrice:
Matrice:
Langage sécurisé
Liste = [1, 4, 5, 6]
Liste[3] = 4 --> remplace un élément
Expand All @@ -218,7 +215,7 @@ Langage sécurisé
Interprétable = portable
* Python interprète le code python --> fichier .pyc créé
* Liste[3] = 4 --> appelle une fonction python qui modifie l'objet liste
* Le Code peut évoluer dynamiquement -->
* Le Code peut évoluer dynamiquement -->
* Les erreurs de syntaxe ne sont pas toujours découvertes avant l'exécution
Mémoire
* Jamais accès en python à la mémoire directement
Expand Down Expand Up @@ -250,15 +247,12 @@ Git --> va fusionner les deux pour avoir une unique avec dot1.pyx + dot2.pyx
Intégration continue :
* S'assurer qu'à chaque modification, aucun bug n'a été créé ailleurs que dans le code modifié


Cython
* Python setup.py build_ext --inplace
* Convertit cython en C/C++
* Compiler le code C/C++
* Link --> .pyd (Windows) ou .so sous MacOs


M3 est modifiée par deux threads en même temps mais pas au même endroit --> donc pas besoin de verrou


A B C -> (A B ) C ou A (B C)
2 changes: 1 addition & 1 deletion _doc/sphinxdoc/source/td_3a.rst
Expand Up @@ -124,7 +124,7 @@ proposent les processeurs CPU : le :epkg:`branching`.
* `daal4py <https://intelpython.github.io/daal4py/>`_,
réécriture d'algorithme de machine learning optimisée
pour les processeurs Intel

*Outils*

* `Introducing PyTorch Profiler - the new and improved performance tool
Expand Down
3 changes: 2 additions & 1 deletion src/ensae_teaching_cs/automation/jenkins_helper.py
Expand Up @@ -132,7 +132,8 @@ def default_jenkins_jobs(filter=None, neg_filter=None, root=None, platform=None)
raise TypeError("{0} - {1}".format(row, type(row)))
return new_res
else:
context = {'Python37': 'python3.7', 'Python38': 'python3.8', 'Python39': 'python3.9'}
context = {'Python37': 'python3.7',
'Python38': 'python3.8', 'Python39': 'python3.9'}
yml_data = load_yaml(pattern % '_automation', context=context)
pyth = yml_data[0]['python']
res = []
Expand Down

0 comments on commit 1cac94d

Please sign in to comment.