|
2 | 2 | "cells": [ |
3 | 3 | { |
4 | 4 | "cell_type": "code", |
5 | | - "execution_count": null, |
| 5 | + "execution_count": 12, |
6 | 6 | "id": "c8d57e80-9075-4d63-bc36-f9aaad08ea2f", |
7 | 7 | "metadata": {}, |
8 | 8 | "outputs": [], |
9 | 9 | "source": [ |
10 | | - "import tensorflow as tf" |
| 10 | + "import keras" |
11 | 11 | ] |
12 | 12 | }, |
13 | 13 | { |
14 | 14 | "cell_type": "code", |
15 | | - "execution_count": null, |
| 15 | + "execution_count": 13, |
| 16 | + "id": "90fa4efb-f9d5-40fb-8e4a-5e3ed1094740", |
| 17 | + "metadata": {}, |
| 18 | + "outputs": [ |
| 19 | + { |
| 20 | + "data": { |
| 21 | + "text/plain": [ |
| 22 | + "'3.7.0'" |
| 23 | + ] |
| 24 | + }, |
| 25 | + "execution_count": 13, |
| 26 | + "metadata": {}, |
| 27 | + "output_type": "execute_result" |
| 28 | + } |
| 29 | + ], |
| 30 | + "source": [ |
| 31 | + "keras.__version__" |
| 32 | + ] |
| 33 | + }, |
| 34 | + { |
| 35 | + "cell_type": "code", |
| 36 | + "execution_count": 14, |
16 | 37 | "id": "5d98d000-661e-4495-bef0-49c5eb180aff", |
17 | 38 | "metadata": {}, |
18 | 39 | "outputs": [], |
19 | 40 | "source": [ |
20 | | - "nn = tf.keras.models.Sequential(\n", |
| 41 | + "nn = keras.models.Sequential(\n", |
21 | 42 | " [\n", |
22 | | - " tf.keras.layers.InputLayer((8,)),\n", |
23 | | - " tf.keras.layers.Dense(30, activation='relu'),\n", |
24 | | - " tf.keras.layers.Dense(1),\n", |
| 43 | + " keras.layers.InputLayer((8,)),\n", |
| 44 | + " keras.layers.Dense(30, activation='relu'),\n", |
| 45 | + " keras.layers.Dense(1),\n", |
25 | 46 | " ]\n", |
26 | 47 | ")" |
27 | 48 | ] |
28 | 49 | }, |
29 | 50 | { |
30 | 51 | "cell_type": "code", |
31 | | - "execution_count": null, |
| 52 | + "execution_count": 15, |
32 | 53 | "id": "ba3cf3ee-bd25-4180-95c0-2ff42d858a34", |
33 | 54 | "metadata": {}, |
34 | 55 | "outputs": [], |
|
38 | 59 | }, |
39 | 60 | { |
40 | 61 | "cell_type": "code", |
41 | | - "execution_count": null, |
| 62 | + "execution_count": 16, |
42 | 63 | "id": "247bd200-8026-4f08-8739-9aabb3c37e99", |
43 | 64 | "metadata": {}, |
44 | 65 | "outputs": [], |
45 | 66 | "source": [ |
46 | 67 | "(X_train, y_train), (X_test, y_test) = tf.keras.datasets.california_housing.load_data(\n", |
47 | | - " version=\"large\"\n", |
| 68 | + " version=\"small\"\n", |
48 | 69 | ")\n" |
49 | 70 | ] |
50 | 71 | }, |
51 | 72 | { |
52 | 73 | "cell_type": "code", |
53 | | - "execution_count": null, |
| 74 | + "execution_count": 18, |
54 | 75 | "id": "a29325dd-1ab1-4cce-81c0-2528e892adb6", |
55 | 76 | "metadata": {}, |
56 | 77 | "outputs": [], |
57 | 78 | "source": [ |
58 | | - "normalize = tf.keras.layers.Normalization(axis=-1)" |
| 79 | + "normalize = keras.layers.Normalization(axis=-1)" |
59 | 80 | ] |
60 | 81 | }, |
61 | 82 | { |
62 | 83 | "cell_type": "code", |
63 | | - "execution_count": null, |
| 84 | + "execution_count": 19, |
64 | 85 | "id": "cbecbd91-e100-4568-9424-efd9e3b6d5fc", |
65 | 86 | "metadata": {}, |
66 | 87 | "outputs": [], |
|
72 | 93 | }, |
73 | 94 | { |
74 | 95 | "cell_type": "code", |
75 | | - "execution_count": null, |
| 96 | + "execution_count": 21, |
76 | 97 | "id": "5656d2da-ee2d-4a8f-aef3-65876c20193b", |
77 | 98 | "metadata": {}, |
| 99 | + "outputs": [ |
| 100 | + { |
| 101 | + "name": "stdout", |
| 102 | + "output_type": "stream", |
| 103 | + "text": [ |
| 104 | + "Epoch 1/20\n", |
| 105 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 36ms/step - loss: 51257974784.0000 - val_loss: 48780189696.0000\n", |
| 106 | + "Epoch 2/20\n", |
| 107 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 51058966528.0000 - val_loss: 48779857920.0000\n", |
| 108 | + "Epoch 3/20\n", |
| 109 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - loss: 56175738880.0000 - val_loss: 48779501568.0000\n", |
| 110 | + "Epoch 4/20\n", |
| 111 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 28ms/step - loss: 48874921984.0000 - val_loss: 48779141120.0000\n", |
| 112 | + "Epoch 5/20\n", |
| 113 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 25ms/step - loss: 52104830976.0000 - val_loss: 48778752000.0000\n", |
| 114 | + "Epoch 6/20\n", |
| 115 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 41ms/step - loss: 53767278592.0000 - val_loss: 48778342400.0000\n", |
| 116 | + "Epoch 7/20\n", |
| 117 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 25ms/step - loss: 51997323264.0000 - val_loss: 48777920512.0000\n", |
| 118 | + "Epoch 8/20\n", |
| 119 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 52127023104.0000 - val_loss: 48777490432.0000\n", |
| 120 | + "Epoch 9/20\n", |
| 121 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 31ms/step - loss: 55014318080.0000 - val_loss: 48777023488.0000\n", |
| 122 | + "Epoch 10/20\n", |
| 123 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 27ms/step - loss: 50627502080.0000 - val_loss: 48776540160.0000\n", |
| 124 | + "Epoch 11/20\n", |
| 125 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 28ms/step - loss: 52081172480.0000 - val_loss: 48776024064.0000\n", |
| 126 | + "Epoch 12/20\n", |
| 127 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 21ms/step - loss: 55939633152.0000 - val_loss: 48775487488.0000\n", |
| 128 | + "Epoch 13/20\n", |
| 129 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 34ms/step - loss: 51670016000.0000 - val_loss: 48774975488.0000\n", |
| 130 | + "Epoch 14/20\n", |
| 131 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 26ms/step - loss: 55131279360.0000 - val_loss: 48774389760.0000\n", |
| 132 | + "Epoch 15/20\n", |
| 133 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - loss: 51200266240.0000 - val_loss: 48773820416.0000\n", |
| 134 | + "Epoch 16/20\n", |
| 135 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - loss: 53789458432.0000 - val_loss: 48773218304.0000\n", |
| 136 | + "Epoch 17/20\n", |
| 137 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 29ms/step - loss: 50551488512.0000 - val_loss: 48772616192.0000\n", |
| 138 | + "Epoch 18/20\n", |
| 139 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 28ms/step - loss: 50127593472.0000 - val_loss: 48771956736.0000\n", |
| 140 | + "Epoch 19/20\n", |
| 141 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 31ms/step - loss: 48622862336.0000 - val_loss: 48771301376.0000\n", |
| 142 | + "Epoch 20/20\n", |
| 143 | + "\u001b[1m15/15\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 30ms/step - loss: 53927636992.0000 - val_loss: 48770617344.0000\n" |
| 144 | + ] |
| 145 | + }, |
| 146 | + { |
| 147 | + "data": { |
| 148 | + "text/plain": [ |
| 149 | + "<keras.src.callbacks.history.History at 0x7eb858fa50>" |
| 150 | + ] |
| 151 | + }, |
| 152 | + "execution_count": 21, |
| 153 | + "metadata": {}, |
| 154 | + "output_type": "execute_result" |
| 155 | + } |
| 156 | + ], |
| 157 | + "source": [ |
| 158 | + "nn.fit(X_train, y_train, epochs=20, validation_data=(X_test, y_test))" |
| 159 | + ] |
| 160 | + }, |
| 161 | + { |
| 162 | + "cell_type": "code", |
| 163 | + "execution_count": 22, |
| 164 | + "id": "128b1ba9-55e9-4d78-9b31-d2a0da9bb165", |
| 165 | + "metadata": {}, |
78 | 166 | "outputs": [], |
79 | 167 | "source": [ |
80 | | - "nn.fit(X_train, y_train, epochs=100, validation_data=(X_test, y_test))" |
| 168 | + "nn.save('toto.keras')" |
| 169 | + ] |
| 170 | + }, |
| 171 | + { |
| 172 | + "cell_type": "code", |
| 173 | + "execution_count": 24, |
| 174 | + "id": "9c820767-db55-48ba-8dd3-675d06fb5c3d", |
| 175 | + "metadata": {}, |
| 176 | + "outputs": [ |
| 177 | + { |
| 178 | + "data": { |
| 179 | + "text/plain": [ |
| 180 | + "<Sequential name=sequential_1, built=True>" |
| 181 | + ] |
| 182 | + }, |
| 183 | + "execution_count": 24, |
| 184 | + "metadata": {}, |
| 185 | + "output_type": "execute_result" |
| 186 | + } |
| 187 | + ], |
| 188 | + "source": [ |
| 189 | + "keras.saving.load_model('toto.keras')" |
81 | 190 | ] |
82 | 191 | }, |
83 | 192 | { |
84 | 193 | "cell_type": "code", |
85 | 194 | "execution_count": null, |
86 | | - "id": "128b1ba9-55e9-4d78-9b31-d2a0da9bb165", |
| 195 | + "id": "68653ae3-8f6a-4359-be49-b0049e1e0d5b", |
87 | 196 | "metadata": {}, |
88 | 197 | "outputs": [], |
89 | 198 | "source": [] |
|
105 | 214 | "name": "python", |
106 | 215 | "nbconvert_exporter": "python", |
107 | 216 | "pygments_lexer": "ipython3", |
108 | | - "version": "3.11.10" |
| 217 | + "version": "3.11.2" |
109 | 218 | }, |
110 | 219 | "license": { |
111 | 220 | "full_text": "# Copyright © 2023 Gurobi Optimization, LLC\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ==============================================================================" |
|
0 commit comments