From dbf6013d5ced56c6e62ad00cfeb306e246e2366b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric?= <frederic.sur@univ-lorraine.fr> Date: Fri, 1 Dec 2023 08:58:09 +0100 Subject: [PATCH] 2023-2024 --- TP5/TP5_ex2_sujet.ipynb | 12 ++++++------ TP5/TP5_ex3_sujet.ipynb | 4 ++-- TP5/playground_tensorflow.pdf | Bin 94192 -> 100637 bytes 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/TP5/TP5_ex2_sujet.ipynb b/TP5/TP5_ex2_sujet.ipynb index 6bedcda..383d535 100644 --- a/TP5/TP5_ex2_sujet.ipynb +++ b/TP5/TP5_ex2_sujet.ipynb @@ -25,11 +25,11 @@ "import matplotlib.pyplot as plt\n", "import time\n", "from sklearn import datasets, metrics, neural_network, model_selection\n", - "%matplotlib notebook \n", + "%matplotlib inline \n", "\n", "# Fashion-Mnist database sur openML: (il faut quelques dizaines de secondes pour charger la base)\n", "size_images=(28,28)\n", - "X_fashion, y_fashion = datasets.fetch_openml(data_id=40996, return_X_y=True, as_frame=False)\n", + "X_fashion, y_fashion = datasets.fetch_openml(data_id=40996, return_X_y=True, as_frame=False, parser='auto')\n", "X_fashion=X_fashion[:10000,:]/255. # normalisation des niveaux de gris entre 0 et 1\n", "y_fashion=y_fashion[:10000]\n", "\n", @@ -96,7 +96,7 @@ "outputs": [], "source": [ "MLP = neural_network.MLPClassifier(hidden_layer_sizes=(10,), max_iter=20, alpha=0,\n", - " solver='sgd', verbose=\"true\", learning_rate_init=.1, random_state=1)\n", + " solver='sgd', verbose=True, learning_rate_init=.1, random_state=1)\n", "MLP.fit(X_train, y_train)\n", "print(\"Score sur l'ensemble d'apprentissage: %.3f\" % MLP.score(X_train, y_train))\n", "print(\"Score sur l'ensemble de test: %.3f\" % MLP.score(X_test, y_test))" @@ -139,7 +139,7 @@ "print(\"\\ntemps par epoch: %.3f s\" %((t1-t0)/niter))\n", " \n", "# train & test score plot\n", - "plt.figure(figsize=[10,6])\n", + "plt.figure(figsize=[8,6])\n", "X=np.array(range(1,niter))\n", "plt.plot(X,score_train,X,score_test)\n", "plt.legend(['train','test'])\n", @@ -150,7 +150,7 @@ "\n", "# train loss plot\n", "# (pas de possibilité simple d'obtenir le test loss)\n", - "plt.figure(figsize=[10,6])\n", + "plt.figure(figsize=[8,6])\n", "X=np.array(range(1,niter))\n", "plt.plot(X,loss_train)\n", "plt.legend(['train loss'])\n", @@ -238,7 +238,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.11.5" } }, "nbformat": 4, diff --git a/TP5/TP5_ex3_sujet.ipynb b/TP5/TP5_ex3_sujet.ipynb index 00a5708..944e4fb 100755 --- a/TP5/TP5_ex3_sujet.ipynb +++ b/TP5/TP5_ex3_sujet.ipynb @@ -33,7 +33,7 @@ "%matplotlib inline \n", "\n", "# chargement des données\n", - "X_wine, y_wine = datasets.fetch_openml('wine-quality-red', return_X_y=True, as_frame=False)\n", + "X_wine, y_wine = datasets.fetch_openml('wine-quality-red', return_X_y=True, as_frame=False, parser='auto')\n", "\n", "n_samples = len(X_wine)\n", "print(\"nombre total d'observations (apprentissage + test): %d\" % n_samples)\n", @@ -111,7 +111,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.11.5" } }, "nbformat": 4, diff --git a/TP5/playground_tensorflow.pdf b/TP5/playground_tensorflow.pdf index e7f1b3ded32c1c1c7d363f024308a798d2399543..2c10db6b40c723becade6c8976b208d11360dfef 100755 GIT binary patch delta 13552 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 VQ3<%*wX`%eG2l{Fb@g}S0s!VjJ%#`P delta 7453 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 -- GitLab