|
58 | 58 | }
|
59 | 59 | ],
|
60 | 60 | "source": [
|
| 61 | + "import warnings\n", |
| 62 | + "warnings.filterwarnings(\"ignore\", category=FutureWarning)\n", |
61 | 63 | "import os, sys\n",
|
62 | 64 | "sys.path = [os.path.abspath(\"../../\")] + sys.path\n",
|
63 | 65 | "from deep_learning4e import *\n",
|
|
158 | 160 | "<body>\n",
|
159 | 161 | "<h2></h2>\n",
|
160 | 162 | "\n",
|
161 |
| - "<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">simple_rnn_learner</span><span class=\"p\">(</span><span class=\"n\">train_data</span><span class=\"p\">,</span> <span class=\"n\">val_data</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">):</span>\n", |
| 163 | + "<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">SimpleRNNLearner</span><span class=\"p\">(</span><span class=\"n\">train_data</span><span class=\"p\">,</span> <span class=\"n\">val_data</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">):</span>\n", |
162 | 164 | " <span class=\"sd\">"""</span>\n",
|
163 |
| - "<span class=\"sd\"> rnn example for text sentimental analysis</span>\n", |
| 165 | + "<span class=\"sd\"> RNN example for text sentimental analysis.</span>\n", |
164 | 166 | "<span class=\"sd\"> :param train_data: a tuple of (training data, targets)</span>\n",
|
165 | 167 | "<span class=\"sd\"> Training data: ndarray taking training examples, while each example is coded by embedding</span>\n",
|
166 |
| - "<span class=\"sd\"> Targets: ndarry taking targets of each example. Each target is mapped to an integer.</span>\n", |
| 168 | + "<span class=\"sd\"> Targets: ndarray taking targets of each example. Each target is mapped to an integer.</span>\n", |
167 | 169 | "<span class=\"sd\"> :param val_data: a tuple of (validation data, targets)</span>\n",
|
| 170 | + "<span class=\"sd\"> :param epochs: number of epochs</span>\n", |
168 | 171 | "<span class=\"sd\"> :return: a keras model</span>\n",
|
169 | 172 | "<span class=\"sd\"> """</span>\n",
|
170 | 173 | "\n",
|
|
199 | 202 | }
|
200 | 203 | ],
|
201 | 204 | "source": [
|
202 |
| - "psource(simple_rnn_learner)" |
| 205 | + "psource(SimpleRNNLearner)" |
203 | 206 | ]
|
204 | 207 | },
|
205 | 208 | {
|
|
220 | 223 | },
|
221 | 224 | {
|
222 | 225 | "cell_type": "code",
|
223 |
| - "execution_count": 9, |
| 226 | + "execution_count": 3, |
224 | 227 | "metadata": {},
|
225 | 228 | "outputs": [],
|
226 | 229 | "source": [
|
|
238 | 241 | },
|
239 | 242 | {
|
240 | 243 | "cell_type": "code",
|
241 |
| - "execution_count": 11, |
| 244 | + "execution_count": 4, |
242 | 245 | "metadata": {},
|
243 | 246 | "outputs": [
|
| 247 | + { |
| 248 | + "name": "stderr", |
| 249 | + "output_type": "stream", |
| 250 | + "text": [ |
| 251 | + "WARNING: Logging before flag parsing goes to stderr.\n", |
| 252 | + "W1018 22:51:23.614058 140557804885824 deprecation.py:323] From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/nn_impl.py:180: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n", |
| 253 | + "Instructions for updating:\n", |
| 254 | + "Use tf.where in 2.0, which has the same broadcast rule as np.where\n", |
| 255 | + "W1018 22:51:24.267649 140557804885824 deprecation_wrapper.py:119] From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:422: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n", |
| 256 | + "\n" |
| 257 | + ] |
| 258 | + }, |
244 | 259 | {
|
245 | 260 | "name": "stdout",
|
246 | 261 | "output_type": "stream",
|
247 | 262 | "text": [
|
248 | 263 | "Train on 24990 samples, validate on 25000 samples\n",
|
249 | 264 | "Epoch 1/10\n",
|
250 |
| - " - 45s - loss: 0.6877 - acc: 0.5406 - val_loss: 0.6731 - val_acc: 0.6045\n", |
| 265 | + " - 59s - loss: 0.6540 - accuracy: 0.5959 - val_loss: 0.6234 - val_accuracy: 0.6488\n", |
251 | 266 | "Epoch 2/10\n",
|
252 |
| - " - 52s - loss: 0.6441 - acc: 0.6241 - val_loss: 0.6258 - val_acc: 0.6300\n", |
| 267 | + " - 61s - loss: 0.5977 - accuracy: 0.6766 - val_loss: 0.6202 - val_accuracy: 0.6326\n", |
253 | 268 | "Epoch 3/10\n",
|
254 |
| - " - 50s - loss: 0.5275 - acc: 0.7393 - val_loss: 0.5547 - val_acc: 0.7229\n", |
| 269 | + " - 61s - loss: 0.5269 - accuracy: 0.7356 - val_loss: 0.4803 - val_accuracy: 0.7789\n", |
255 | 270 | "Epoch 4/10\n",
|
256 |
| - " - 50s - loss: 0.4703 - acc: 0.7908 - val_loss: 0.4851 - val_acc: 0.7740\n", |
| 271 | + " - 61s - loss: 0.4159 - accuracy: 0.8130 - val_loss: 0.5640 - val_accuracy: 0.7046\n", |
257 | 272 | "Epoch 5/10\n",
|
258 |
| - " - 48s - loss: 0.4021 - acc: 0.8279 - val_loss: 0.4517 - val_acc: 0.8121\n", |
| 273 | + " - 61s - loss: 0.3931 - accuracy: 0.8294 - val_loss: 0.4707 - val_accuracy: 0.8090\n", |
259 | 274 | "Epoch 6/10\n",
|
260 |
| - " - 55s - loss: 0.4043 - acc: 0.8269 - val_loss: 0.4532 - val_acc: 0.8042\n", |
| 275 | + " - 61s - loss: 0.3357 - accuracy: 0.8637 - val_loss: 0.4177 - val_accuracy: 0.8122\n", |
261 | 276 | "Epoch 7/10\n",
|
262 |
| - " - 51s - loss: 0.4242 - acc: 0.8315 - val_loss: 0.5257 - val_acc: 0.7785\n", |
| 277 | + " - 61s - loss: 0.3552 - accuracy: 0.8594 - val_loss: 0.4652 - val_accuracy: 0.7889\n", |
263 | 278 | "Epoch 8/10\n",
|
264 |
| - " - 58s - loss: 0.4534 - acc: 0.7964 - val_loss: 0.5347 - val_acc: 0.7323\n", |
| 279 | + " - 61s - loss: 0.3286 - accuracy: 0.8686 - val_loss: 0.4708 - val_accuracy: 0.7785\n", |
265 | 280 | "Epoch 9/10\n",
|
266 |
| - " - 51s - loss: 0.3821 - acc: 0.8354 - val_loss: 0.4671 - val_acc: 0.8054\n", |
| 281 | + " - 61s - loss: 0.3428 - accuracy: 0.8635 - val_loss: 0.4332 - val_accuracy: 0.8137\n", |
267 | 282 | "Epoch 10/10\n",
|
268 |
| - " - 56s - loss: 0.3283 - acc: 0.8691 - val_loss: 0.4523 - val_acc: 0.8067\n" |
| 283 | + " - 61s - loss: 0.3650 - accuracy: 0.8471 - val_loss: 0.4673 - val_accuracy: 0.7914\n" |
269 | 284 | ]
|
270 | 285 | }
|
271 | 286 | ],
|
272 | 287 | "source": [
|
273 |
| - "model = simple_rnn_learner(train, val, epochs=10)" |
| 288 | + "model = SimpleRNNLearner(train, val, epochs=10)" |
274 | 289 | ]
|
275 | 290 | },
|
276 | 291 | {
|
|
306 | 321 | },
|
307 | 322 | {
|
308 | 323 | "cell_type": "code",
|
309 |
| - "execution_count": 19, |
| 324 | + "execution_count": 5, |
310 | 325 | "metadata": {},
|
311 | 326 | "outputs": [
|
312 | 327 | {
|
|
398 | 413 | "<body>\n",
|
399 | 414 | "<h2></h2>\n",
|
400 | 415 | "\n",
|
401 |
| - "<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">auto_encoder_learner</span><span class=\"p\">(</span><span class=\"n\">inputs</span><span class=\"p\">,</span> <span class=\"n\">encoding_size</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">):</span>\n", |
402 |
| - " <span class=\"sd\">"""simple example of linear auto encoder learning producing the input itself.</span>\n", |
| 416 | + "<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">AutoencoderLearner</span><span class=\"p\">(</span><span class=\"n\">inputs</span><span class=\"p\">,</span> <span class=\"n\">encoding_size</span><span class=\"p\">,</span> <span class=\"n\">epochs</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">):</span>\n", |
| 417 | + " <span class=\"sd\">"""</span>\n", |
| 418 | + "<span class=\"sd\"> Simple example of linear auto encoder learning producing the input itself.</span>\n", |
403 | 419 | "<span class=\"sd\"> :param inputs: a batch of input data in np.ndarray type</span>\n",
|
404 |
| - "<span class=\"sd\"> :param encoding_size: int, the size of encoding layer"""</span>\n", |
| 420 | + "<span class=\"sd\"> :param encoding_size: int, the size of encoding layer</span>\n", |
| 421 | + "<span class=\"sd\"> :param epochs: number of epochs</span>\n", |
| 422 | + "<span class=\"sd\"> :return: a keras model</span>\n", |
| 423 | + "<span class=\"sd\"> """</span>\n", |
405 | 424 | "\n",
|
406 | 425 | " <span class=\"c1\"># init data</span>\n",
|
407 | 426 | " <span class=\"n\">input_size</span> <span class=\"o\">=</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">inputs</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">])</span>\n",
|
408 | 427 | "\n",
|
409 | 428 | " <span class=\"c1\"># init model</span>\n",
|
410 | 429 | " <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Sequential</span><span class=\"p\">()</span>\n",
|
411 |
| - " <span class=\"n\">model</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">Dense</span><span class=\"p\">(</span><span class=\"n\">encoding_size</span><span class=\"p\">,</span> <span class=\"n\">input_dim</span><span class=\"o\">=</span><span class=\"n\">input_size</span><span class=\"p\">,</span> <span class=\"n\">activation</span><span class=\"o\">=</span><span class=\"s1\">'relu'</span><span class=\"p\">,</span> <span class=\"n\">kernel_initializer</span><span class=\"o\">=</span><span class=\"s1\">'random_uniform'</span><span class=\"p\">,</span><span class=\"n\">bias_initializer</span><span class=\"o\">=</span><span class=\"s1\">'ones'</span><span class=\"p\">))</span>\n", |
| 430 | + " <span class=\"n\">model</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">Dense</span><span class=\"p\">(</span><span class=\"n\">encoding_size</span><span class=\"p\">,</span> <span class=\"n\">input_dim</span><span class=\"o\">=</span><span class=\"n\">input_size</span><span class=\"p\">,</span> <span class=\"n\">activation</span><span class=\"o\">=</span><span class=\"s1\">'relu'</span><span class=\"p\">,</span> <span class=\"n\">kernel_initializer</span><span class=\"o\">=</span><span class=\"s1\">'random_uniform'</span><span class=\"p\">,</span>\n", |
| 431 | + " <span class=\"n\">bias_initializer</span><span class=\"o\">=</span><span class=\"s1\">'ones'</span><span class=\"p\">))</span>\n", |
412 | 432 | " <span class=\"n\">model</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">(</span><span class=\"n\">Dense</span><span class=\"p\">(</span><span class=\"n\">input_size</span><span class=\"p\">,</span> <span class=\"n\">activation</span><span class=\"o\">=</span><span class=\"s1\">'relu'</span><span class=\"p\">,</span> <span class=\"n\">kernel_initializer</span><span class=\"o\">=</span><span class=\"s1\">'random_uniform'</span><span class=\"p\">,</span> <span class=\"n\">bias_initializer</span><span class=\"o\">=</span><span class=\"s1\">'ones'</span><span class=\"p\">))</span>\n",
|
| 433 | + "\n", |
413 | 434 | " <span class=\"c1\"># update model with sgd</span>\n",
|
414 | 435 | " <span class=\"n\">sgd</span> <span class=\"o\">=</span> <span class=\"n\">optimizers</span><span class=\"o\">.</span><span class=\"n\">SGD</span><span class=\"p\">(</span><span class=\"n\">lr</span><span class=\"o\">=</span><span class=\"mf\">0.01</span><span class=\"p\">)</span>\n",
|
415 | 436 | " <span class=\"n\">model</span><span class=\"o\">.</span><span class=\"n\">compile</span><span class=\"p\">(</span><span class=\"n\">loss</span><span class=\"o\">=</span><span class=\"s1\">'mean_squared_error'</span><span class=\"p\">,</span> <span class=\"n\">optimizer</span><span class=\"o\">=</span><span class=\"n\">sgd</span><span class=\"p\">,</span> <span class=\"n\">metrics</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">'accuracy'</span><span class=\"p\">])</span>\n",
|
|
431 | 452 | }
|
432 | 453 | ],
|
433 | 454 | "source": [
|
434 |
| - "psource(auto_encoder_learner)" |
| 455 | + "psource(AutoencoderLearner)" |
435 | 456 | ]
|
436 | 457 | },
|
437 | 458 | {
|
|
458 | 479 | "name": "python",
|
459 | 480 | "nbconvert_exporter": "python",
|
460 | 481 | "pygments_lexer": "ipython3",
|
461 |
| - "version": "3.7.2" |
| 482 | + "version": "3.6.8" |
462 | 483 | }
|
463 | 484 | },
|
464 | 485 | "nbformat": 4,
|
|
0 commit comments