{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "b518b04cbfe0" }, "source": [ "##### Copyright 2020 The TensorFlow Authors." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2022-12-14T21:22:25.845810Z", "iopub.status.busy": "2022-12-14T21:22:25.845258Z", "iopub.status.idle": "2022-12-14T21:22:25.848896Z", "shell.execute_reply": "2022-12-14T21:22:25.848358Z" }, "id": "906e07f6e562" }, "outputs": [], "source": [ "#@title 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", "# https://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." ] }, { "cell_type": "markdown", "metadata": { "id": "da6087fbd570" }, "source": [ "# 函数式 API" ] }, { "cell_type": "markdown", "metadata": { "id": "d169f4a559d5" }, "source": [ "\n", " \n", " \n", " \n", " \n", "
在 TensorFlow.org 上查看 在 Google Colab 中运行 在 GitHub 上查看源代码 下载笔记本
" ] }, { "cell_type": "markdown", "metadata": { "id": "8d4ac441b1fc" }, "source": [ "## 设置" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:25.852555Z", "iopub.status.busy": "2022-12-14T21:22:25.852015Z", "iopub.status.idle": "2022-12-14T21:22:27.793159Z", "shell.execute_reply": "2022-12-14T21:22:27.792480Z" }, "id": "ec52be14e686" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-12-14 21:22:26.826756: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory\n", "2022-12-14 21:22:26.826867: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory\n", "2022-12-14 21:22:26.826878: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n" ] } ], "source": [ "import numpy as np\n", "import tensorflow as tf\n", "from tensorflow import keras\n", "from tensorflow.keras import layers" ] }, { "cell_type": "markdown", "metadata": { "id": "871fbb54ea07" }, "source": [ "## 简介\n", "\n", "Keras *函数式 API* 是一种比 `tf.keras.Sequential` API 更加灵活的模型创建方式。函数式 API 可以处理具有非线性拓扑的模型、具有共享层的模型,以及具有多个输入或输出的模型。\n", "\n", "深度学习模型通常是层的有向无环图 (DAG)。因此,函数式 API 是构建*层计算图*的一种方式。\n", "\n", "请考虑以下模型:\n", "\n", "```\n", "(input: 784-dimensional vectors) ↧ [Dense (64 units, relu activation)] ↧ [Dense (64 units, relu activation)] ↧ [Dense (10 units, softmax activation)] ↧ (output: logits of a probability distribution over 10 classes)\n", "```\n", "\n", "这是一个具有三层的基本计算图。要使用函数式 API 构建此模型,请先创建一个输入节点:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:27.798180Z", "iopub.status.busy": "2022-12-14T21:22:27.797454Z", "iopub.status.idle": "2022-12-14T21:22:27.805574Z", "shell.execute_reply": "2022-12-14T21:22:27.805022Z" }, "id": "8d477c91955a" }, "outputs": [], "source": [ "inputs = keras.Input(shape=(784,))" ] }, { "cell_type": "markdown", "metadata": { "id": "13c14d993620" }, "source": [ "数据的形状设置为 784 维向量。由于仅指定了每个样本的形状,因此始终忽略批次大小。\n", "\n", "例如,如果您有一个形状为 `(32, 32, 3)` 的图像输入,则可以使用:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:27.809003Z", "iopub.status.busy": "2022-12-14T21:22:27.808768Z", "iopub.status.idle": "2022-12-14T21:22:27.813011Z", "shell.execute_reply": "2022-12-14T21:22:27.812452Z" }, "id": "e4732e8e279b" }, "outputs": [], "source": [ "# Just for demonstration purposes.\n", "img_inputs = keras.Input(shape=(32, 32, 3))" ] }, { "cell_type": "markdown", "metadata": { "id": "971bf8b5588f" }, "source": [ "返回的 `inputs` 包含馈送给模型的输入数据的形状和 `dtype`。形状如下:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:27.816291Z", "iopub.status.busy": "2022-12-14T21:22:27.815926Z", "iopub.status.idle": "2022-12-14T21:22:27.821946Z", "shell.execute_reply": "2022-12-14T21:22:27.821402Z" }, "id": "ee96c179846a" }, "outputs": [ { "data": { "text/plain": [ "TensorShape([None, 784])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inputs.shape" ] }, { "cell_type": "markdown", "metadata": { "id": "866eee86d63e" }, "source": [ "dtype 如下:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:27.825709Z", "iopub.status.busy": "2022-12-14T21:22:27.825229Z", "iopub.status.idle": "2022-12-14T21:22:27.829172Z", "shell.execute_reply": "2022-12-14T21:22:27.828663Z" }, "id": "480be92067f3" }, "outputs": [ { "data": { "text/plain": [ "tf.float32" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inputs.dtype" ] }, { "cell_type": "markdown", "metadata": { "id": "6c93172cdfba" }, "source": [ "可以通过在此 `inputs` 对象上调用层,在层计算图中创建新的节点:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:27.832400Z", "iopub.status.busy": "2022-12-14T21:22:27.832052Z", "iopub.status.idle": "2022-12-14T21:22:31.311325Z", "shell.execute_reply": "2022-12-14T21:22:31.310539Z" }, "id": "b50da8b1c28d" }, "outputs": [], "source": [ "dense = layers.Dense(64, activation=\"relu\")\n", "x = dense(inputs)" ] }, { "cell_type": "markdown", "metadata": { "id": "0f36afe42ff3" }, "source": [ "“层调用”操作就像从“输入”向您创建的该层绘制一个箭头。您将输入“传递”到 `dense` 层,然后得到 `x`。\n", "\n", "让我们为层计算图多添加几个层:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:31.315381Z", "iopub.status.busy": "2022-12-14T21:22:31.315126Z", "iopub.status.idle": "2022-12-14T21:22:31.338333Z", "shell.execute_reply": "2022-12-14T21:22:31.337760Z" }, "id": "463d5cd0c484" }, "outputs": [], "source": [ "x = layers.Dense(64, activation=\"relu\")(x)\n", "outputs = layers.Dense(10)(x)" ] }, { "cell_type": "markdown", "metadata": { "id": "e379f089b044" }, "source": [ "model = keras.Model(inputs=inputs, outputs=outputs, name=\"mnist_model\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:31.341925Z", "iopub.status.busy": "2022-12-14T21:22:31.341339Z", "iopub.status.idle": "2022-12-14T21:22:31.349152Z", "shell.execute_reply": "2022-12-14T21:22:31.348616Z" }, "id": "7820cc2209a6" }, "outputs": [], "source": [ "model = keras.Model(inputs=inputs, outputs=outputs, name=\"mnist_model\")" ] }, { "cell_type": "markdown", "metadata": { "id": "c9aa111852d3" }, "source": [ "让我们看看模型摘要是什么样子:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:31.352537Z", "iopub.status.busy": "2022-12-14T21:22:31.352026Z", "iopub.status.idle": "2022-12-14T21:22:31.363236Z", "shell.execute_reply": "2022-12-14T21:22:31.362703Z" }, "id": "4949ab8242e8" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"mnist_model\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Layer (type) Output Shape Param # \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " input_1 (InputLayer) [(None, 784)] 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " dense (Dense) (None, 64) 50240 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " dense_1 (Dense) (None, 64) 4160 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " dense_2 (Dense) (None, 10) 650 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total params: 55,050\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Trainable params: 55,050\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Non-trainable params: 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "markdown", "metadata": { "id": "99ab8535d6c3" }, "source": [ "您还可以将模型绘制为计算图:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:31.370085Z", "iopub.status.busy": "2022-12-14T21:22:31.369553Z", "iopub.status.idle": "2022-12-14T21:22:31.502884Z", "shell.execute_reply": "2022-12-14T21:22:31.502115Z" }, "id": "6872f1b1b8b8" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOcAAAFgCAYAAABANm70AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3de0xUZ/4G8GeAYbjPgIto8YKXWtsupZG6VStFpaKNl1EKIt5Yra7RtnY1VuvaGuKa3Zq2tt1U19a2a5u4ETSR1eq60uiaKGNqEXC1xSrGrIpQxMIycnFgvr8/GubX0wEVHGbeGZ5PchJ5zzvnfOc953HmnJk5RyciAiJSzR4/T1dARO1jOIkUxXASKYrhJFJUwC8bLBYLtmzZ4olaiHqsPXv2OLU5vXJevXoVe/fudUtB9P/27t2La9eueboMcrNr1651mDenV8427SWZuo9Op8PKlSsxa9YsT5dCbpSXl4fMzMx25/GYk0hRDCeRohhOIkUxnESKYjiJFMVwEimK4SRSFMNJpCiGk0hRDCeRohhOIkUxnESKYjiJFMVwPoBDhw5h2LBhCAjo8Mc93SYsLAw6nU4zvfPOO26vwxV86bm4kkvCabVa8fDDD2Pq1KmuWJzyysvLMX36dKxbtw5VVVUeqcFqtaK4uBgAYDabISJYvXq1R2p5UL70XFzJJeEUEdjtdtjtdlcsrluFhYVh7NixD7SMN998E2PGjEFRURHCw8NdVJlvc8W49zQueT8WHh6O8vJyVyzKK3z66acIDg72dBnk43jM2QUMJrnDA4czPz9fcyDf1NTUbvuVK1eQmZkJk8mEXr16YerUqZpX23feecfRt1+/fjh9+jRSUlIQHh6OkJAQjB8/HidPnnT037Rpk6P/z98uHT582NH+q1/9ymn5t2/fxsmTJx19PHEypzv1hHFvaWlBbm4uJk6ciD59+iA4OBjx8fH44IMPHIdWtbW1TieZNm3a5Hj8z9vT09Mdy66ursaKFSsQFxeHwMBAREdHIy0tDSUlJR2O8YULFzBr1iz06tXL0Xbz5s0uPz8H+YXc3Fxpp/mezGazAJDGxsZ2281msxQWForVapWCggIJDg6WkSNHOi0nISFBQkNDZfTo0Y7+p0+flieeeEICAwPl3//+t6Z/aGioPPPMM07LSUxMlF69ejm1d9S/q2JjY8Xf3/+BlwNAcnNzO/WY4uJix9j+kreN+92eyy8dOHBAAMif/vQnuXXrllRXV8tf/vIX8fPzk9WrV2v6Tpo0Sfz8/OTSpUtOyxk9erTs2rXL8XdFRYUMHDhQYmJi5ODBg1JfXy/nzp2T5ORkCQoKksLCQs3j28Y4OTlZjh07Jrdv35ZTp06Jv7+/VFdX3/N5iNw1b3luC+eBAwc07enp6QLA6UkkJCQIACkuLta0nz17VgBIQkKCpp3hvHs4vWXcOxvOcePGObXPmzdP9Hq91NXVOdr+9a9/CQBZvny5pu+JEyckNjZW7ty542jLzs4WAJrAiojcuHFDDAaDJCYmatrbxvjQoUP3rLkjdwun2445R44cqfm7f//+AICKigqnvqGhoXjyySc1bfHx8XjooYdQWlqKGzdudF+hPsYXx33q1Kk4duyYU3tCQgJsNhvOnz/vaEtNTUV8fDx27tyJmpoaR/vbb7+NV155BXq93tGWn58PPz8/p48E+/Tpg8cffxxFRUXtXr70N7/5jSuelhO3hdNoNGr+DgwMBIB2P34xmUztLqN3794AgB9++MHF1fkuXxz3uro6bNiwAfHx8YiMjHQc57322msAgIaGBk3/3//+92hoaMC2bdsAAN9//z2OHj2K3/3ud44+zc3NqKurg91uh9FodDpePXPmDADg4sWLTvWEhoZ2y/NU8mxtTU0NpJ07E7btHG07CwD4+fnhzp07Tn1ra2vbXbZOp3NRlb7HW8Z92rRp+OMf/4glS5bg+++/h91uh4jgvffeAwCn5zB37lzExMTgww8/RHNzM959911kZ2cjMjLS0cdgMMBkMiEgIAA2mw0i0u40fvx4lz2Pe1EynE1NTTh9+rSm7T//+Q8qKiqQkJCAvn37Otr79u2L69eva/pWVlbiv//9b7vLDgkJ0exUjzzyCD7++GMXVu+9VB/3gIAAnD9/HidPnkSfPn2wYsUKREdHO4Lf2NjY7uMMBgOWL1+OH374Ae+++y527dqFV1991alfWloaWlpaNGen22zevBkDBgxAS0tLp2p+EEqG02g04g9/+AMsFgtu376Nb775BvPmzUNgYCA++OADTd/U1FRUVFTgww8/hNVqRXl5OV599VXN//I/N2LECHz//fe4evUqLBYLLl++jKSkJHc8LeV5w7j7+/tj3LhxqKysxNtvv42bN2+isbERx44dw/bt2zt83PLlyxEcHIw33ngDzz33HIYOHerU589//jOGDBmCRYsW4Z///Cfq6upw69YtfPTRR9i4cSPeeecd93701omzR+3at2+f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\n", "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "keras.utils.plot_model(model, \"my_first_model.png\")" ] }, { "cell_type": "markdown", "metadata": { "id": "6d9880136879" }, "source": [ "并且,您还可以选择在绘制的计算图中显示每层的输入和输出形状:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:31.507062Z", "iopub.status.busy": "2022-12-14T21:22:31.506380Z", "iopub.status.idle": "2022-12-14T21:22:31.636218Z", "shell.execute_reply": "2022-12-14T21:22:31.635422Z" }, "id": "aa14046d3388" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "keras.utils.plot_model(model, \"my_first_model_with_shape_info.png\", show_shapes=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "71969f9c91bb" }, "source": [ "此图和代码几乎完全相同。在代码版本中,连接箭头由调用操作代替。\n", "\n", "“层计算图”是深度学习模型的直观心理图像,而函数式 API 是创建密切反映此图像的模型的方法。" ] }, { "cell_type": "markdown", "metadata": { "id": "775b997c8c28" }, "source": [ "## 训练,评估和推断\n", "\n", "对于使用函数式 API 构建的模型来说,其训练、评估和推断的工作方式与 `Sequential` 模型完全相同。\n", "\n", "`Model` 类提供了一个内置训练循环(`fit()` 方法)和一个内置评估循环(`evaluate()` 方法)。请注意,您可以轻松地[自定义这些循环](https://tensorflow.google.cn/guide/keras/customizing_what_happens_in_fit/),以实现监督学习之外的训练例程(例如 [GAN](/examples/generative/dcgan_overriding_train_step/))。\n", "\n", "如下所示,加载 MNIST 图像数据,将其改造为向量,将模型与数据拟合(同时监视验证拆分的性能),然后在测试数据上评估模型:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:31.640315Z", "iopub.status.busy": "2022-12-14T21:22:31.639723Z", "iopub.status.idle": "2022-12-14T21:22:38.163183Z", "shell.execute_reply": "2022-12-14T21:22:38.162511Z" }, "id": "e61366d54487" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/750 [..............................] - ETA: 15:26 - loss: 2.3278 - accuracy: 0.0469" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 25/750 [>.............................] - ETA: 1s - loss: 1.5759 - accuracy: 0.5906 " ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 50/750 [=>............................] - ETA: 1s - loss: 1.1976 - accuracy: 0.6925" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 75/750 [==>...........................] - ETA: 1s - loss: 0.9897 - accuracy: 0.7421" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 99/750 [==>...........................] - ETA: 1s - loss: 0.8638 - accuracy: 0.7724" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "124/750 [===>..........................] - ETA: 1s - loss: 0.7746 - accuracy: 0.7931" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "149/750 [====>.........................] - ETA: 1s - loss: 0.7098 - accuracy: 0.8081" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "173/750 [=====>........................] - ETA: 1s - loss: 0.6592 - accuracy: 0.8218" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "198/750 [======>.......................] - ETA: 1s - loss: 0.6250 - accuracy: 0.8311" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "223/750 [=======>......................] - ETA: 1s - loss: 0.5914 - accuracy: 0.8380" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "248/750 [========>.....................] - ETA: 1s - loss: 0.5657 - accuracy: 0.8443" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "272/750 [=========>....................] - ETA: 0s - loss: 0.5412 - accuracy: 0.8506" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "296/750 [==========>...................] - ETA: 0s - loss: 0.5214 - accuracy: 0.8563" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "320/750 [===========>..................] - ETA: 0s - loss: 0.5022 - accuracy: 0.8612" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "345/750 [============>.................] - ETA: 0s - loss: 0.4875 - accuracy: 0.8652" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "370/750 [=============>................] - ETA: 0s - loss: 0.4724 - accuracy: 0.8685" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "395/750 [==============>...............] - ETA: 0s - loss: 0.4587 - accuracy: 0.8721" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "420/750 [===============>..............] - ETA: 0s - loss: 0.4461 - accuracy: 0.8751" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "444/750 [================>.............] - ETA: 0s - loss: 0.4360 - accuracy: 0.8780" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "469/750 [=================>............] - ETA: 0s - loss: 0.4280 - accuracy: 0.8803" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "494/750 [==================>...........] - ETA: 0s - loss: 0.4189 - accuracy: 0.8827" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "518/750 [===================>..........] - ETA: 0s - loss: 0.4108 - accuracy: 0.8845" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "542/750 [====================>.........] - ETA: 0s - loss: 0.4028 - accuracy: 0.8868" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "565/750 [=====================>........] - ETA: 0s - loss: 0.3950 - accuracy: 0.8888" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "590/750 [======================>.......] - ETA: 0s - loss: 0.3886 - accuracy: 0.8907" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "615/750 [=======================>......] - ETA: 0s - loss: 0.3823 - accuracy: 0.8926" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "640/750 [========================>.....] - ETA: 0s - loss: 0.3765 - accuracy: 0.8942" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "665/750 [=========================>....] - ETA: 0s - loss: 0.3701 - accuracy: 0.8960" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "690/750 [==========================>...] - ETA: 0s - loss: 0.3654 - accuracy: 0.8973" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "715/750 [===========================>..] - ETA: 0s - loss: 0.3598 - accuracy: 0.8986" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "740/750 [============================>.] - ETA: 0s - loss: 0.3542 - accuracy: 0.9001" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "750/750 [==============================] - 3s 3ms/step - loss: 0.3525 - accuracy: 0.9006 - val_loss: 0.1963 - val_accuracy: 0.9407\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2/2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/750 [..............................] - ETA: 2s - loss: 0.1896 - accuracy: 0.9219" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 25/750 [>.............................] - ETA: 1s - loss: 0.1843 - accuracy: 0.9469" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 50/750 [=>............................] - ETA: 1s - loss: 0.1916 - accuracy: 0.9472" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 75/750 [==>...........................] - ETA: 1s - loss: 0.1875 - accuracy: 0.9442" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "101/750 [===>..........................] - ETA: 1s - loss: 0.1912 - accuracy: 0.9440" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "126/750 [====>.........................] - ETA: 1s - loss: 0.1906 - accuracy: 0.9443" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "152/750 [=====>........................] - ETA: 1s - loss: 0.1842 - accuracy: 0.9469" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "177/750 [======>.......................] - ETA: 1s - loss: 0.1825 - accuracy: 0.9472" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "201/750 [=======>......................] - ETA: 1s - loss: 0.1792 - accuracy: 0.9479" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "225/750 [========>.....................] - ETA: 1s - loss: 0.1795 - accuracy: 0.9483" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "251/750 [=========>....................] - ETA: 1s - loss: 0.1777 - accuracy: 0.9489" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "277/750 [==========>...................] - ETA: 0s - loss: 0.1748 - accuracy: 0.9492" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "303/750 [===========>..................] - ETA: 0s - loss: 0.1729 - accuracy: 0.9497" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "329/750 [============>.................] - ETA: 0s - loss: 0.1728 - accuracy: 0.9498" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "356/750 [=============>................] - ETA: 0s - loss: 0.1723 - accuracy: 0.9495" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "383/750 [==============>...............] - ETA: 0s - loss: 0.1702 - accuracy: 0.9500" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "409/750 [===============>..............] - ETA: 0s - loss: 0.1700 - accuracy: 0.9499" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "436/750 [================>.............] - ETA: 0s - loss: 0.1676 - accuracy: 0.9504" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "462/750 [=================>............] - ETA: 0s - loss: 0.1673 - accuracy: 0.9506" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "488/750 [==================>...........] - ETA: 0s - loss: 0.1677 - accuracy: 0.9508" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "514/750 [===================>..........] - ETA: 0s - loss: 0.1664 - accuracy: 0.9508" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "541/750 [====================>.........] - ETA: 0s - loss: 0.1664 - accuracy: 0.9505" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "567/750 [=====================>........] - ETA: 0s - loss: 0.1662 - accuracy: 0.9506" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "594/750 [======================>.......] - ETA: 0s - loss: 0.1652 - accuracy: 0.9511" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "620/750 [=======================>......] - ETA: 0s - loss: 0.1647 - accuracy: 0.9512" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "646/750 [========================>.....] - ETA: 0s - loss: 0.1629 - accuracy: 0.9515" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "672/750 [=========================>....] - ETA: 0s - loss: 0.1633 - accuracy: 0.9514" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "699/750 [==========================>...] - ETA: 0s - loss: 0.1631 - accuracy: 0.9514" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "725/750 [============================>.] - ETA: 0s - loss: 0.1623 - accuracy: 0.9515" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "750/750 [==============================] - 2s 2ms/step - loss: 0.1613 - accuracy: 0.9516 - val_loss: 0.1461 - val_accuracy: 0.9572\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "313/313 - 0s - loss: 0.1391 - accuracy: 0.9577 - 472ms/epoch - 2ms/step\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Test loss: 0.13910873234272003\n", "Test accuracy: 0.9577000141143799\n" ] } ], "source": [ "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()\n", "\n", "x_train = x_train.reshape(60000, 784).astype(\"float32\") / 255\n", "x_test = x_test.reshape(10000, 784).astype(\"float32\") / 255\n", "\n", "model.compile(\n", " loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),\n", " optimizer=keras.optimizers.RMSprop(),\n", " metrics=[\"accuracy\"],\n", ")\n", "\n", "history = model.fit(x_train, y_train, batch_size=64, epochs=2, validation_split=0.2)\n", "\n", "test_scores = model.evaluate(x_test, y_test, verbose=2)\n", "print(\"Test loss:\", test_scores[0])\n", "print(\"Test accuracy:\", test_scores[1])" ] }, { "cell_type": "markdown", "metadata": { "id": "2e13d7168c86" }, "source": [ "有关更多信息,请参阅[训练和评估](https://tensorflow.google.cn/guide/keras/train_and_evaluate/)指南。" ] }, { "cell_type": "markdown", "metadata": { "id": "26991ef4dbbb" }, "source": [ "## 保存和序列化\n", "\n", "对于使用函数式 API 构建的模型,其保存模型和序列化的工作方式与 `Sequential` 模型相同。保存函数式模型的标准方式是调用 `model.save()` 将整个模型保存为单个文件。您可以稍后从该文件重新创建相同的模型,即使构建该模型的代码已不再可用。\n", "\n", "保存的文件包括:\n", "\n", "- 模型架构\n", "- 模型权重值(在训练过程中得知)\n", "- 模型训练配置(如果有的话,如传递给 `compile`)\n", "- 优化器及其状态(如果有的话,用来从上次中断的地方重新开始训练)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:38.167056Z", "iopub.status.busy": "2022-12-14T21:22:38.166390Z", "iopub.status.idle": "2022-12-14T21:22:38.895399Z", "shell.execute_reply": "2022-12-14T21:22:38.894359Z" }, "id": "7e5e48669225" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Assets written to: path_to_my_model/assets\n" ] } ], "source": [ "model.save(\"path_to_my_model\")\n", "del model\n", "# Recreate the exact same model purely from the file:\n", "model = keras.models.load_model(\"path_to_my_model\")" ] }, { "cell_type": "markdown", "metadata": { "id": "cfe2a761139b" }, "source": [ "有关详细信息,请阅读模型[序列化和保存](https://tensorflow.google.cn/guide/keras/save_and_serialize/)指南。" ] }, { "cell_type": "markdown", "metadata": { "id": "b747517364a9" }, "source": [ "## 所有模型均可像层一样调用\n", "\n", "在函数式 API 中,模型是通过在层计算图中指定其输入和输出来创建的。这意味着可以使用单个层计算图来生成多个模型。\n", "\n", "在下面的示例中,您将使用相同的层堆栈来实例化两个模型:能够将图像输入转换为 16 维向量的 `encoder` 模型,以及用于训练的端到端 `autoencoder` 模型。" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:38.899534Z", "iopub.status.busy": "2022-12-14T21:22:38.899271Z", "iopub.status.idle": "2022-12-14T21:22:39.055648Z", "shell.execute_reply": "2022-12-14T21:22:39.055014Z" }, "id": "f9924d8c9ed3" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"encoder\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Layer (type) Output Shape Param # \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " img (InputLayer) [(None, 28, 28, 1)] 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d (Conv2D) (None, 26, 26, 16) 160 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_1 (Conv2D) (None, 24, 24, 32) 4640 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " max_pooling2d (MaxPooling2D (None, 8, 8, 32) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_2 (Conv2D) (None, 6, 6, 32) 9248 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_3 (Conv2D) (None, 4, 4, 16) 4624 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " global_max_pooling2d (Globa (None, 16) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " lMaxPooling2D) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total params: 18,672\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Trainable params: 18,672\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Non-trainable params: 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: \"autoencoder\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Layer (type) Output Shape Param # \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " img (InputLayer) [(None, 28, 28, 1)] 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d (Conv2D) (None, 26, 26, 16) 160 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_1 (Conv2D) (None, 24, 24, 32) 4640 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " max_pooling2d (MaxPooling2D (None, 8, 8, 32) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_2 (Conv2D) (None, 6, 6, 32) 9248 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_3 (Conv2D) (None, 4, 4, 16) 4624 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " global_max_pooling2d (Globa (None, 16) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " lMaxPooling2D) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " reshape (Reshape) (None, 4, 4, 1) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose (Conv2DTra (None, 6, 6, 16) 160 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " nspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose_1 (Conv2DT (None, 8, 8, 32) 4640 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ranspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " up_sampling2d (UpSampling2D (None, 24, 24, 32) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose_2 (Conv2DT (None, 26, 26, 16) 4624 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ranspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose_3 (Conv2DT (None, 28, 28, 1) 145 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ranspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total params: 28,241\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Trainable params: 28,241\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Non-trainable params: 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] } ], "source": [ "encoder_input = keras.Input(shape=(28, 28, 1), name=\"img\")\n", "x = layers.Conv2D(16, 3, activation=\"relu\")(encoder_input)\n", "x = layers.Conv2D(32, 3, activation=\"relu\")(x)\n", "x = layers.MaxPooling2D(3)(x)\n", "x = layers.Conv2D(32, 3, activation=\"relu\")(x)\n", "x = layers.Conv2D(16, 3, activation=\"relu\")(x)\n", "encoder_output = layers.GlobalMaxPooling2D()(x)\n", "\n", "encoder = keras.Model(encoder_input, encoder_output, name=\"encoder\")\n", "encoder.summary()\n", "\n", "x = layers.Reshape((4, 4, 1))(encoder_output)\n", "x = layers.Conv2DTranspose(16, 3, activation=\"relu\")(x)\n", "x = layers.Conv2DTranspose(32, 3, activation=\"relu\")(x)\n", "x = layers.UpSampling2D(3)(x)\n", "x = layers.Conv2DTranspose(16, 3, activation=\"relu\")(x)\n", "decoder_output = layers.Conv2DTranspose(1, 3, activation=\"relu\")(x)\n", "\n", "autoencoder = keras.Model(encoder_input, decoder_output, name=\"autoencoder\")\n", "autoencoder.summary()" ] }, { "cell_type": "markdown", "metadata": { "id": "e87d4185b652" }, "source": [ "在上例中,解码架构与编码架构严格对称,因此输出形状与输入形状 `(28, 28, 1)` 相同。\n", "\n", "`Conv2D` 层的反面是 `Conv2DTranspose` 层,`MaxPooling2D` 层的反面是 `UpSampling2D` 层。" ] }, { "cell_type": "markdown", "metadata": { "id": "9c746c1a0b79" }, "source": [ "## 所有模型均可像层一样调用\n", "\n", "您可以通过在 `Input` 上或在另一个层的输出上调用任何模型来将其当作层来处理。通过调用模型,您不仅可以重用模型的架构,还可以重用它的权重。\n", "\n", "为了查看实际运行情况,下面是对自动编码器示例的另一种处理方式,该示例创建了一个编码器模型、一个解码器模型,并在两个调用中将它们链接,以获得自动编码器模型:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:39.070291Z", "iopub.status.busy": "2022-12-14T21:22:39.069673Z", "iopub.status.idle": "2022-12-14T21:22:39.281437Z", "shell.execute_reply": "2022-12-14T21:22:39.280735Z" }, "id": "862ac58e928b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"encoder\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Layer (type) Output Shape Param # \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " original_img (InputLayer) [(None, 28, 28, 1)] 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_4 (Conv2D) (None, 26, 26, 16) 160 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_5 (Conv2D) (None, 24, 24, 32) 4640 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " max_pooling2d_1 (MaxPooling (None, 8, 8, 32) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 2D) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_6 (Conv2D) (None, 6, 6, 32) 9248 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_7 (Conv2D) (None, 4, 4, 16) 4624 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " global_max_pooling2d_1 (Glo (None, 16) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " balMaxPooling2D) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total params: 18,672\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Trainable params: 18,672\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Non-trainable params: 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: \"decoder\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Layer (type) Output Shape Param # \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " encoded_img (InputLayer) [(None, 16)] 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " reshape_1 (Reshape) (None, 4, 4, 1) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose_4 (Conv2DT (None, 6, 6, 16) 160 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ranspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose_5 (Conv2DT (None, 8, 8, 32) 4640 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ranspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " up_sampling2d_1 (UpSampling (None, 24, 24, 32) 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 2D) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose_6 (Conv2DT (None, 26, 26, 16) 4624 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ranspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_transpose_7 (Conv2DT (None, 28, 28, 1) 145 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ranspose) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total params: 9,569\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Trainable params: 9,569\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Non-trainable params: 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: \"autoencoder\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Layer (type) Output Shape Param # \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " img (InputLayer) [(None, 28, 28, 1)] 0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " encoder (Functional) (None, 16) 18672 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " decoder (Functional) (None, 28, 28, 1) 9569 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total params: 28,241\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Trainable params: 28,241\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Non-trainable params: 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n" ] } ], "source": [ "encoder_input = keras.Input(shape=(28, 28, 1), name=\"original_img\")\n", "x = layers.Conv2D(16, 3, activation=\"relu\")(encoder_input)\n", "x = layers.Conv2D(32, 3, activation=\"relu\")(x)\n", "x = layers.MaxPooling2D(3)(x)\n", "x = layers.Conv2D(32, 3, activation=\"relu\")(x)\n", "x = layers.Conv2D(16, 3, activation=\"relu\")(x)\n", "encoder_output = layers.GlobalMaxPooling2D()(x)\n", "\n", "encoder = keras.Model(encoder_input, encoder_output, name=\"encoder\")\n", "encoder.summary()\n", "\n", "decoder_input = keras.Input(shape=(16,), name=\"encoded_img\")\n", "x = layers.Reshape((4, 4, 1))(decoder_input)\n", "x = layers.Conv2DTranspose(16, 3, activation=\"relu\")(x)\n", "x = layers.Conv2DTranspose(32, 3, activation=\"relu\")(x)\n", "x = layers.UpSampling2D(3)(x)\n", "x = layers.Conv2DTranspose(16, 3, activation=\"relu\")(x)\n", "decoder_output = layers.Conv2DTranspose(1, 3, activation=\"relu\")(x)\n", "\n", "decoder = keras.Model(decoder_input, decoder_output, name=\"decoder\")\n", "decoder.summary()\n", "\n", "autoencoder_input = keras.Input(shape=(28, 28, 1), name=\"img\")\n", "encoded_img = encoder(autoencoder_input)\n", "decoded_img = decoder(encoded_img)\n", "autoencoder = keras.Model(autoencoder_input, decoded_img, name=\"autoencoder\")\n", "autoencoder.summary()" ] }, { "cell_type": "markdown", "metadata": { "id": "0f77623d9cd5" }, "source": [ "如您所见,模型可以嵌套:模型可以包含子模型(因为模型就像层一样)。模型嵌套的一个常见用例是*装配*。例如,以下展示了如何将一组模型装配成一个平均其预测的模型:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:39.287205Z", "iopub.status.busy": "2022-12-14T21:22:39.286703Z", "iopub.status.idle": "2022-12-14T21:22:39.341737Z", "shell.execute_reply": "2022-12-14T21:22:39.341075Z" }, "id": "3bb36b630e5d" }, "outputs": [], "source": [ "def get_model():\n", " inputs = keras.Input(shape=(128,))\n", " outputs = layers.Dense(1)(inputs)\n", " return keras.Model(inputs, outputs)\n", "\n", "\n", "model1 = get_model()\n", "model2 = get_model()\n", "model3 = get_model()\n", "\n", "inputs = keras.Input(shape=(128,))\n", "y1 = model1(inputs)\n", "y2 = model2(inputs)\n", "y3 = model3(inputs)\n", "outputs = layers.average([y1, y2, y3])\n", "ensemble_model = keras.Model(inputs=inputs, outputs=outputs)" ] }, { "cell_type": "markdown", "metadata": { "id": "447a319b73a6" }, "source": [ "## 处理复杂的计算图拓扑\n", "\n", "### 具有多个输入和输出的模型\n", "\n", "函数式 API 使处理多个输入和输出变得容易。而这无法使用 `Sequential` API 处理。\n", "\n", "例如,如果您要构建一个系统,该系统按照优先级对自定义问题工单进行排序,然后将工单传送到正确的部门,则此模型将具有三个输入:\n", "\n", "- 工单标题(文本输入),\n", "- 工单的文本正文(文本输入),以及\n", "- 用户添加的任何标签(分类输入)\n", "\n", "此模型将具有两个输出:\n", "\n", "- 介于 0 和 1 之间的优先级分数(标量 Sigmoid 输出),以及\n", "- 应该处理工单的部门(部门范围内的 Softmax 输出)。\n", "\n", "您可以使用函数式 API 通过几行代码构建此模型:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:39.345342Z", "iopub.status.busy": "2022-12-14T21:22:39.344761Z", "iopub.status.idle": "2022-12-14T21:22:39.813426Z", "shell.execute_reply": "2022-12-14T21:22:39.812752Z" }, "id": "49009e53da63" }, "outputs": [], "source": [ "num_tags = 12 # Number of unique issue tags\n", "num_words = 10000 # Size of vocabulary obtained when preprocessing text data\n", "num_departments = 4 # Number of departments for predictions\n", "\n", "title_input = keras.Input(\n", " shape=(None,), name=\"title\"\n", ") # Variable-length sequence of ints\n", "body_input = keras.Input(shape=(None,), name=\"body\") # Variable-length sequence of ints\n", "tags_input = keras.Input(\n", " shape=(num_tags,), name=\"tags\"\n", ") # Binary vectors of size `num_tags`\n", "\n", "# Embed each word in the title into a 64-dimensional vector\n", "title_features = layers.Embedding(num_words, 64)(title_input)\n", "# Embed each word in the text into a 64-dimensional vector\n", "body_features = layers.Embedding(num_words, 64)(body_input)\n", "\n", "# Reduce sequence of embedded words in the title into a single 128-dimensional vector\n", "title_features = layers.LSTM(128)(title_features)\n", "# Reduce sequence of embedded words in the body into a single 32-dimensional vector\n", "body_features = layers.LSTM(32)(body_features)\n", "\n", "# Merge all available features into a single large vector via concatenation\n", "x = layers.concatenate([title_features, body_features, tags_input])\n", "\n", "# Stick a logistic regression for priority prediction on top of the features\n", "priority_pred = layers.Dense(1, name=\"priority\")(x)\n", "# Stick a department classifier on top of the features\n", "department_pred = layers.Dense(num_departments, name=\"department\")(x)\n", "\n", "# Instantiate an end-to-end model predicting both priority and department\n", "model = keras.Model(\n", " inputs=[title_input, body_input, tags_input],\n", " outputs=[priority_pred, department_pred],\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "ee2735b3eff1" }, "source": [ "现在绘制模型:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:39.817475Z", "iopub.status.busy": "2022-12-14T21:22:39.816965Z", "iopub.status.idle": "2022-12-14T21:22:40.011587Z", "shell.execute_reply": "2022-12-14T21:22:40.010543Z" }, "id": "52c4dc6fd93e" }, "outputs": [ { "data": { "image/png": "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/HhnZ2euowMA6ECoAAEAOgeNTxNtbGw0MjLSeJxQV1dnY2NTXV2t1G5qalpSUiIWizmJSv88ffrU3Nz8ee9F/9wnlUpTUlLq6+vd3NzoK7bjKxUAMByoAAEAOh+NTBP19vZetmxZaGhoh4ZqmGbNmvXLL7+wzwYUCoWvvfbaTz/9xGFUekOhUHz99dd79uw5f/68Ov2rq6szMzOlUulvv/129+5da2trf3//wMDACRMmODk5dXS0AAC6BhUgAEAn1uZpojdv3uzbty8h5M0334yLi8OlzDTr6NGj48ePb9oYHBzMSTz65P79+zNmzPjzzz/p/3fv3r2lngUFBfQV20+dOiWXyz08POiXhp+fn0Ag0GLIAAC6BRUgAICeeK5pot999938+fPlcrlAIHBwcNi1a9fo0aM5CVsvyeVye3v7srIypqVLly4ymQyFRzvt37//7bffrq2tbWhoMDIy2rJly5w5c9gdnj59euLEiaSkpCNHjjx48MDW1tbPz49+FTg6OnIVNgCATkEFCACgh1qdJjpx4sQjR440NjYSQoyMjBQKxZw5c7755htTU1OuY9cTH3zwwbZt2+iJoEKhMDIykn1deHhelZWVCxcujI+P5/H+99HFyMho4sSJ/+///T9CyNWrV+krtv/xxx8KhYL+JTwkJMTb25vP53MdOwCAbkEFCACgz549e5aenp6SkvL7779fvHiRz+ePGDEiMDDwq6++qqmpYfcUCAS9evXas2ePp6cnV9Hqk/T09FGjRrH/9Pb25jCeTi0zM3P69OmFhYVK19gwMTEJCwtLTU19/Pixk5PTuHHjxo0bFxgY2KVLF65CBQDQfagAAQAMBTNN9NChQ0VFRU07CAQChUKxePHiVatWYV3EdqIoytnZ+eHDh4QQR0fHhw8f8ng8roPqfBoaGj7//PPPP/+cx+PRP1kr8fDwmD59+rhx44YMGaL98AAAOiNMjQAAMBQ2Njbh4eFbt26NjIxstsCTy+UKhSI2NtbLy+v69evaj1Cf8Hi8119/3djY2NjY+I033kD51wa5ubnDhg1bvXq1QqFotvwzNjYeP378kiVLUP4BAKgPFSAAgME5fPgw+0IFShobGy9dujRkyJC1a9cqFAptBqZnXnvttWfPnj179uxf//oX17F0MhRFbdu27cUXX8zNzW229qM9e/bst99+02ZgAAB6ALNAAfTT119/nZmZyXUUoIsaGhoOHTqkZvK3s7MbPnw4LmLeZkePHiWEjBs3jutAOpO6urqsrKzi4mI1+4eEhJiYmHRoSKAHRo4c+fHHH3MdBYBOwG+AAPopMzPzzJkzXEcBrXjw4MH+/fu1vNPHjx9TFMXn8/l8ftOpiTwez9jY2MzMrGvXro6OjmKx+M6dOyp+hNGsM2fO6Nlx+8ILL/Ts2ZPrKDqTxsbG27dvi8Xibt262djYWFpaisXiZq+iwePx6AO42ZNaAdjOnDmDb0UBGLgwEYDe8vLy2rdvH9dRgCqJiYkRERFafpp+/vnnAQMGdP2btbV1VxZzc3NtBqMkPDycEKJPx21BQQEhxMXFhetA9EFVVVV5eXlFRYXSv25ubpMnT+Y6OtBpdG4BABoqQAAAw/L666+//vrrXEdhKFD7aZCFhYWFhYWzszPXgQAAdG6YBQoAAAAAAGAoUAECAAAAAAAYClSAAAAAAAAAhgIVIAAAdDI7d+7k/a3p0jV3796dOHFiZWVlSUkJ083Dw6Ouro7djX0rj8cbNmyYFh/Bczhy5Ei/fv2aXQzzyZMnW7Zs8ff379q1q1gs7tu374wZM3JycpS6yeXy7du3v/TSS9bW1lZWVp6ent9+++2zZ8+YDtHR0Xv37m1PkPox5hRFpaenv//++/369ROJRHZ2dqNGjdq5cyf70inqjDnGU0k7j+FmxzM6Opp54F5eXh0YPYBeogBAH02dOnXq1KlcRwGtoD/WtOGOVVVVffr0mTBhgsZD4paax+3PP/9MCNm8eXPTmy5evGhjY7Nx40amJSsri36/i4yMbNo/MzPT2tq6PTF3nJs3b4aGhg4ZMsTS0tLIyKhph7ffflsgEHzzzTePHj2qrq4+deqUm5ubkZHRgQMH2N1mzpxJCFm2bFlxcXFJScnatWsJISEhIewd9erV65NPPmlbnHoz5rm5uYSQwMDAnJyc2traW7duvfbaa4SQhQsXMn3UGXOMJ0Mjx7Dq8TQyMhoxYkSrkeA9EYANFSCAftK/dzszM7OXX35Zz/be5gqwsrLSxcVl/PjxGg9JTR00IO2sACsqKrp37670KTkrK0skEllbWxNCdu/erXQXXf70/Nprr61Zs6ahocHJyamlT8/vvPMOuyU7O5sQ0rdvX6bl1q1bhBAPDw92t7FjxxJCzp49y74jj8fbu3fv8wapT2Oem5srEAjKysqYlvr6emtra5FIVFdXR7eoM+YUxvNvGjmGKZXjiQoQoA0wCxQAoPOxsLC4devWkSNHuA5Et6xbt66oqGjlypVK7SYmJrt27eLz+ZGRkfn5+ZzE1gbbt2+Pjo5udu4cLT4+fuvWrewWd3d3sVh869Yt6u+Ji/fv3yeEDBgwgN3N1dWVEHLv3j32HadOnbpw4UK5XP5cQerTmLu6ujY0NFhZWTEtxsbGzs7O9fX1zPRLdcacYDz/ppFjmLRjPAGgWagAAQBAH1AUFR8fP2LEiG7dujW9NTg4+JNPPqmqqgoPD1c6mUpnicXi571LdXV1bW3toEGDeDwe3eLq6ioUCvPy8tjd8vLyeDze4MGD2Y1Tpkx58ODB4cOH1d+d/o25kvLy8hs3bnh4eEgkkpb6NB1zGsaTaOgYprVhPAGgJagAAYAQQkpLSz/++OPevXuLRKLu3bsHBgb++OOPtbW1SrcaGxtbWVmNHz/+xIkT9E0HDx5kTse/c+dOREREly5drK2tQ0JC6Oln6uxCLpfv3bt37NixDg4OYrF48ODBcXFxCoWCvmNsbCyPx6uurk5PT6d3xP5GWSaTRUVF9ezZ09jY2NbWNiwsjJ5EpH5sHbT3jsN+XPQHQXUeKf1AeDxe9+7ds7KyAgICLCwsTE1Nx4wZk56eTvf5/PPP6T6jRo2iW44ePUq32NjYqDMgHMrJySkuLnZ3d2+pw2effRYUFHTp0qUPP/xQxXY0crRzcmAQQvbt20cIWbFiBdNib28fGxubk5OzfPlymUxWVla2bt261NTUlStX9uvXj33foUOHEkKOHTum/u70eMwrKyvT09MnTpzo4OCQkJCgomfTMadhPNtGg+MJAC3icgoqAHSY5zrn4dGjR7169XJwcJBKpZWVlUVFRatWrSKErF+/nrnV3t5eKpVWVFRcv349LCyMx+N9//33zBYmTZpECJk0aVJGRsbTp09TUlLEYvHw4cPV3IVUKiWEfPHFF2VlZTKZbMOGDXw+f9GiRewgmz3xrLCw8IUXXrC3tz98+HBVVdWVK1d8fX1NTEwyMjLUj61D965am88DZB5XbW2t+o+Uoih3d3czM7ORI0fSfbKysoYMGWJsbHzy5EkVD9bT01PpRKOWzgMcM2ZM165dMzMz2/ag2nMeIN34xRdfKHXOysqSSCT0/2UymbOzMyGEXuCRanIOlUaO9vYfGEpaOodKSVFRkb29/Zw5c5relJiY2L17d/p938bGZvv27U37VFRUEEJ8fHzUD0xfx5zOToQQPz+/S5cuqeipYswxnmztP4ZbGk+cBwjQBqgAAfTTc73bzZ49mxCidJL9uHHj6PKMvnXPnj3MTXV1dd26dROLxUVFRXQL/XlCKpWyAyCEyGQydXYhlUr9/PzYN82cOVMoFFZUVDAtzZYcb7zxBiFk165dTMujR49EIpGnpyfT0mpsHbp31TqiAlTxSCmKon9euHjxItNy6dIlQoi7uzvT0p4K0NfX18rKqs0fE9tTAa5bt44QsmnTJqXO7E/PFEVlZmYKhUIzM7Pc3FyqyadnjRzt7T8wlKjz6bmkpGTo0KERERFyuZzdrlAo5s6dKxQKv/7666KiIplMtnXrVrFYHBER0dDQoLQRHo/Xp08f9QPT4zGvr6/Pzc199913jYyM/vOf/zTbp6UxZ2A8Ge05hhnNjicqQIA2wCxQACAHDhwghIwfP57dmJycvGDBAubWCRMmMDeJRKKAgIDa2lqlCTnDhw9n/k9/S11YWKjOLkJCQphJSjR3d/eGhoarV6+qjvzgwS0l8jkAACAASURBVIN8Pj8kJIRpcXBwGDhw4Pnz5x88eKBmbFrYuzapeKQ0MzMzej4VbfDgwd26dcvJyXn06FH7937y5MmysrKRI0e2f1PPi54QKxQKVXfz8vKKjY2trq4ODw9n5jkzNHK0a//AqK6uDg4OdnNz27Vrl5GREfumn3/++fvvv3/33Xc/+ugje3t7Gxubd955h77A2rfffqu0HYFA0HRMVNDjMTc2NnZ1dd28efPEiRNXrlyZmpqq1EHFmDMwnurriPEEgJagAgQwdPX19RUVFSYmJhYWFurfam9vTwgpKipiN7IXSzA2NiaE0GfTqd4FIaSiomLlypWDBw+2srKiT1BZvHgxIaSmpqbVyBUKhUQiYV8W+cKFC4SQGzduqBObdvauTSoeKa1Lly5Kd7GzsyOEPH78uOOj60AmJiaEkIaGhlZ7RkVFRUREXLly5YMPPmC3a/Bo1+aBIZfLw8PDnZycfvrpp6YfnY8ePUoICQwMZDcGBAQQQpKTk5tu6rmW7jCEMQ8NDSWEJCUlsRtVjzm7G8ZTHR00ngDQElSAAIZOJBJJJJK6urqqqir1by0uLiaEODg4tH8XhJDQ0NBVq1bNnTs3Pz9foVBQFLV+/XpCCMVaDZz3z3Xh6M126dJFIBA0ncxGUdSYMWPUiY3zvWtfaWkp+6GRv2s/ug4khPD5/GfPnrE7lJeXK22k6YBwztHRkRBCnyzUqvj4+P79++/YsYOeUErT1NGu5QMjMjKyvr4+MTGRWZKnT58+Z86cof9fXV3d0h2fPn3K/rOyspKiKHoY1WQIYy4SiQghZWVl7EbVY07DeKqvg8YTAFqCChAAyJQpUwghSheX8/Dw+Oijj5hb2Wtw19fXp6WlicXi4ODg9u+isbExPT3dwcEhKirK1taWLi2aTvUxNTVlypL+/ftv27aNEBIWFiaXy5mlLGlr167t0aOHmpeN4nbvnKirq8vKymL+vHz5cmFhobu7O/PRytHR8eHDh0yHoqIi9oXjaM0OCLcGDRpECFFzipq5ufmvv/5qZmb23Xffsds1crRr88CIiYm5evXqb7/9RhcqTY0YMYIQkpaWxm48fvw4IcTLy4vdSD/p9DCqSc/GfNGiRTNnzlRqpH8pZU+YbHXMaRhPNXXceAJAi9Q/ZRAAOpE2rAXq6OiYlJRUWVl5//79efPm2dvb3717l/rnynKVlZXMynLbtm1jttB0VZKlS5cS1oojqnfh7+9PCFm3bp1MJqupqTl+/HiPHj0IISkpKcwGx40bJ5FI7t27l5GRIRAIrl27RlFUcXFx7969XVxcjhw5Ul5eXlpaumXLFlNTU/aSM63G1qF7V60jVoJR8UgpinJ3d5dIJAEBASrWAqXnlW3cuLGqqurmzZvTpk1zcnJSWgmm2QGhOF0LVKFQ2NnZNV2fRmkVDbadO3cSQlpaR7HNR7s6B8aMGTMIIQUFBa0+WKrlVTR++OGHlt7cmafgyZMnffv2FQqFcXFxxcXFJSUl8fHxpqamTk5OhYWF7K3t3r2bEHLgwAH1g9SzMV+4cCGPx/v3v/99+/bturq627dvL1myhBDi6elZU1ND91FnzGkYT7b2HMO0puNJw0owAG2AChBAPz3vu11JScmCBQt69eolFAodHR2nT5+en5/f7K0SiSQ4ODgtLY2+KTMzk/2evWLFCuqfMwwnTJjQ6i5kMllkZKSzs7NQKLS3t589e3Z0dDR9d2bpuby8PB8fHzMzM2dnZ/ZaefSVr1xcXIRCoa2tbVBQEFO5qRlbB+1dHW2rAOmVHhgzZsxQ/1lwd3d3cnK6du1acHCwhYWFWCz29fU9ffo0e/vl5eVz5sxxdHQUi8WjRo3Kysry9PSkt7N06VLVA+Lj48PVWqAURS1fvlwgEDx8+JD+UyaTsQeh2WUM582bp1TcauRob/XA8Pf3Nzc3b2nNQxp9nRIl7DX92at9KGF/ei4rK1u8eLGrq6tIJDI2Nu7du/cHH3zALAvJoE/Eevbs2XMFqU9jXlFRER8fHxwcTF8Ez9zc3NPTc82aNUz5R6k95hhPmqaO4WbHk4YKEKANUAEC6Ce823UK7fkNsG3oClCbe3wu7awAy8vLnZycIiMjOyY6jXny5IlYLG72omdcyc7O5vF47EsIqBkkxrxZGE/NajqeDFSAAG2A8wABAEBPSCQSqVS6f//+TZs2cR1LiyiKioqKsrS0ZC47zrmCgoKwsLBly5ZNnz6dblE/SIx5UxhPzWo6ngDQTqgAAQCgU5o3bx6PxzM3N2c3enh4nDt3Ljk5ubKykqvAVCsuLi4oKEhLS1NzYUYt2Lp16+rVq1evXs20PFeQGHMlGE/NajqehJDo6Gj6GhWNjY1aiAFAz/Cof87/BgD9EB4eTgjZt28f14GAKomJiREREdrJw7GxsfR1DmkrVqz4/PPPtbDf54LjFgA6AnILAJuA6wAAAEAbFi1atGjRIq6jAAAAAI5hFigAAAAAAIChQAUIAAAAAABgKFABAgAAAAAAGApUgAAAAAAAAIYCFSAAAAAAAIChwFqgAHpr//79PB6P6yigdXialGBAAEDjpk6dynUIALoCFSCA3vLy8vroo4+4jgJUyczM/Oabb/bu3ct1ILpi/fr1hBActwCgWXRuAQAaKkAAvdW9e/dp06ZxHQW04ptvvsHTxKCv14wBAQDNwrXgAdhwHiAAAAAAAIChQAUIAAAAAABgKFABAgAAAAAAGApUgAAAAAAAAIYCFSAAEEJIVlbW7Nmze/XqJRaLu3btOmjQoFdffXXz5s23bt3iOjQA4Mzdu3cnTpxYWVlZUlLC+5uHh0ddXR27G/tWHo83bNgwrgJW7ciRI/369RMImlkGb8uWLbwWjB8/nu7z5MmTLVu2+Pv7d+3aVSwW9+3bd8aMGTk5OeztREdHY3VfANBxqAABDJ1CoVi8eLG3t7ednV1ycnJ5eXlubu769esrKyvfe++9Pn36yOVyrmMEAA5kZ2cPGzYsKCjI0tLSxsaGoqisrCy6fcGCBeye9K2ZmZnW1tYURZ07d46jkFt069atiRMnLlu2rLi4+Hnv6+3tTf9n8eLFH3744aRJk65du1ZaWrpjx47s7GxPT8+DBw8ynefOnbts2bJPP/1UY6EDAGgaKkAAQ/fpp5/GxsZ+991369atc3V1FYlE9vb2Y8eOPXr0KPPNt+4wNzcfNWqUYe69/To6/s4+PsBWWVkZGhr66quvfvDBB+x2kUhkbW29devWPXv2cBVbG3z66afe3t7nz5+3sLBoqc+kSZOof8rPzxeJRHPnzmX6vPXWW/Pnz3dwcDA1NfXx8dm9e3djY+OSJUuYDr179z5w4MDq1asTExM79iEBALQVKkAAg5aXl/fll196enqyP+LQjIyM8DU2gMFat25dUVHRypUrldpNTEx27drF5/MjIyPz8/M5ia0Ntm/fHh0d3ez8T1qfPn18fHyUGjdu3Dh58mQHBwf6z/j4+K1bt7I7uLu7i8XiW7duURTFbpw6derChQsxgQIAdBMqQACDtm3bNoVCER4e3uytI0eOpChKxWcmANBLFEXFx8ePGDGiW7duTW8NDg7+5JNPqqqqwsPDlU4I1FlisVh1h8DAwIULF7Jbqqqqfvrpp/fee0/Fvaqrq2trawcNGsTj8djtU6ZMefDgweHDh9scMABAx0EFCGDQTp06RQgZMmSIOp1LS0s//vjj3r17GxsbW1lZjR8//sSJE/RNBw8eZFZNuHPnTkRERJcuXaytrUNCQpTWkmE2IhKJunfvHhgY+OOPP9bW1hJC5HL53r17x44d6+DgIBaLBw8eHBcXp1Ao6DvGxsbyeLzq6ur09HR6R+zSVCaTRUVF9ezZ09jY2NbWNiwsLDs7+7li66C9a4qKwf/888/pkJgZmEePHqVbbGxsVMdPt/N4vO7du2dlZQUEBFhYWJiamo4ZMyY9Pb3924dOKicnp7i42N3dvaUOn332WVBQ0KVLlz788EMV29FI0tDC66tZP/zwQ48ePUaPHq2iz759+wghK1asUGofOnQoIeTYsWMdFx4AQNtRAKCPpk6dOnXq1Fa7OTo6EkL++uuvVns+evSoV69e9vb2Uqm0oqLi+vXrYWFhPB7v+++/Z/pMmjSJEDJp0qSMjIynT5+mpKSIxeLhw4crbcTBwUEqlVZWVhYVFa1atYoQsn79eoqipFIpIeSLL74oKyuTyWQbNmzg8/mLFi1ih2FmZvbyyy8rxVZYWPjCCy/Y29sfPny4qqrqypUrvr6+JiYmGRkZ6sfWoXtvCb1mYKvd1Bn8prF5enrSy3Kojp+iKHd3dzMzs5EjR9KDk5WVNWTIEGNj45MnT2pk+2PGjOnatWtmZmarj1TN4xY62s8//0y/HJTas7KyJBIJ/X+ZTObs7EwI2blzJ93CrARD00jSaM/rq1lOTk5GRkatdlMoFP369fvuu+9U9CkqKrK3t58zZ07TmyoqKgghPj4+bQsSNA65BYANFSCAfnquCvDs2bOt9pw9ezYhZM+ePUxLXV1dt27dxGJxUVER3UJ/mJNKpewwCCEymYy9kb1797K3PG7cOKYC9PPzY980c+ZMoVBYUVHBtDRbY7zxxhuEkF27djEtjx49EolEnp6eTEursXXo3luiZgWozuC3swIkhFy8eJFpuXTpEiHE3d1dxX3V376vr6+VlZU6H9nxKU1HrFu3jhCyadMmpXZ2BUhRVGZmplAoNDMzy83NpZpUgBpJGu15fTVLzQrw8OHDFhYWVVVVLXUoKSkZOnRoRESEXC5vtgOPx+vTp0/bggSNQ24BYMMsUACDRp/kU1JS0mrPAwcOEEImTJjAtIhEooCAgNraWqWZTsOHD2f+T/9EUFhYyN6I0hKjycnJ9MryISEhzAwxmru7e0NDw9WrV1XHdvDgQT6fHxISwrQ4ODgMHDjw/PnzDx48UDM2Ley9zdQf/DYzMzOj563RBg8e3K1bt5ycnEePHrV/4ydPniwrKxs5cmT7NwXaQZ/dJxQKVXfz8vKKjY2trq4ODw+n53KzaSRpaOH11awNGzbMmjXL3Ny82Vurq6uDg4Pd3Nx27dplZGTUbB+BQNB0TAAAdAEqQACD5uvrSwihf/BRob6+vqKiwsTERGkhdXt7e0JIUVERu1EikTD/NzY2JoTQZ9O1tBFGRUXFypUrBw8ebGVlRZ8dtHjxYkJITU1Nq7EpFAqJRMK+iPOFCxcIITdu3FAnNu3svW2ea/DbrEuXLkotdnZ2hJDHjx9rZPvQuZiYmBBCGhoaWu0ZFRUVERFx5coVpYtGaDBpdOjrq1n5+fm///57S2vAyOXy8PBwJyenn376qaXyj+7W6vIzAACcQAUIYNAiIyMFAsH+/fubvXXJkiV8Pj8vL08kEkkkkrq6uqqqKnYH+trKzFLpqrW0EUZoaOiqVavmzp2bn5+vUCgoilq/fj0hhGIts6604B692S5duggEgoaGhqbzHMaMGaNObJzvXQU1B5/P5z979ozdoby8XGlTTeNnlJaWsh8p+bv2o+vA9m8fOhd6fjh9Mlur4uPj+/fvv2PHDvrsQZqmkkZHv76atWHDhtGjR7u5uTV7a2RkZH19fWJiIrPcUZ8+fc6cOcPuU1lZSf09zR4AQNegAgQwaP369fvss8/OnTu3Y8cOpZuuX7++devWadOmubq6EkKmTJlCCGEvbl5fX5+WliYWi4ODg9XcHb2RI0eOsBs9PDw++uijxsbG9PR0BweHqKgoW1tbupZoOofK1NSUqUP69++/bds2QkhYWJhcLmfWrqStXbu2R48eal6Pi9u9t0qdwXd0dHz48CHToaio6N69e+rET6urq8vKymL+vHz5cmFhobu7O/MRtp3bh85l0KBBhBA1p1mam5v/+uuvZmZm3333HbtdI0lDC68vJZWVlQkJCe+//36zt8bExFy9evW3334TiUQqNkK/WOhhBADQOZo8qRAAdMZznfUeHR0tFAqXLl16/fr1+vr6Bw8exMfHOzo6jho16unTp3Qf9rJ+lZWVzLJ+27ZtY7ZDL+pQW1vLtCxdupSwlhihN+Lo6JiUlFRZWXn//v158+bZ29vfvXuXoih/f39CyLp162QyWU1NzfHjx3v06EEISUlJYTY4btw4iURy7969jIwMgUBw7do1iqKKi4t79+7t4uJy5MiR8vLy0tLSLVu2mJqaspecaTW2Dt17S9qwFmhLg0/Pwdu4cWNVVdXNmzenTZvm5OSktFJLs/FTFOXu7i6RSAICAlSsBdqe7WMt0E5HoVDY2dk1XddHaSUYtp07dxJCWloLtM1JQ53X14wZMwghBQUF6jy0VleCWb9+vaOjY7O/Ov7www8tfZpSOrx3795NCDlw4IA6IYEWILcAsKECBNBPz/tud/bs2ddff93Z2VkoFFpYWHh5ecXFxdXX17P7lJSULFiwoFevXkKhUCKRBAcHp6Wl0TdlZmayPwytWLGC+ueUwgkTJjTdiKOj4/Tp0/Pz8+mbZDJZZGQkHYO9vf3s2bOjo6PpuzPr/uXl5fn4+JiZmTk7O7MXKqQvO+bi4iIUCm1tbYOCgpjKTc3YOmjvqqlZAaoefFp5efmcOXMcHR3FYvGoUaOysrI8PT3p+JcuXao6fnd3dycnp2vXrgUHB1tYWIjFYl9f39OnT2tq+z4+PlgLtNNZvny5QCB4+PAh/adMJmO/appdinPevHlKXwpoJGm0+vry9/c3NzdvaU1OGn25FyXs61LQFApFnz59Vq5c2exG2KvaqK4A6RMFnz17piIk0CbkFgA2HvXPhAsA+iE8PJz8fbVi0FmJiYkRERGc5+GhQ4eWlJR06MqKasJxqzsqKioGDhwYEhKyZcsWrmNRpby8vFu3bjNmzPj++++5juV/cnJyPDw8du/ePX36dK5jgf9BbgFgw3mAAAAAoEwikUil0v3792/atInrWFpEUVRUVJSlpeWqVau4juV/CgoKwsLCli1bhvIPAHQWKkAAAABohoeHx7lz55KTkysrK7mOpXnFxcUFBQVpaWlqLi6qBVu3bl29evXq1au5DgQAoEWoAAEADFdsbCyPx8vJyXn48CGPx/vkk0+4jgh0S8+ePZOSkiwtLbkOpHkODg6nT58eOHAg14H8n7Vr1+LXPwDQcQKuAwAAAM4sWrRo0aJFXEcBAAAA2oPfAAEAAAAAAAwFKkAAAAAAAABDgQoQAAAAAADAUKACBAAAAAAAMBRYCQZAbz148CAxMZHrKECVzMxMQgieJgZ9Vfo2DwhFUTweT6MR6S2MFRiUBw8edO/enesoAHQFj6IormMAAM0LDw/fv38/11EAAADohKlTp+7bt4/rKAB0AipAAADoxGpra9esWfPVV1+5uLhs2rTJz8+P64g6geLi4sWLF+/cuTMgIGDDhg0DBgzgOiIAANAenAcIAACdlVQqHThw4Ndff7106dKLFy+i/FOTvb19QkLCX3/9VVVVNWTIkPnz51dUVHAdFAAAaAkqQAAA6Hxu3rw5YcKEiRMnDhw4MDc3NyYmxtjYmOugOpnhw4dnZGRs3759z549rq6u27ZtUygUXAcFAAAdDhUgAAB0JjU1NTExMYMGDSooKEhJSZFKpc7OzlwH1Vnx+fxZs2Zdv3592rRp77333ogRI/766y+ugwIAgI6FChAAADoNqVTq5uYWFxe3du3ay5cvBwYGch2RPrCysoqLizt37pyJiYm3t/esWbNkMhnXQQEAQEdBBQgAAJ1Afn7+uHHjJk2aNHr06Ly8vPnz5wsEuKCRJg0dOvTUqVO//PLLyZMn+/fvHxcX19jYyHVQAACgeagAAQBAp1VXV8fExAwePPjx48enT59OSEiwt7fnOij9xOPxwsPDc3Nzo6Kili5dOmzYsNOnT3MdFAAAaBgqQAAA0F1SqXTAgAEbNmxYt25dVlaWt7c31xHpPzMzs5iYmMuXLzs6Ovr4+ISGht6/f5/roAAAQGNQAQIAgC7KyckZPXr05MmT/fz8rl+/Pn/+fCMjI66DMiB9+/Y9cuTIoUOHrl69OmDAgJiYmPr6eq6DAgAADUAFCAAAuqW8vHz+/PnDhg2rqalJT09PSEiwtbXlOigDFRoaevXq1U8//fS///3v4MGDjxw5wnVEAADQXqgAAQBAV1AUlZCQ4OrqunPnztjY2LNnz3p5eXEdlKETi8VLly7Nzc318vKaMGFCaGjo7du3uQ4KAADaDhUgAADohIsXL44aNerNN98MCgqip33y+XiT0hXdu3dPSEhIS0u7ffv2wIEDo6Ojnz59ynVQAADQFnhzBQAAjj158mT+/PnDhw9vaGg4c+ZMQkKCjY0N10FBM/z9/S9evLhmzZrNmzcPGDAgISGB64gAAOC5oQIEAADOKBSKhISE/v37JyYm7tix46+//ho+fDjXQYEqQqFw/vz5eXl5Y8aMmT17dkBAwNWrV7kOCgAAngMqQAAA4Mb58+dffvnlt99++7XXXrt+/fqsWbN4PB7XQYFaHB0dExIS/vrrr6dPn3p4eMyfP7+yspLroAAAQC2oAAEAQNvKysrmz5//0ksviUSiixcvxsXFWVpach0UPLfhw4dnZmbGx8fv2bPH1dU1ISGBoiiugwIAgFagAgQAAO1hpn3u37//hx9+OHHixKBBg7gOCtqOz+fPmjXr+vXr4eHhb7311ogRI86ePct1UAAAoAoqQAAA0JI///zTw8Njzpw5//rXv/Ly8jDtU29YWVnFxcVlZWUZGxuPHDly1qxZMpmM66AAAKB5qAABAKDDPXr0aNasWb6+vjY2NtnZ2XFxcRYWFlwHBRrm4eHx559//vLLLydPnuzfv39cXFxjYyPXQQEAgDJUgAAA0IHkcnlcXJyrq+uJEyd+/PHHtLQ0Nzc3roOCjsLj8cLDw3Nzc6OiopYsWTJ8+PDTp09zHRQAAPwDKkAAAOgof/zxh4eHx5IlS2bPnp2bmztr1iyuIwJtMDMzi4mJuXz5sr29/ejRo6dNm3b//n2ugwIAgP9BBQgAAJpXWFg4a9asMWPGODg45OTkxMXFmZubcx0UaFW/fv2Sk5N/++23rKysAQMGxMTE1NfXcx0UAACgAgQAAI1qaGigp31mZGQcOnQoJSXF1dWV66CAM6GhodeuXVu0aNHatWuHDBmSnJzMdUQAAIYOFSAAAGjM8ePHhw4dumzZso8//vjKlSshISFcRwTcE4vFMTEx+fn5I0aMeOWVV0JDQ2/fvs11UAAAhgsVIAAAaMCDBw9mzZoVEBDg4uJy7dq1mJgYExMTroMCHeLs7JyQkJCamlpQUDBw4MCYmJi6ujqugwIAMESoAAEAoF2ePXsWFxc3YMCAM2fOHDlyRCqV9uzZk+ugQEcFBARkZ2evWbNm/fr1ffv2TUhI4DoiAACDgwoQAADaTiqVDhgwYPny5QsXLrx8+fL48eO5jgh0nVAonD9/fl5e3pgxY2bPnh0QEHD16lWugwIAMCCoAAEAoC1u3boVGho6ceJENze33NzcmJgYkUjEdVDQaTg6OiYkJJw8ebK0tNTDw2P+/PmVlZVcBwUAYBBQAQIAwPOpra2NiYkZNGjQjRs3jh07JpVKe/TowXVQ0CmNHj36woUL8fHxu3fvdnV1TUhIoCiK66AAAPQcKkAAAHgOUqnUzc0tNjZ26dKlly5dCgoK4joi6Nz4fP6sWbOuX78eHh7+1ltveXl5nT17luugAAD0GSpAAABQy40bN1555ZVJkyYNHz78/7d373FR1Pv/wD8DLMuywIIo1zQRkpOIm4FfRSVECuR4IQnEjlYeD8RDUyQvKeWFk7ejYqVmxwtRkWSgPaRQM830FBcNUCAvgEGmXAOU+x3m98f8zpxtgWVYFmYvr+dfu5/57Gff8+Gzb+azO/MZ5rRPQ0NDvoMCLTFixIgDBw78/PPPBgYGHh4er776anV1Nd9BAQBoJ8wAAQCgH83NzdHR0a6urmVlZT/++GNSUtLo0aP5Dgq00LPPPpuamvrJJ59cvHjR2dn5wIEDXV1dfAcFAKBtKJxwDwAACqSkpKxataq+vj46OnrVqlX6+vp8RwTar6mpad++fbt373ZxcTl06NCMGTP4jggAQHvgN0AAAOhdQUGBn59fQECAl5dXQUHBmjVrMP2D4SEWi6Ojo/Py8qysrDw9PV999dWKigq+gwIA0BKYAQIAgLympqbo6OhJkyZVV1enpaXFx8dbWVnxHRToHGdn5wsXLnz99dc//fSTk5NTdHR0e3s730EBAGg8nAUKAAD/Q9P06dOn165d29TUtG3bNpz2Ceqgubl57969e/bsGTNmzIEDB+bMmcN3RAAAGgy/AQIA6BCapu/du9fX1pycnOeee27x4sXe3t447RPUh7GxcXR09K1bt6RSqb+///z58+/fv99X5d9++20YQwMA0DyYAQIA6JAdO3b4+/u3tbXJldfW1q5Zs8bd3b21tTU9PT0+Pn7UqFG8RAjQF0dHx6SkpO+//764uHjChAnR0dGtra1ydZqamjw9PY8fP85LhAAAGgEzQAAAXXH69Olt27YVFxfv37+fLaRpOj4+3tnZOSEhYf/+/devX586dSqPQQIo5uPjk5OTs3v37vfee2/ixImnTp2S3bpr166ysrIVK1b88MMPfEUIAKDmcB0gAIBOuHnz5vTp09va2miaFgqF+fn5Y8eOvXHjxqpVqzIzM5cvX75r1y5LS0u+wwTgqqysbNOmTSdOnJg9e/bBgwcnTJhQVFT09NNPd3R06OnpicXirKys8ePH8x0mAIDawQwQAED7lZeXT548uaamprOzkxAiEAj8/PzGjRt3+PDhGTNmHDp0aNKkSXzHCKCMH3/8cfXq1Xfv3l2xYsXdu3evXr3a0dFBCDEwMLC1tb1x48bIkSP5jhEAQL1gBggAoOVaWlpmzpz5yy+/UaSSJwAAH0FJREFUMEfGLCsrq3379r3yyisURfEVG8DgdXd3nzhxYuPGjXL3DBQIBO7u7levXjU0NOQrNgAANYTrAAEAtBlN08uWLcvLy5Ob/unr6xsbG4eEhGD6B5pOT09v8eLFRkZGckvXdnR0ZGZmvv7663wFBgCgnjADBADQZtu2bTt9+jRz8qesrq6uhw8fHjx4kJeoAFRr3759Dx8+7Orqkivv7OyMj4+XXfoIAABwFigAgNY6depUSEiIgjwvEonu3btnb28/nFEBqFZJSclTTz3V884QLIqizpw5ExAQMJxRAQCoLfwGCACgna5fv75kyRIFFSiKamlp2bBhw7CFBDAU1q1bp2D6RwihKOrll1/Ozc0dtpAAANSZAd8BAACA6j18+HDu3Lnd3d2yPwBSFCUQCNrb2wkhI0eOnDp16tSpU93d3WmaxtWAoKG6u7tfeumlJ5988vr16zdu3GhsbKQoSigUMjc+Yeu0t7fPmTPn5s2bNjY2/AYMAMA7nAUKAKBtGhsbp02bdvv2bUKIgYFBV1cXTdPm5ubslM/Nzc3Ozo7vMAFUjKbpoqKi7Ozs7OzsXieEkydPTktLE4lEfEcKAMAnzAABhhx+XQHQaImJiYsWLRpkI8gDAKAEleQfADk4CxRgOERGRnp4ePAdhdrJyMj44IMPEhMT+Q5EXbz//vuEkDfffHMwjZSWlj548GDcuHHW1tYqikunhYSEqKop5AF+0TRdWVlZXFzs4OBga2uL/CNHJfkHVEuF+QdAFmaAAMPBw8MD3+H16oMPPkDPsE6dOkUIQYeoFRUegSEPqBvkH1nIP2oIM0AYIlgLFAAAAAAAQFdgBggAAAAAAKArMAMEAAAAAADQFZgBAgAAAAAA6ArMAAEANNXvv/++YMGC+vr66upq6r8mT57c2toqW012K0VR7u7ufAWs2Pnz58ePH29g0MsSZUeOHKH64O/vz9R5/PjxkSNHZs+ePWLECJFI9NRTTy1ZsiQ3N1e2nU2bNmnQ2o9ffvkls49GRkZ8xwIgD/lHu/MPaDfMAAG0QWNj41NPPTVv3jw1bG0oqH+EwyAnJ8fd3d3X19fMzGzkyJE0TWdmZjLlkZGRsjWZrRkZGZaWljRNZ2Vl8RRyn4qKihYsWBAVFVVZWTnQ106fPp15sGHDhtWrVwcEBNy5c6empiYuLi4nJ8fNzS05OZmtHBYWFhUVtWXLFpWFPpQWL15M07SPjw/fgcCfIP8Q5J//0uL8A9oNM0AAbUDTdHd3d3d399C1ZmJiMnPmTJW0P3iq3V8l8N4b9fX18+fPf+mll1atWiVbLhQKLS0tjx49evLkSb5iU8KWLVumT5+enZ1tamraV52AgAD6zwoLC4VCYVhYGFtn+fLla9assbGxMTY29vT0/OKLL7q6ut566y22gqOj45kzZ3bu3JmUlDS0u6TVeB//PQ1nSMg/yD/IP6DpcD9AAG1gampaVFSknq0NBfWPcKjt3bu3oqJi69atcuVGRkYJCQl//etfw8PD3dzcxo8fz0t4A/Xxxx+LRCIFFZycnDw9PeUKDx069OKLL9rY2DBPY2Nj5SpIpVKRSFRUVETTNEVRbGFQUNC6desCAwN7PeMLQDHkH+QfgvwDGg6/AQIAaBiapmNjY6dOnWpnZ9dzq5+f3+bNmxsaGoKDg+UuyFFbig+/CCHPP//8unXrZEsaGho+++yzlStXKnhVU1NTS0vLxIkT2cMvxsKFC0tKSs6dO6d0wAA6C/mHIP+A5sMMEIB/MTExzDXlTzzxRGZmpo+Pj6mpqbGxsbe3d1paGlMnOTmZvfS8oKBg0aJFlpaWzNPY2Fh2k+x/3JqamrVr1zo6OhoaGlpYWPj7+1+5ckWJ1pjwmpqa0tLSmHIDA4Pa2lrZq+F37NhBCOns7GRLgoKChqi7ZINnIpQtuX//fkhIiLm5uaWl5bx589iv6rl08o4dO5g67BlWFy5cYEpGjhwp245cbwzRnvYlNze3srJSKpX2VWHbtm2+vr55eXmrV69W0A7HEdJXlzKqqqoiIiLGjh1raGg4atSowMDAnJwcleymYp988smYMWOee+45BXVOnTpFCHnnnXfkyp955hlCyHfffTd04SktPz//xRdflEgkYrHY09MzNTW1Zx0Ffc5lnBNCOjs7ExMTX3jhBRsbG5FI5OrqeuDAAfa0RgX5YdOmTb2Of9mX/P777yEhIaamppaWlq+88srjx4/v378/f/58U1NTW1vbsLCwhoYGjrvD/aM9bB9J5B/kH6K9+Qd0CA0AQ4wQkpiY2G81qVQqFos9PDzS09MbGxszMzMnTZpkaGh49epVtk5AQAAhxMvL68qVK01NTdeuXdPX16+qqmI3tbS0MDXLy8sdHBysra1TUlLq6uoKCgoCAwMpijp+/LgSrdE0LRaLZ8yYIRezn5+fnp7er7/+Klvo4eGRkJDApWeYVdG41OypZ4RMSUBAANOBly5dEolEU6ZMkX0Vl07uuadubm7MGgYK6jC8vb1HjBiRkZGh3E4FBQUFBQX1W+3zzz8nhOzatUuuPDMzUyKRMI+rqqpGjx5NCDlx4gRTwq7EwOA+QhR0aVlZ2ZNPPmltbX3u3LmGhoZbt255eXkZGRmlp6cr1wP29vb6+vr9Vuvu7h4/fvxHH32koE5FRYW1tXVoaGjPTXV1dYQQT09PLiFx/PyqpJ179+6Zm5vb29tfvHixoaEhLy/P19d37NixQqGQrcOlz/sd5ykpKcwQevToUVVV1cGDB/X09NavXy8bjIL80Nf4Z14SGBiYlZXV2NgYHx9PCPH39w8ICLh582ZDQ8ORI0cIIW+++eaAdofLR7uvkBRA/pGD/KPF+QdADmaAAEOO+wyQEHLz5k22JC8vjxAilUrZEuY/4vnz53u+XO6IZNmyZYSQkydPshVaW1vt7OxEIlFFRcVAW6P7OOZgvsVcuXIlW5Kammpvb9/e3t7v/tJDcwSWkpLCljC/QzLHrAwunTyYIzAvLy8LCwuljz84HoHt3buXEHL48GG5ctkjMJqmMzIyBAKBWCy+e/cu3eMIjPsIUdClr732GiFEdsJfXl4uFArd3Ny477Usjkdg586dMzU1bWho6KtCdXX1M888ExIS0tnZ2WsFiqKcnJy4hDScM8Dg4GBCyOnTp9mS0tJSoVAoOwPk0uf9jvOUlJRZs2bJvvXSpUsFAkFdXR1boiA/KJ4Bnjt3ji1xcXEhhPznP/9hSxwcHJydnQe0O1w+2moyA0T+YZ8i/6hV/gGQg7NAAdSIWCxmzg9huLq62tnZ5ebmlpeXy1b7v//7v36bOnPmDCFk7ty5bIlQKPTx8WlpaZE7+YRLa33x9fV1dXX99NNPa2pqmJJ9+/atXr1aIBAo3eYgTZkyhX3MfAldVlYmW4FjJyvn6tWrjx498vDwGHxTCjDnnvXbydOmTYuJiWlqagoODm5paZHbyn2EKOjS5ORkPT092WXxbWxsXFxcsrOzS0pKlNg1jg4ePPjqq6+amJj0urWpqcnPz2/ChAkJCQn6+vq91jEwMOjZJ7y7cOECIcTPz48tsbOzk1tOg2OfKx7n8+bNY8+4Y0il0o6Ojtu3b8uFpER+kL3hG3OpmGyJvb297EeS+xDq96OtDpB/WMg/Gpd/QKdgBgigRszNzeVKrKysCCF//PGHbKFYLFbcTltbW11dnZGRkdza1tbW1oSQioqKAbWmWGRkZHNz80cffUQIKSws/OGHH15//fXBNDhIEomEfWxoaEgIkVu0nWMnqzPm/uAdHR391oyIiAgJCbl165bcou0DGiF9dSnTSHd3t0QioWTcuHGDEHLv3j2ld1CxwsLCixcv9rUGQ2dnZ3BwsL29/WeffdbX4RdTrd/lH4ZZW1tbQ0ODkZGR3JElMz7ZOhz7XPE4r6ur27p1q6urq4WFBdPChg0bCCHNzc1yr1IiP5iZmbGP9fT09PX1jY2N2RJ9fX32IzmgIdTvR1sdIP/IQv7pqxE1zD+gazADBFAjNTU1NE3LljCHBbKHgFwIhUKJRNLa2iq34gJzu1t29eoBof68mhlryZIl1tbWH374YVtb2/79+1977TULCwsl2h82/Xaynp5ee3u7bIXa2lq5RvrqjeFha2tLCGEuJulXbGyss7NzXFwcc/UOQyUjRCgUmpubGxgYdHR09DzDxNvbewC7NBAHDx587rnnJkyY0OvW8PDwtra2pKQkdoUMJyena9euydapr6+naZrpRvUhFApNTU1bW1sbGxtlyx89eiRbh2OfKx7n8+fP3759e1hYWGFhYXd3N03T77//PiFE7iV9UdX4V+EQ4vcjyR3yD0H+Ucv8A7oGM0AANdLa2pqZmck+/eWXX8rKyqRSqRL/KhYuXEgIkV1vuq2t7fLlyyKRSPYcM+6MjY3Z4xJnZ+djx44xj4VC4cqVK//444/9+/cnJCSsWbNGicaHU7+dbGtrW1paylaoqKh48OCBXCN99cbwmDhxIiGE42lOJiYmX331lVgsZn6nZalkhAQGBnZ2dsouMkkI2bNnz5gxYzo7Ozk2MiD19fXx8fFvvPFGr1ujo6Nv37799ddfC4VCBY0wf1+mG9WKv78/+e+5oIzq6uqCggLZOhz7XME47+rqSktLs7GxiYiIGDVqFDOdGNA5aSoc/6oaQvx+JLlD/mEg/6hh/gGdghkggBqRSCRvv/12RkZGU1NTVlbW0qVLDQ0NDxw4oERTu3fvdnBwiIyMPHv2bENDQ2Fh4d/+9rfy8vIDBw4wZ9oM1LPPPltYWPjw4cOMjIzi4mLZ2+OuXLlSJBJt3rz5+eefd3JyUqLx4dRvJ/v6+paVlX344YeNjY1FRUVr1qzp+RtsX70xe/ZsS0tLuW98VU4qlVpZWeXm5nKs7+LicvToUblClYyQ3bt3Ozo6Ll++/Ntvv62rq3v06NHRo0fffffdmJgY9ivwpUuXUhT122+/cWxTsbi4OBMTE+bwUc6nn376z3/+8/r166amprJnhfW8eTezXryvr69KQlKhXbt2jRgxIjIy8tKlS42NjXfu3Fm6dKncSaFc+pwoHOf6+vqzZs2qqKjYt29fdXV1S0vLlStXmFU6OVKQDQaK4+4MZ0hDCvmHgfyjhvkHdIvyi8gAADeE81qg9vb2d+7c8fPzMzU1FYlEXl5eqampzNaMjIy+PrzMJfWsJUuWMOXV1dWRkZEODg4CgUAikfj5+V2+fFnp1vLz8z09PcVi8ejRo3uuAhcWFkb+vOIfF8qtxdczQrndeeedd+g/n2c1d+5c5rWKO5lRW1sbGhpqa2srEolmzpyZmZnp5ubGtLNx40bFveHp6TkMa/HRNP32228bGBiUlpYyT6uqqmT3t9el8FasWCG3oiD3EaKgS5mbeo0bN04gEIwaNcrX1/fSpUuy7zJ79mwTE5O+1sRjMDcnkCO7Ljyju7vbyclp69atvTYiu6qEHLn18ZkLdTiuWEuGcS1QmqYLCgpefPFFMzMzZuH7s2fP+vj4MHvxj3/8g6nTb5/3O86rqqrCw8NHjx4tEAisra2XLVu2adMmdvAoyA+MnuO/54CR/aWLELJ79+6ffvpJtmTbtm397g73cag4QfUK+UcO8o8sLcs/AHIwAwQYchwzOHNwMAzxDIW4uDglFuAezGrsylHzTuZ+BFZbW2tvbx8eHj7UIQ3S48ePRSJRrzfF4ktOTg5FUbLL0CumqiOw4TySU/NxriaQf+Qg/wwDvvIPgBycBQoAKnDkyJG1a9fyHYUOkUgkKSkpp0+fPnz4MN+x9Imm6YiICDMzs+3bt/Mdy/9XXFwcGBgYFRW1ePFivmMB0FTIP8pB/gH1gRkgACgpNjZ24cKFjY2NR44cefz48aJFi/iOSLdMnjw5Kyvr22+/ra+v5zuW3lVWVhYXF1++fFm55WeHwtGjR3fu3Llz506+AwHQbMg/SkD+AfWBGSAA/2JiYiiKys3NLS0tpShq8+bNfEfEVXJysoWFxb///e8vv/xyQMs2DD/N7WQFxo4de/bsWdnbr6kVGxub1NRUFxcXvgP5nz179mj3t+9aOc61gFb+XZB/Bkrr8w9oELU+YgPQEevXr1+/fj3fUQxYaGhoaGgo31FwpaGdDDAgGOfqCX8XAFAr+A0QAAAAAABAV2AGCAAAAAAAoCswAwQAAAAAANAVmAECAAAAAADoCqwEAzAcMjIy+A5BHTHdkpSUxHcg6qKkpISgQ7QX8oBaQf6Rg/wDoDsomqb5jgFAy1EUxXcIAKC8xMTEwd/uEnkAAJSgkvwDIAe/AQIMB2TwXiUlJYWEhOB7KFZwcDAh5NSpU3wHAv+jwpkb8oBaQf6Rg/yjhvDNEQwRXAcIAAAAAACgKzADBAAAAAAA0BWYAQIAAAAAAOgKzAABAAAAAAB0BWaAAAAAAAAAugIzQAD1ZWJiQsnQ09OzsLCQSqUrV67Mzs7mOzrQDL///vuCBQvq6+urq6vZsTR58uTW1lbZarJbKYpyd3fnK2DFzp8/P378eAODXhay3rRpU2Ji4vCHpM6QQ4BfWpZ/GAsWLKAoaseOHbKFyD+gWTADBFBfjY2NN2/eJIQEBATQNN3R0ZGfn//uu+/m5+e7u7v//e9/b25u5jtGUGs5OTnu7u6+vr5mZmYjR46kaTozM5Mpj4yMlK3JbM3IyLC0tKRpOisri6eQ+1RUVLRgwYKoqKjKyspeK4SFhUVFRW3ZsmWYA1NnyCHAI23KP6z4+PiUlJSe5cg/oFkwAwTQGPr6+tbW1gEBAT/88MNbb7316aefvvzyy7iZFXcmJiYzZ87U3PYHqr6+fv78+S+99NKqVatky4VCoaWl5dGjR0+ePMlXbErYsmXL9OnTs7OzTU1Ne63g6Oh45syZnTt3JiUlDXNsmgI5hEfIPwwNzT+MsrKyyMjIV155pecm5B/QLJgBAmikf/3rX1OnTv3mm2++/PJLvmMBNbV3796KioqtW7fKlRsZGSUkJOjp6YWHhxcWFvISmxI+/vjjTZs29Xr+J0sqlQYFBa1bt66zs3PYAtNQyCEwpLQs/zDCwsKCg4N9fX173Yr8AxoEM0AAjURRFPPF6kcffcR3LKCOaJqOjY2dOnWqnZ1dz61+fn6bN29uaGgIDg6WuyBHbYlEIi7VFi5cWFJScu7cuaGOR9Mhh8DQ0b78QwiJi4u7fft2TEyMgjrIP6ApMAME0FTMCT/Xrl3r6OhgSqqqqiIiIsaOHWtoaDhq1KjAwMCcnBxmU3JyMnuR/f3790NCQszNzS0tLefNm1dUVMS22dbWtnXr1r/85S/GxsYjRoyYP3/+N99809XVxVZQ8BZDqqamZu3atY6OjoaGhhYWFv7+/leuXGE27dixg9kv9gyoCxcuMCUjR45kSmJiYiiKampqSktLYzYxPyUx5RRFPfHEE5mZmT4+PqampsbGxt7e3mlpaYNvn0e5ubmVlZVSqbSvCtu2bfP19c3Ly1u9erWCdhT0PMdBRYZ32DzzzDOEkO+++26I2tcmOpVDBgP5Z6C0L/+UlJSsW7cuLi6ur7PQGcg/oDFoABhihJDExETlXiu7ioOclpYW5lNcVlZG03RZWdmTTz5pbW197ty5hoaGW7dueXl5GRkZpaensy8JCAhgWktPT29sbLx06ZJIJJoyZQpbITQ0VCKRXLx4sbm5uaKiYv369YSQK1euMFu5vMWAMCun9VutvLzcwcHB2to6JSWlrq6uoKAgMDCQoqjjx4+zdcRi8YwZM2Rf5ebmxiwqoKAOQyqVisViDw8PplsyMzMnTZpkaGh49epVlbTv7e09YsSIjIyMfvc0KCgoKCio32pcfP7554SQXbt2yZVnZmZKJBLmcVVV1ejRowkhJ06cYErYlRgYXHq+30Gl8mFjb2+vr6/f19a6ujpCiKenp3KN9zSYz+9QtDNQ2p1DBgP5Rw7yjwJ+fn4rV66U3bvt27f3rKa2+QdADmaAAENuiGaA7CJ+zNHba6+9RghJSEhgK5SXlwuFQjc3N7aE+WeZkpLClgQFBRFCqqqqmKcODg7Tp0+XfZfx48ezR29c3mJAOB6BLVu2jBBy8uRJtqS1tdXOzk4kElVUVDAlgzwCI4TcvHmTLcnLyyOESKVSBa/l3r6Xl5eFhQWXAw4VHoHt3buXEHL48GG5ctkjMJqmMzIyBAKBWCy+e/cu3eMIjEvP9zuoVD5sFM8AaZqmKMrJyUm5xnvS4hmgFuSQwUD+kYP805djx46NGzeusbGReapgBkira/4BkIOzQAE0VXl5OSFEIBAw5wIlJyfr6enNmzePrWBjY+Pi4pKdnV1SUiL7wilTprCPma9gy8rKmKdz5sxJT09//fXXr127xpy4VVBQMGvWLGYr97dQrTNnzhBC5s6dy5YIhUIfH5+WlhZVnWwjFouZs3cYrq6udnZ2ubm5TCcP0tWrVx89euTh4TH4prhjrq4RCASKq02bNi0mJqapqSk4OJj9RYjFvecVDKrhHzYGBgY99wV60p0cMhjIP0rQpvzz4MGDDRs2xMXFicViLvWRf0AjYAYIoKlSU1MJIR4eHgKBoK2tra6urru7WyKRyN5X98aNG4SQe/fuyb5QIpGwjw0NDQkh3d3dzNPDhw/Hx8cXFxf7+PiYmZnNmTOH+R9MCBnQW6gQ875GRkZyV19YW1sTQioqKlTyLubm5nIlVlZWhJA//vhDJe0PPyMjI0IIe32XAhERESEhIbdu3ZJbtH1APd/XoOJl2HR2dnJcNkbH6UgOGQzkH+VoU/5hzkGdNWsW+3LmbhBbtmxhnv7666+y9ZF/QCNgBgigkbq7uw8fPkwIeeONNwghQqHQ3NzcwMCgo6Oj52/93t7eHJtl/rd9//33tbW1ycnJNE0HBga+9957KnyLgRIKhRKJpLW1taGhQbacuS24jY0N81RPT6+9vV22Qm1tbc+96+tdampq6D/fFY059mKOwwbf/vCztbUlhDAXpfQrNjbW2dk5Li6OObuJwbHnFRv+YVNfX0/TNLP7oIDu5JDBQP5RjjblnzfeeEPuhXJngTo5ObGVkX9AU2AGCKCRoqKifv7554ULFwYHBzMlgYGBnZ2d7ApyjD179owZM4b7vYnMzc3z8/MJIQKB4IUXXmAWW2MXtlbJWyhh4cKFhBDZ9bXb2touX74sEon8/PyYEltb29LSUrZCRUXFgwcP5NoxNjZmj6KcnZ2PHTvGbmptbc3MzGSf/vLLL2VlZVKplP1HPsj2h9/EiRMJIRxPczIxMfnqq6/EYrHcjQG49Hy/hnnYMH8mZvdBAZ3KIYOB/KME5B+VtwygYj2/FAEA1SIqWgmmq6ursrIyOTl59uzZhJDly5c3NzezNSsrKx0dHceNG3f+/Pna2tqampojR44YGxvLvjVz0XxLSwtbsnHjRiKzCIFEIvHy8srNzW1tba2srIyOjiaE7Nixg/tbDIgSa/HV19ezK8IdO3aMrcOcQXTo0KGGhoZff/110aJF9vb2cislzJkzRyKRPHjwID093cDA4M6dO0y5VCqVSCQ+Pj4K1uIbTPu8rMXX3d1tZWXVc2UIuZUYZJ04cYIQ0tdafH31fL+DisuwWbJkCSGkuLiYy64pXgnmiy++IIScOXOGS1NcDObzOxTtDJR255DBQP6Rg/zDce8UrASjtvkHQA5mgABDTukMLnfdOUVREonE1dV1xYoV2dnZPeszt04aN26cQCAYNWqUr6/vpUuXmE0ZGRmyTb3zzjv0n086mjt3Lk3TOTk54eHhTz/9NHMvr2nTph0/fry7u5vLWyiB4xEYTdPV1dWRkZEODg4CgUAikfj5+V2+fFm2Qm1tbWhoqK2trUgkmjlzZmZmppubG7NrGzduZOrk5+d7enqKxeLRo0fLLlInlUrt7e3v3Lnj5+dnamoqEom8vLxSU1NV1b6np+fwr8VH0/Tbb79tYGBQWlrKPK2qqpL9i/e6FN6KFSvkDisV9DzHQUVzGDazZ882MTHp7OxUsDspKSk9v8SUXReeERwcbG9v397ePoCeUkijZ4Ban0MGA/lHDvJPvzsVHh4ul4L8/PxkK6ht/gGQgxkgwJBDBu8L9yOwIcUcgfEdBU2r+gistrbW3t4+PDxcVQ0OkcePH4tEotDQ0ME3lZOTQ1GU7PLxg6fRM0BQAPlHDvLPIKlz/gGQg+sAAQC0k0QiSUlJOX36NLPgh3qiaToiIsLMzGz79u2DbKq4uDgwMDAqKmrx4sUqiQ0AlIb8A6DOMAMEANBakydPzsrK+vbbb+vr6/mOpXeVlZXFxcWXL1/muLifAkePHt25c+fOnTtVEhgADBLyD4DawgwQAHRXTEwMRVG5ubmlpaUURW3evJnviFRv7NixZ8+eNTMz4zuQ3tnY2KSmprq4uAy+qT179uDbd9AgyD+8Q/4BnWXAdwAAALxZv379+vXr+Y4CAHQR8g8A8AW/AQIAAAAAAOgKzAABAAAAAAB0BWaAAAAAAAAAugIzQAAAAAAAAF2BlWAAhsP7779/6tQpvqNQOyUlJYSQ4OBgvgNRF9euXSPoEO2FPKBWkH/kIP8A6A6Kpmm+YwDQcviHCqDR1q5d6+HhMchGkAcAQAkqyT8AcjADBAAAAAAA0BW4DhAAAAAAAEBXYAYIAAAAAACgKzADBAAAAAAA0BWYAQIAAAAAAOiK/wdJUo+bNFFmTQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "keras.utils.plot_model(model, \"multi_input_and_output_model.png\", show_shapes=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "907c119d04a4" }, "source": [ "编译此模型时,可以为每个输出分配不同的损失。甚至可以为每个损失分配不同的权重,以调整其对总训练损失的贡献。" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:40.016242Z", "iopub.status.busy": "2022-12-14T21:22:40.015556Z", "iopub.status.idle": "2022-12-14T21:22:40.030302Z", "shell.execute_reply": "2022-12-14T21:22:40.029717Z" }, "id": "3e1acef07668" }, "outputs": [], "source": [ "model.compile(\n", " optimizer=keras.optimizers.RMSprop(1e-3),\n", " loss=[\n", " keras.losses.BinaryCrossentropy(from_logits=True),\n", " keras.losses.CategoricalCrossentropy(from_logits=True),\n", " ],\n", " loss_weights=[1.0, 0.2],\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "c4bd84048d41" }, "source": [ "由于输出层具有不同的名称,您还可以使用对应的层名称指定损失和损失权重:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:40.033591Z", "iopub.status.busy": "2022-12-14T21:22:40.033369Z", "iopub.status.idle": "2022-12-14T21:22:40.042246Z", "shell.execute_reply": "2022-12-14T21:22:40.041628Z" }, "id": "37a6af4b30c8" }, "outputs": [], "source": [ "model.compile(\n", " optimizer=keras.optimizers.RMSprop(1e-3),\n", " loss={\n", " \"priority\": keras.losses.BinaryCrossentropy(from_logits=True),\n", " \"department\": keras.losses.CategoricalCrossentropy(from_logits=True),\n", " },\n", " loss_weights={\"priority\": 1.0, \"department\": 0.2},\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "845b20ca3c9d" }, "source": [ "通过传递输入和目标的 NumPy 数组列表来训练模型:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:40.045573Z", "iopub.status.busy": "2022-12-14T21:22:40.045086Z", "iopub.status.idle": "2022-12-14T21:22:50.291198Z", "shell.execute_reply": "2022-12-14T21:22:50.290530Z" }, "id": "ae5ff9364b19" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/40 [..............................] - ETA: 2:34 - loss: 1.2824 - priority_loss: 0.6962 - department_loss: 2.9312" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 2/40 [>.............................] - ETA: 4s - loss: 1.2990 - priority_loss: 0.6979 - department_loss: 3.0056 " ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 3/40 [=>............................] - ETA: 4s - loss: 1.2897 - priority_loss: 0.7019 - department_loss: 2.9389" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 4/40 [==>...........................] - ETA: 4s - loss: 1.2748 - priority_loss: 0.6993 - department_loss: 2.8777" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 5/40 [==>...........................] - ETA: 4s - loss: 1.2535 - priority_loss: 0.6988 - department_loss: 2.7734" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 6/40 [===>..........................] - ETA: 4s - loss: 1.2486 - priority_loss: 0.6968 - department_loss: 2.7587" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 7/40 [====>.........................] - ETA: 4s - loss: 1.2364 - priority_loss: 0.6997 - department_loss: 2.6835" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 8/40 [=====>........................] - ETA: 3s - loss: 1.2473 - priority_loss: 0.6999 - department_loss: 2.7369" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 9/40 [=====>........................] - ETA: 3s - loss: 1.2619 - priority_loss: 0.7001 - department_loss: 2.8092" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "10/40 [======>.......................] - ETA: 3s - loss: 1.2614 - priority_loss: 0.7003 - department_loss: 2.8054" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "11/40 [=======>......................] - ETA: 3s - loss: 1.2699 - priority_loss: 0.6986 - department_loss: 2.8562" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "12/40 [========>.....................] - ETA: 3s - loss: 1.2676 - priority_loss: 0.6985 - department_loss: 2.8454" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "13/40 [========>.....................] - ETA: 3s - loss: 1.2731 - priority_loss: 0.6981 - department_loss: 2.8749" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "14/40 [=========>....................] - ETA: 3s - loss: 1.2646 - priority_loss: 0.6981 - department_loss: 2.8325" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "16/40 [===========>..................] - ETA: 2s - loss: 1.2600 - priority_loss: 0.6987 - department_loss: 2.8065" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "17/40 [===========>..................] - ETA: 2s - loss: 1.2659 - priority_loss: 0.7000 - department_loss: 2.8294" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "18/40 [============>.................] - ETA: 2s - loss: 1.2648 - priority_loss: 0.6996 - department_loss: 2.8263" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "19/40 [=============>................] - ETA: 2s - loss: 1.2709 - priority_loss: 0.7000 - department_loss: 2.8546" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "20/40 [==============>...............] - ETA: 2s - loss: 1.2741 - priority_loss: 0.6995 - department_loss: 2.8727" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "21/40 [==============>...............] - ETA: 2s - loss: 1.2722 - priority_loss: 0.6994 - department_loss: 2.8638" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "24/40 [=================>............] - ETA: 1s - loss: 1.2778 - priority_loss: 0.6991 - department_loss: 2.8937" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "25/40 [=================>............] - ETA: 1s - loss: 1.2786 - priority_loss: 0.6988 - department_loss: 2.8992" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "26/40 [==================>...........] - ETA: 1s - loss: 1.2825 - priority_loss: 0.7000 - department_loss: 2.9125" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "28/40 [====================>.........] - ETA: 1s - loss: 1.2812 - priority_loss: 0.7006 - department_loss: 2.9030" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "29/40 [====================>.........] - ETA: 1s - loss: 1.2815 - priority_loss: 0.7002 - department_loss: 2.9066" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "30/40 [=====================>........] - ETA: 1s - loss: 1.2795 - priority_loss: 0.6997 - department_loss: 2.8989" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "31/40 [======================>.......] - ETA: 0s - loss: 1.2815 - priority_loss: 0.6999 - department_loss: 2.9081" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "34/40 [========================>.....] - ETA: 0s - loss: 1.2814 - priority_loss: 0.7002 - department_loss: 2.9057" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "36/40 [==========================>...] - ETA: 0s - loss: 1.2823 - priority_loss: 0.7001 - department_loss: 2.9110" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "40/40 [==============================] - 8s 91ms/step - loss: 1.2805 - priority_loss: 0.6993 - department_loss: 2.9057\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2/2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/40 [..............................] - ETA: 4s - loss: 1.3596 - priority_loss: 0.7339 - department_loss: 3.1284" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 3/40 [=>............................] - ETA: 2s - loss: 1.3326 - priority_loss: 0.7094 - department_loss: 3.1159" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 4/40 [==>...........................] - ETA: 3s - loss: 1.3325 - priority_loss: 0.7027 - department_loss: 3.1488" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 5/40 [==>...........................] - ETA: 3s - loss: 1.3318 - priority_loss: 0.6993 - department_loss: 3.1621" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 6/40 [===>..........................] - ETA: 3s - loss: 1.3281 - priority_loss: 0.6992 - department_loss: 3.1445" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 7/40 [====>.........................] - ETA: 3s - loss: 1.3304 - priority_loss: 0.7042 - department_loss: 3.1309" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 8/40 [=====>........................] - ETA: 3s - loss: 1.3224 - priority_loss: 0.7003 - department_loss: 3.1105" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 9/40 [=====>........................] - ETA: 3s - loss: 1.3077 - priority_loss: 0.6969 - department_loss: 3.0541" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "10/40 [======>.......................] - ETA: 3s - loss: 1.3075 - priority_loss: 0.6976 - department_loss: 3.0497" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "11/40 [=======>......................] - ETA: 3s - loss: 1.3109 - priority_loss: 0.6991 - department_loss: 3.0589" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "12/40 [========>.....................] - ETA: 3s - loss: 1.3107 - priority_loss: 0.6994 - department_loss: 3.0567" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "15/40 [==========>...................] - ETA: 2s - loss: 1.2931 - priority_loss: 0.6985 - department_loss: 2.9729" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "16/40 [===========>..................] - ETA: 2s - loss: 1.2967 - priority_loss: 0.7005 - department_loss: 2.9812" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "20/40 [==============>...............] - ETA: 1s - loss: 1.2922 - priority_loss: 0.7019 - department_loss: 2.9514" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "21/40 [==============>...............] - ETA: 1s - loss: 1.2916 - priority_loss: 0.7019 - department_loss: 2.9482" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "22/40 [===============>..............] - ETA: 1s - loss: 1.2927 - priority_loss: 0.7024 - department_loss: 2.9514" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "27/40 [===================>..........] - ETA: 1s - loss: 1.2854 - priority_loss: 0.7014 - department_loss: 2.9200" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "34/40 [========================>.....] - ETA: 0s - loss: 1.2836 - priority_loss: 0.7015 - department_loss: 2.9104" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "35/40 [=========================>....] - ETA: 0s - loss: 1.2834 - priority_loss: 0.7017 - department_loss: 2.9084" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "37/40 [==========================>...] - ETA: 0s - loss: 1.2857 - priority_loss: 0.7012 - department_loss: 2.9228" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "40/40 [==============================] - 3s 64ms/step - loss: 1.2832 - priority_loss: 0.7004 - department_loss: 2.9143\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Dummy input data\n", "title_data = np.random.randint(num_words, size=(1280, 10))\n", "body_data = np.random.randint(num_words, size=(1280, 100))\n", "tags_data = np.random.randint(2, size=(1280, num_tags)).astype(\"float32\")\n", "\n", "# Dummy target data\n", "priority_targets = np.random.random(size=(1280, 1))\n", "dept_targets = np.random.randint(2, size=(1280, num_departments))\n", "\n", "model.fit(\n", " {\"title\": title_data, \"body\": body_data, \"tags\": tags_data},\n", " {\"priority\": priority_targets, \"department\": dept_targets},\n", " epochs=2,\n", " batch_size=32,\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "3c87f1fbe7aa" }, "source": [ "当使用 `Dataset` 对象调用拟合时,它应该会生成一个列表元组(如 `([title_data, body_data, tags_data], [priority_targets, dept_targets])` 或一个字典元组(如 `({'title': title_data, 'body': body_data, 'tags': tags_data}, {'priority': priority_targets, 'department': dept_targets})`)。\n", "\n", "有关详细说明,请参阅[训练和评估](https://tensorflow.google.cn/guide/keras/train_and_evaluate/)指南。" ] }, { "cell_type": "markdown", "metadata": { "id": "64ada3f80484" }, "source": [ "### 小 ResNet 模型\n", "\n", "除了具有多个输入和输出的模型外,函数式 API 还使处理非线性连接拓扑(这些模型的层没有按顺序连接)变得容易。这是 `Sequential` API 无法处理的。\n", "\n", "关于这一点的一个常见用例是残差连接。让我们来为 CIFAR10 构建一个小 ResNet 模型以进行演示:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:50.294844Z", "iopub.status.busy": "2022-12-14T21:22:50.294336Z", "iopub.status.idle": "2022-12-14T21:22:50.435735Z", "shell.execute_reply": "2022-12-14T21:22:50.434897Z" }, "id": "bfa8b7503813" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"toy_resnet\"\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "__________________________________________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Layer (type) Output Shape Param # Connected to \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "==================================================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " img (InputLayer) [(None, 32, 32, 3)] 0 [] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_8 (Conv2D) (None, 30, 30, 32) 896 ['img[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_9 (Conv2D) (None, 28, 28, 64) 18496 ['conv2d_8[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " max_pooling2d_2 (MaxPooling2D) (None, 9, 9, 64) 0 ['conv2d_9[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_10 (Conv2D) (None, 9, 9, 64) 36928 ['max_pooling2d_2[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_11 (Conv2D) (None, 9, 9, 64) 36928 ['conv2d_10[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " add (Add) (None, 9, 9, 64) 0 ['conv2d_11[0][0]', \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 'max_pooling2d_2[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_12 (Conv2D) (None, 9, 9, 64) 36928 ['add[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_13 (Conv2D) (None, 9, 9, 64) 36928 ['conv2d_12[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " add_1 (Add) (None, 9, 9, 64) 0 ['conv2d_13[0][0]', \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " 'add[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " conv2d_14 (Conv2D) (None, 7, 7, 64) 36928 ['add_1[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " global_average_pooling2d (Glob (None, 64) 0 ['conv2d_14[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " alAveragePooling2D) \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " dense_6 (Dense) (None, 256) 16640 ['global_average_pooling2d[0][0]'\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " dropout (Dropout) (None, 256) 0 ['dense_6[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " dense_7 (Dense) (None, 10) 2570 ['dropout[0][0]'] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "==================================================================================================\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Total params: 223,242\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Trainable params: 223,242\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Non-trainable params: 0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "__________________________________________________________________________________________________\n" ] } ], "source": [ "inputs = keras.Input(shape=(32, 32, 3), name=\"img\")\n", "x = layers.Conv2D(32, 3, activation=\"relu\")(inputs)\n", "x = layers.Conv2D(64, 3, activation=\"relu\")(x)\n", "block_1_output = layers.MaxPooling2D(3)(x)\n", "\n", "x = layers.Conv2D(64, 3, activation=\"relu\", padding=\"same\")(block_1_output)\n", "x = layers.Conv2D(64, 3, activation=\"relu\", padding=\"same\")(x)\n", "block_2_output = layers.add([x, block_1_output])\n", "\n", "x = layers.Conv2D(64, 3, activation=\"relu\", padding=\"same\")(block_2_output)\n", "x = layers.Conv2D(64, 3, activation=\"relu\", padding=\"same\")(x)\n", "block_3_output = layers.add([x, block_2_output])\n", "\n", "x = layers.Conv2D(64, 3, activation=\"relu\")(block_3_output)\n", "x = layers.GlobalAveragePooling2D()(x)\n", "x = layers.Dense(256, activation=\"relu\")(x)\n", "x = layers.Dropout(0.5)(x)\n", "outputs = layers.Dense(10)(x)\n", "\n", "model = keras.Model(inputs, outputs, name=\"toy_resnet\")\n", "model.summary()" ] }, { "cell_type": "markdown", "metadata": { "id": "05aefc66c54f" }, "source": [ "绘制模型:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:50.439164Z", "iopub.status.busy": "2022-12-14T21:22:50.438467Z", "iopub.status.idle": "2022-12-14T21:22:50.683526Z", "shell.execute_reply": "2022-12-14T21:22:50.682426Z" }, "id": "ef7ac19c83be" }, "outputs": [ { "data": { "image/png": "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zdLIz8/XWqZQKDR+t7CwAAA0NTVplMfFxeHWrVv46KOPAACZmZk4cuQIpk6dqjOmhoYGhIWFwcXFBZ9//rnOpKi2thYVFRWwtLSElZWV1nJdAzWNLSUlBWVlZXjyySc1xnxMnjwZALBo0SJ12cWLF9s9HkO09jMEgB49euhsQ7Wvb9y4YeToOh/VQ0Pr6+v1Wi8mJgbh4eH47bffMGPGDK3l7XkcqtpuamqCQqHQGvunGmOTlZWl1990O2tra7z//vv4448/UFdXh7y8PKxbtw5VVVUAgBEjRhjcdnu37+bmBgCws7PTWqbq26qxTG095hsaGgya3MEMx4kRU5NKpVAoFKipqUFFRYXB9VQDHtvyH1l4eDhcXV2xdu1a1NbW4oMPPsC0adNaTNiioqJQW1uLHTt2aPwHN2DAAPz444/quK2trVFTU4PKykqtNnQNmDS21157DfTnLWyNny1btgAA4uPj1WUDBgxo93jaW3Fxsc7HJagSotuTUTMzM9TV1WnVLS0t1dl2R8w2NAbVLKiysjK91924cSMeeughJCYmqvuISnseh1KpFD169IC5uTnq6+t19lkiwtixY/Vu+15UEyFCQkKM3rax2ldNEtB1xVPVt1WJaVuO+fLychCRug+xjsGJEdMwceJEAND5HJvhw743nZcAACAASURBVIfjjTfe0Kh35zTS2tpaHDx4EDKZTOt2lT7Mzc3x+uuv48aNG/jggw+wfft2xMTE6Ky7ePFinD17Ft9++y2kUuld21XdIlTdUlMpKirChQsXDI6X6VZTU6N+srPKmTNncP36dSiVSo0TvpOTE3JzczXq5ufn48qVKzrb7t69u0Yi9dBDD2HDhg1GjN44VM+zMeS2k5WVFb7++mvI5XL11dPbtedxGBISgoaGBo0ZhCrLly/HAw88YPDzdYqKimBmZqZ1+7W8vBwbN27EpEmT2nRru73b/9vf/gYXFxfs27dP67EKqidaBwcHG9y+iup4aOmZSKx9cGLENCxbtgzu7u544403sHv3blRUVODatWuYPn068vLy1ImRql5sbCx27dqFiooKZGZm4oUXXkBeXh5Wr16t9eAzfb366qtQKBR46623EBwcDBcXF606mzZtwv/93//hp59+grW1tdYl/zunIL/77rvo2bMnYmNjkZqaisrKSpw7dw6RkZE6b6+xtlEoFFiwYAHS0tJQVVWFEydOIDIyEhYWFli9erVGXT8/P1y/fh1r165FZWUlsrOz8frrr7d4i3PEiBHIzMzE1atXkZaWhpycHHh7e6uX+/j4wM7OTn3FUCxKpRL29vatfnffnQYPHqzzIaZA+x6Hy5YtQ//+/fHyyy9j7969KCsrw82bN7F+/Xr84x//QEJCgsbV2cjISAiCgD/++KNV7RMRXnrpJVy8eBG1tbX4+eef8fTTT8PBwQHr1q3Tqt+Z2pdKpdi4cSOKi4sxadIkZGVlobS0FFu2bMGyZcvg6enZ4j9y+lA9FqGzPAD2vtFRo7xZxzN0VkJRURHFxsaSu7s7SSQScnJyokmTJlFmZuZd6ykUCvL396eDBw+q66SlpREAjZ+FCxcSEWmVjx8/XiuWOXPmEAA6deqUzljHjx+v1c6dP3dO175w4QIFBweTjY2Nepryrl27yNfXV73OK6+8otc+S0lJaXH7d06Zvl1UVJTOdfz9/fXaPowwK+2bb77RiiMiIsLgz1CpVJKLiwudO3eO/P39ydrammQyGY0ZM4aOHj2qtf3S0lKaOnUqOTk5kUwmo9GjR1N6erp6ejUAmjt3rrr++fPnydvbm+RyObm6umrN+vL29u4Us9KIiBYsWEDm5uaUm5urLissLNTaf3eb6RUdHa1zdl57HofFxcU0a9Ys6tevH0kkEurduzf5+flRamqqVhw+Pj5kZWWlczaoLqmpqRQYGEiOjo4kk8loyJAhFB8fT7du3dJZv7O1T0R0/Phx8vf3J4VCQRYWFjRo0CBavHhxi9sg0u+YDwsLIxcXF6qrq2t1TCo8K81wnBiZMD4w7h/GSIyMTZUYmRJDE6PS0lJycXHR+a40U1BSUkIymUzns8O4fcOo3pV256MYWovP/4bjW2mMMdbOFAoFUlJSkJycrPM2TldGRIiJiYGNjQ3i4+O5fSPIyclBSEgI5s+fj0mTJokdzn2HEyPGGOsAw4cPx4kTJ7B3716Ul5eLHY7RFBQUICcnBwcPHmzTTFRTbd8Q69evx9KlS7F06VKxQ7kvcWLEWAvuHMit62fx4sVih9npqN5ldurUKeTm5kIQBLz11ltih9UpuLm5YdeuXbCxsRE7FKNxdHTE0aNHMXjwYG7fSJYvX85XikTUOd+6yFgnQDqev8Pubfbs2Zg9e7bYYTDGmEH4ihFjjDHGWDNOjBhjjDHGmnFixBhjjDHWjBMjxhhjjLFmPPjaxF27dg07duwQOwzWAdLS0sQOweSp9jEfU6yzu3btGvr06SN2GF2SQDz1xmSFhYUhOTlZ7DAYY4yJIDQ0FF999ZXYYXQ5fMXIxPGBcX8QBAFJSUl47rnnxA7FpO3YsQPh4eH8KAfW6YWFhYkdQpfFY4wYY4wxxppxYsQYY4wx1owTI8YYY4yxZpwYMcYYY4w148SIMcYYY6wZJ0bMaNLT0zFlyhS4u7tDJpOhZ8+eGDJkCJ599ln861//QnZ2ttghaikpKcHHH38MHx8f9OzZEzKZDA8++CAiIiJw6tQprfpWVlYQBEHjx8zMDLa2tlAqlZg+fTpOnjwpwl/CuoLLly8jMDAQ5eXlKCoq0uhHw4cPR01NjdY6d9YTBAEjR44UIXrj+fjjj7X+pjt/AgICOm37KvX19Vi5ciU8PDxgbW0Ne3t7BAQEICUl5Z4zFwMDAyEIApYsWaK1bN68eUhKSmpzfMwwnBixNmtqasKcOXPw2GOPwd7eHnv37kVpaSl+//13rFy5EuXl5Zg+fToGDBiAhoYGscPVMGfOHMycORNBQUE4d+4ciouLkZiYiIyMDHh4eGDnzp0a9SsrK/Hrr78CAIKCgkBEqK+vx/nz5/GPf/wD58+fx8iRI/HSSy/h1q1bYvxJrJPKyMjAyJEj4efnBxsbG/Tq1QtEhPT0dPXy2NhYrfVU9dLS0mBnZwciwokTJzo6/A732GOPder2q6qq4OPjg02bNmHlypW4ceMGTpw4ASsrKwQGBuLs2bMtrrt582akpKS0uHzatGmYP38+Fi1a1KYYmYGImazQ0FAKDQ1t9+0sWLCAANCGDRt0Lm9oaKCAgAACQPX19e0ejz5eeeUVevXVV7XKMzIyCAA9+OCDWst+/fVXAkBBQUE623zzzTcJAAUGBlJTU5PRY9YFACUlJXXItlpDLpfT448/bnLbT0pKIkNOm2VlZdSnTx+KiorSWpaenk5SqZTs7OwIAH3xxRc620hLSyM7Ozu9t90Z/etf/2rx+MnMzCSpVEp5eXmdtn0ioujoaLKxsaH8/HyN8srKSpJKpXTmzBmd6+Xm5pKtrS1NnjyZAFB8fLzOehkZGSQIgsHHdUed/00RXzFibXL+/Hm899578PDwwLRp03TW6datW6f9z2fjxo1Yv369VrlSqYRMJkN2drbeD/N777334Onpie+++w7bt283VqisC1uxYgXy8/Px9ttv61xuaWmJbdu2wczMDFFRUcjMzOzgCDvWgAED4O3trXPZmjVrEBwcDEdHx07bfkFBATZs2ICIiAg4ODhoLJPL5aipqcGQIUN0rjtt2jSEhYXBz8/vrttQKpUIDQ1FXFxcp7vSbuo4MWJtsmHDBjQ1Nd3zKateXl4gIpibd42HrVdVVaG6uhpDhgyBIAh6rSsIAmbMmAEA+Oijj9ojPNaFEBE2btwIT09PODs7t1jP398fb731FioqKhAWFqZzvJGpGDduHOLi4rTKKyoq8Pnnn2P69Omduv3vvvsOjY2NGD16tF7rJSYm4uzZs0hISGhV/YkTJ+LatWvYvXu3IWEyA3FixNrkyJEjAIChQ4fqvW5xcTFmzZqF/v37w8LCAra2tggICMChQ4fUdXbu3KkxYPLSpUsIDw9Hjx49YGdnhwkTJqgHdZeWlmoNsFQNbGxoaNAoDw0NvWtsqteoLFz4/9m786imzvx/4O9gQggBAiKyFQSl6tTa6FDrUhGBlmhdUArSFts6VofpRhmRqm21nlE7o7X128UetX6pS9Vq7U9b3Kp1ansQGNEquFRQ+bZWEQwo+yLI5/eHyR1DAiQhISyf1zmcY5773Od+8twlH3Of5+Ztk98XAOGCmZWVhYaGBrPasDZj+n/58uVCn93/IXDo0CGhvE+fPkL56tWrIRKJUF1djePHjwt1tAmxdrlIJMIDDzyA7OxsREREwNnZGY6OjggLC8Px48ettn1byMnJQXFxMZRKZZt13333XURGRiI3Nxevv/66Ue1b+jy6n1qtRmJiIgICAmBvbw8PDw9ER0fjzJkzxneACb744gv4+/tj3Lhxnbr9X375BQDg5uaG5ORk+Pn5wd7eHv369UNiYiJu3bqlt861a9eQnJyM1NRUODs7G7WdYcOGAQC+//77dsXLTGTjW3nMijriHrO3tzcBoP/85z8mrXfjxg0KDAwkT09PSktLo/LycsrLy6Po6GgSiUT0+eef69SPiooSxvVkZGRQVVUVHTlyhGQyGY0YMUKn7oQJE8jOzo4uX76st93Ro0e3OIZDq6ioiDw9PWnOnDkGl7c1xoiIqLa2lgAQACosLGx1e5YAE8cYmdr/LY3ZCQ4ONjjupa0xPkqlkuRyOY0ePVrYn9nZ2fTII4+Qvb09HTt2zKrbDwsLo969e1NmZmaLdQwxZ4zR1q1bCQC99957BpdnZ2eTQqEQXqvVavLz8yMA9OWXXwrlhsYYWfM8KiwspH79+pGnpyft37+fKisr6dy5cxQaGkoODg6UkZFhUj+0pampiQYOHEifffaZRdu1RvvafvTy8qL4+Hi6cuUK3b59mzZv3kxyuZwGDhxIZWVlOuuoVCp65ZVXhNfa46KlMUZE98amAaCQkBCTY+QxRubjxKgb68jE6MSJEyatN2vWLAJAO3bs0Cmvq6sjHx8fkslkOoMatReitLQ0nfoxMTEEgNRqtVD2ww8/EACdixARUXp6Ovn7+7c6ALykpISGDRtGcXFx1NjYaLCOMYlRTU1Np06MTO1/ayRGAOj06dM65bm5uQSAlEqlUe2Zu/3Q0FByc3Mz+cPdnMRo1apVBIDWrl1rcHnzxIjoXhIkkUhILpfTr7/+KpQ1f6/WPI9efPFFAkDbtm3TqXvjxg2SSqUUHBxsZA8YZ//+/eTs7EyVlZUWbdca7atUKgJAgYGBeteT5cuXEwBavHixULZhwwbq378/VVVVCWXGJEZERCKRiIKCgkyOkRMj8/GtNNYu2jETJSUlJq23Z88eAMCkSZN0yqVSKSIiIlBbW2vw6+MRI0bovPbz8wMAFBYWCmUREREYPnw4Nm3ahNLSUqH8/fffR1JSUou3Vaqrq6FSqfDQQw9h27Zt6NWrl0nv6X43btwAAEgkEp1bPZ2Fuf1vSXK5XLhVoDV06FD4+PggJydH6ENrOHbsGG7duoXRo0dbbRta2rFCEonE6HVGjRqF1atXo7q6GrGxsaitrTVYz5rn0d69e2FnZ4fJkyfr1PXy8sKQIUNw6tQpXLt2zej31JaPP/4YL7zwApycnCzWprXal8vlAO6NZWp+PZkyZQqA/97+unr1KlJSUpCamiqsZwqxWNzi/mfWwYkRa5fQ0FAAQG5urtHr1NfXo7y8HA4ODgbvtWtneRQVFektUygUOq/t7e0B3HuW0v2Sk5NRU1MjDH7Oz8/Hzz//jDlz5hiMqbGxEbGxsfD19cXmzZvblRQBQHp6OoB7g85N+UDsCO3pf0tydXU1WN63b18AwM2bN626/Y7i4OAAACaPNUtMTERcXBzOnTsnDOa/nzXPI23bTU1NUCgUemP3tGNsLl26ZNJ7akl+fj4OHz7c7kHRHdV+QEAAAMDd3V1vmfb4VavVAIC0tDSUl5dj/PjxOn34/PPPAwAWL14slF2+fFmvvcbGRshkMovEzYzDiRFrl4SEBIjFYuzevbvVem+++Sbs7Oxw8eJFSKVSKBQK1NXVobKyUq9ucXExALRrOm1cXBz8/Pzw6aefor6+Hh988AHmzp3b4qDHhIQE1NfXY9euXTr/AwwKCkJWVpZJ225qasLatWsBAK+++qrZ78FazOl/Ozs73LlzR69uWVmZwW0YM5OvtLTU4KMQtAmR9gPGWtvvKN7e3gCA8vJyk9fduHEjBg0ahNTUVGzdulVnmTXPI6lUCldXV4jFYjQ0NIDuDbvQ+wsLCzO5bUM+/vhjjBs3Dg899JBF2rN2+9qJAIa+1dQev9rE9NVXXzXYd9r9uWzZMqEsKChIp62KigoQkXAMsY7BiRFrl4EDB+Ldd9/FyZMnkZqaarBOXl4e1q9fjxkzZmDw4MEA7k1DBaA3DbW+vh5Hjx6FTCaDSqUyOy6xWIw33ngDN2/exAcffICvvvoKiYmJBusuXboU58+fx7fffgupVGr2NrUWLVqEEydOYPr06W0+xsBWTO1/b29vXL9+XaduUVERrl69arB9R0dHnURm0KBB2LBhg06duro64anPWmfPnkVhYSGUSqXOh4E1tt9RtM+zMee2k5OTE7755hvI5XKDj36w5nkUHR2NxsZGnVmCWitXroS/v79Fnq9TUVGBLVu2WO0/EdZo/6mnnoKvry8OHTqk91gF7ROtp02b1u7taI/5lp6JxKzEBuOaWAfpyMF3CxcuJIlEQgsWLKC8vDyqr6+na9eu0caNG8nb25vGjh2rM/Cw+WyaiooKndk0zZ+irR00Wltbq1O+YMECg4N4iYgqKipIoVCQSCSiF154wWDcX3zxhTBIuqW/5jOXmg++vnv3LhUXF9PevXspPDycANDs2bOppqbGrL40B9o5K62t/n/ttdcIAH3yySdUWVlJly9fphkzZpCvr6/Bwc8TJkwghUJBV69epYyMDBKLxXThwgVhuVKpJIVCQREREUbNSrP09jtyVlpTUxP17du3xcHghgZfN/fll18SgDZnpVnyPCouLqYBAwZQ//796cCBA1RWVkalpaW0bt06cnR01Dve4uPjCQAVFBS02Sf3W7NmDXl7e7f5VPzO1v7BgwdJLBZTVFQU5efn0+3bt2nLli0kl8tp5MiRbZ7/xgy+3r59OwGgPXv2GBXT/Xjwtfk4MerGOvrEOHHiBD3//PPk5+dHEomEnJ2dadSoUfTRRx9RfX29Xv2SkhJKSkqiwMBAkkgkpFAoSKVS0dGjR4U6mZmZeonK22+/TUSkVz5p0iS9baSkpBAAysnJMRjzpEmTTEqM5HK53nKRSEQKhYKGDh1KL7/8Mp06daq9XWkyUxMjIuP6X6usrIzmzJlD3t7eJJPJaOzYsZSdnU3BwcFCPyxYsECof/HiRQoJCSG5XE5+fn56M7KUSiX5+vrShQsXSKVSkbOzM8lkMgoNDaX09HSrbz8kJKTDZqUR3fvZHLFYTNevXxfK1Gq13rHU2kyvl19+2WASaM3zqLS0lObNm0f9+/cniURCHh4eFBkZSUeOHNGLIzw8nJycnFqczWlIU1MTBQUF0ZIlS9qs2xnbz8jIIJVKRQqFguzt7Wnw4MG0dOnSVpOihIQEg9cZlUqlVzc2NpZ8fX3pzp07RsekxYmR+Tgx6sb4xOg5zEmMbEmbGHU15iZGZWVl5Ovra/C30rqD27dvk0wma/HZXz29fXNofyut+aMYjMXXf/PxGCPGGLMyhUKBtLQ07N69WxiY310QERITE+Hi4oJly5Zx+xZQUFCA6OhoLFq0CM8884ytw+lxODFijLEOMHz4cJw8eRIHDx5ERUWFrcOxmOLiYhQUFODo0aPtmknaXds3x/r167FixQqsWLHC1qH0SF3jFz0ZY93C6tWrkZKSIrwWiUR4++23hd+06+4CAgKwb98+W4dhUV5eXsJzu7h9y1i5cqWtQ+jRODFijHWY+fPnY/78+bYOgzHGWsS30hhjjDHGNDgxYowxxhjT4MSIMcYYY0yDEyPGGGOMMQ0efN3NZWVlddrf62KWtWbNGnz99de2DqNb0/7eGZ9TrLPLysrCqFGjbB1GlyQiMvDz1qxb+PDDD5GZmWnrMBizibNnzwIAhg4dauNIGLON0aNHY968ebYOo8vhxIgx1i3NmDEDALBr1y4bR8IY60p4jBFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmIaIiMjWQTDGWHts2bIFH374Ie7evSuUlZSUAAD69OkjlPXq1Qvz5s3DCy+80OExMsa6Bk6MGGNdXn5+PgYNGmRU3by8PAwcONDKETHGuiq+lcYY6/IGDhwIpVIJkUjUYh2RSASlUslJEWOsVZwYMca6hRdeeAG9evVqcblYLMaLL77YgRExxroivpXGGOsWCgsL4efnh6amJoPLRSIR/vjjD/j6+nZwZIyxroS/MWKMdQs+Pj4YM2YM7Oz0L2t2dnZ4/PHHOSlijLWJEyPGWLfx/PPPGywXiUQ8E40xZhS+lcYY6zZu374NT09PNDQ06JSLxWIUFRXB3d3dRpExxroK/saIMdZtuLm54cknn9QZhN2rVy+oVCpOihhjRuHEiDHWrcycOVNnADYRYebMmTaMiDHWlfCtNMZYt1JTUwN3d3fU1dUBABwcHFBSUgK5XG7jyBhjXQF/Y8QY61YcHR0xffp0SCQSSCQSTJ8+nZMixpjRODFijHU7zz33HBoaGtDQ0IDnnnvO1uEwxroQsa0DMNe1a9eQkZFh6zAYY53Q3bt34ejoCCJCRUUFdu3aZeuQGGOd0JgxY/DAAw/olHXZMUa7du1CXFycrcNgjDHGWBe1c+dOzJgxQ6esy35jpNVF8zrGmJX99NNPEIlEGDdunPAfKb5eWF9sbCwA4Ouvv7ZxJIy1rqUfne7yiRFjjBkSEhJi6xAYY10QJ0aMsW7J0G+mMcZYW/jKwRhjjDGmwYkRY4wxxpgGJ0aMMcYYYxqcGLVg9erVEIlEEIlEes846Mg2bNE267o643Fx+/ZtrFu3DuHh4ejduzdkMhkefPBBxMfHIycnx6g2vvrqK+F9OTg4WDliZku///47pk6dioqKCpSUlAj7XSQSYfjw4cJPvdyveT2RSIRHH33UBtFbzrp16/TeU/O/iRMndtr2tRoaGrBmzRoEBwfD2dkZffv2xcSJE5GWltbmLNGpU6dCJBJh+fLlessWLlyInTt3tjs+QzgxasH8+fNBRFAqlTZtwxZts66rteOiqqoKDz74ICZPntyhMaWkpOD1119HVFQULly4gNLSUqSmpuLMmTMIDg7G3r1722zjmWeeAREhIiKiAyJuna36sSc4c+YMHn30UURGRsLFxQV9+vQBESE7O1tYnpSUpLeetl5mZibc3d1BRDh58mRHh9/hxowZ06nbr66uRnh4ODZt2oQ1a9bg5s2bOHnyJJycnDB16lScP3++xXW3bNmCtLS0FpfPnTsXixYtwuLFi9sVoyGcGDHWQxARmpqadH55vqPMnj0bb7zxBry8vODo6IiQkBBs374dd+/exZtvvtnh8bSHLfvRVE5OThg7dqytwzBKRUUFpkyZgqeffhqvvfaa3nKpVAp3d3esX78eO3bssEGEHS8qKgpEpPeXn58PqVSKuXPndur2U1JSkJubi8OHD2PcuHGQyWTw9/fHpk2bIJVKW1yvsLAQSUlJeP7551usM2DAAOzZswcrVqyw+JPtOTFirIdwdnbGlStXcODAgQ7d7saNG7F+/Xq9cqVSCZlMhitXrnSpBy/aqh+7u1WrVqGoqAhLliwxuNzBwQHbtm2DnZ0dEhISkJ+f38ERdqygoKAWn8X1ySefYNq0afDy8uq07RcXF2PDhg2Ij4+Hp6enzjK5XI66ujo8/PDDBtedO3cuYmNjERkZ2eo2lEolYmJikJycjMbGRrNjbY4TI8aYTVRXV6O2thYPP/xwi0+gZT0DEWHjxo0YOXIkfHx8WqynUqnwzjvvoLKyErGxsQbHG3UXTzzxBJKTk/XKKysrsXnzZrzyyiuduv3vvvsOd+/eNfkby9TUVJw/fx6rV682qv706dNx7do17N+/35wwDepxidHFixcxbdo0KBQKODo64rHHHsO+ffvwxBNPCAPO5syZ02Y7paWlmDdvHgYMGAB7e3u4ublh4sSJ+PHHH1vd9qRJk4Rth4WF4fjx4zp1GhsbsXPnTjz55JPw8vKCTCbD0KFD8dFHH1n0q3tjtlNWVqY3GE87CK6xsVGnPCYmRmhbrVYjMTERAQEBsLe3h4eHB6Kjo3HmzBmhzt69e3XWz8vLw4wZM+Du7i6UlZSUmNwfpu5fY2I1RvNBz9nZ2YiIiICzs3OL+xow7Tgy55hrqb+1HyjNy3/77TfExcXB1dUV7u7umDx5Mq5cuaLXniXOI+1PRrz99tutti+XyxESEoL09PQ236e1WaofTT1eli9fLtS//4Pm0KFDQnmfPn302q+ursbx48eFOmJx53ymb05ODoqLi40aM/nuu+8iMjISubm5eP31141q35hzx9xzwVLXEGN98cUX8Pf3x7hx4zp1+7/88gsAwM3NDcnJyfDz84O9vT369euHxMRE3Lp1S2+da9euITk5GampqXB2djZqO8OGDQMAfP/99+2KVwd1UTt37iRTw7906RK5urqSr68vHT58mCorK+ncuXP0xBNPkIeHB0mlUr11lEol+fr66pTduHGDAgMDydPTk9LS0qi8vJzy8vIoOjqaRCIRff7553ptKBQKCgsLo/T0dKqsrKTs7Gx65JFHyN7eno4dOybUTUtLIwD03nvv0a1bt0itVtPHH39MdnZ2NH/+fKPiM4Yp25kwYQLZ2dnR5cuX9doZPXo0bd++XXhdWFhI/fr1I09PT9q/f7/Qx6GhoeTg4EAZGRk660dFRREACg0NpR9//JGqq6spKyuLevXqRWq12qQ4Td2/psZqDKVSSXK5nEaPHk0ZGRlUVVXV4r425Tgy55gzdFxo+7u2ttZgeVRUlBD3kSNHSCaT0YgRI9rVz4YUFRWRp6cnzZkzR2+ZofZzc3MpMjKSAgICjGq/OXOuF62xRD8SmXa8EBHJ5XJ6/PHH9doJDg4md3d3vfKW6muFhYVR7969KTMz09i33qaYmBiKiYkxaZ2tW7cK57kh2dnZpFAohNdqtZr8/PwIAH355ZdCeWZmpl4/mHruUqVGSQAAIABJREFUmLIPrXENaU1TUxMNHDiQPvvsM4u2a432tf3o5eVF8fHxdOXKFbp9+zZt3ryZ5HI5DRw4kMrKynTWUalU9MorrwivtcfFsmXLWtxOeXk5AaCQkBCTYwRAO3fu1C83uaVOwpwLXWxsLAGg3bt365TfvHmTHB0djU6MZs2aRQBox44dOuV1dXXk4+NDMpmMioqKdNoAoHfxyc3NJQCkVCqFsrS0NBo/frxeHDNnziSJRELl5eVtxmcMU7bzww8/EACdA5aIKD09nfz9/amhoUEoe/HFFwkAbdu2TafujRs3SCqVUnBwsE659uQ5cOBAu+M0df+aGqsxtPv69OnTOuWG9rUpx5E5x5w5iVFaWppOeUxMDAEgtVotlJlzHt2vpKSEhg0bRnFxcdTY2Ki3vKX2r1+/TlKptEskRsb0I5FpxwuR5ROj0NBQcnNzs+gHuDmJ0apVqwgArV271uDy5okR0b0kSCKRkFwup19//VUoa94Ppp47puxDa1xDWrN//35ydnamyspKi7ZrjfZVKhUBoMDAQJ3PCCKi5cuXEwBavHixULZhwwbq378/VVVVCWXGJEZERCKRiIKCgkyOsaXEqEfdSjt06BCAe/ep7+fh4YHBgwcb3c6ePXsAAJMmTdIpl0qliIiIQG1trd7Xeg4ODhg5cqRO2dChQ+Hj44OcnBzcuHEDADB58mSDt0aUSiUaGhpand5oClO2ExERgeHDh2PTpk0oLS0Vyt9//30kJSXpfD2/d+9e2NnZ6U1l9vLywpAhQ3Dq1Clcu3ZNb7uPPfZYu+M0df+aG2tb5HK58PWulqF9bcpxZM4xZ44RI0bovPbz8wNwb5aIVnvOo+rqaqhUKjz00EPYtm0bevXqpVenpfZ9fHwwcOBAI9+JbRnTj1rGHi/WcOzYMdy6dQujR4+22jaMob0lKZFIjF5n1KhRWL16NaqrqxEbG4va2lqD9cw9d4zZh9a6hrTk448/xgsvvAAnJyeLtWmt9uVyOYB7Y5ma38KdMmUKgP/e/rp69SpSUlKQmpoqrGcKsVjc4v43R49JjOrr61FZWQkHBweDO93Nzc3odsrLy+Hg4GDwHqh29H1RUZFOuXbsTHN9+/YFANy8eRMAUF5ejiVLlmDo0KFwc3MT7nenpKQAAGpqaoyKsy2mbic5ORk1NTX47LPPAAD5+fn4+eefdcaRaPumqakJCoVCb3yS9p7zpUuX9OJp6WQwNk5T9297Ym2Lq6urwfL797Upx5G5x5w5FAqFzmt7e3sAEMZztec8amxsRGxsLHx9fbF582aDSVFb7Wv7sLNrqx/vZ8zx0t1pH9rZ0NBg0nqJiYmIi4vDuXPnDE7xb8+5Y8y5YK1riCH5+fk4fPhwuwdFd1T7AQEBAO599jWnPbbVajUAIC0tDeXl5Rg/frxOH2qn6y9evFgou3z5sl57jY2NkMlkFokb6EGJkVQqhbOzM+rq6lBVVaW33NiLj1QqhUKhQF1dHSorK/WWFxcXA4DeNMfy8nKD7Wm3qz1QpkyZgmXLlmHu3LnIz89HU1MTiAhr1qwBAItNazZ1O3FxcfDz88Onn36K+vp6fPDBB5g7d67OxUYqlcLV1RVisRgNDQ0Gn49BRAgLC7N4nKbuX2vEqlVaWmpwP92/r005jsw95qyhPedRQkIC6uvrsWvXLp3/QQYFBSErK8uo9g0N2OzqjDletOzs7HDnzh29umVlZQbb7iqz/by9vQG0fJ1szcaNGzFo0CCkpqZi69atOsusee5Y8xpiyMcff4xx48bhoYceskh71m5fO0nA0Dee2mNbm5i++uqrBvtOuz+XLVsmlAUFBem0VVFRASISjiFL6DGJEQDh8ebar+q1ioqKTHomxvTp0wFAb3pgfX09jh49CplMpncboKqqSu/nD86ePYvCwkIolUp4e3vj7t27OH78OLy8vJCYmAgPDw/hwmbJrwnN2Y5YLMYbb7yBmzdv4oMPPsBXX32FxMREvXrR0dFobGw0OANr5cqV8Pf3N/p5E6bGaer+tWSs96urqxOe1KvVfF8Dph1H5hxz1mLOebR06VKcP38e3377basPdmut/ZKSEuTl5Zkbdqdl7PEC3Esgrl+/rlO3qKgIV69eNdi2o6OjTiI1aNAgbNiwwYLRW4b2eTbm3HZycnLCN998A7lcLnyjfT9rnjvWuoY0V1FRgS1btuDVV19td1sd1f5TTz0FX19fHDp0SO+xCtonWk+bNq3d29GeDy09E8ksJo9W6iTMGUx5+fJl6t27t85sl7Nnz9KECROoX79+Zs9Kq6io0JnlsGHDBr025HI5jR07lrKyslqdeRIeHk4AaNWqVaRWq6mmpob+/e9/k7+/PwGgI0eOtBmfMUzdDhFRRUUFKRQKEolE9MILLxhst7i4mAYMGED9+/enAwcOUFlZGZWWltK6devI0dFRb6BbS4NYzYnT1P1raqzG0M5AjIiIMHlWWmvHkTnHnDmDr5uXL1iwQG9wsKn9/MUXXxCAVv/un5hgqP3z58+TSqWivn37donB18b0I5FpxwsR0WuvvUYA6JNPPqHKykq6fPkyzZgxg3x9fQ0Ovp4wYQIpFAq6evUqZWRkkFgspgsXLgjLO8ustKamJurbt2+LA8UNDb5u7ssvvyQAbc5Ka+vcMWUfmnoNiY+PJwBUUFDQZp/cb82aNeTt7a03iLm5ztb+wYMHSSwWU1RUFOXn59Pt27dpy5YtJJfLaeTIkVRTU9Pq+sYMvt6+fTsBoD179hgV0/3As9LuycvLo2nTppGLiws5OjrSmDFj6KeffqLx48eTo6OjUO/999/Xu3i//fbbwvKSkhJKSkqiwMBAkkgkpFAoSKVS0dGjRw224evrSydOnKCwsDBycnIimUxGoaGhlJ6erhOfWq2mhIQE8vPzI4lEQp6enjRr1ixauHCh0FZwcHCb8bXF2O00l5KSQgAoJyenxbZLS0tp3rx51L9/f5JIJOTh4UGRkZE6SUxmZqbBD8j2xmns/jUlVlNoE5ILFy6QSqUiZ2fnFvc1kXHHkSl1Wzou9uzZo1ceHx9vcD9oj6Pm5ZMmTTKrnydNmmRSYtS8fe006X379lFERISwzksvvWT0frFUYmTpfjT1eCkrK6M5c+aQt7c3yWQyGjt2LGVnZ1NwcLDQ/oIFC4T6Fy9epJCQEJLL5eTn56c36yskJKRTzEojInrrrbdILBbT9evXhTK1Wq3Xf63N9Hr55ZcNJojGnDvm7kNTriHh4eHk5ORkcDZmS5qamigoKIiWLFnSZt3O2H5GRgapVCpSKBRkb29PgwcPpqVLl7aaFCUkJBi8TqhUKr26sbGx5OvrS3fu3DE6Ji1OjNowaNAg8vf3t1h7rHPpqP1r7jd43UVnPY8sfb2wlO54vJibGJWVlZGvry8lJCRYISrbu337NslkMoPP7uL2zXPmzBkSiUR6j2IwVkuJUY8aY1RUVITevXvrzXz47bffcOXKFYSHh9soMmYJvH87BvczswaFQoG0tDTs3r0ba9eutXU4FkVESExMhIuLC5YtW8btW0BBQQGio6OxaNEiPPPMMxZtu0clRgBw+/ZtJCQk4I8//kBNTQ1OnDiBuLg4uLi4YPHixbYOj7UT79+Owf3MrGH48OE4efIkDh48iIqKCluHYzHFxcUoKCjA0aNHrTJ7tKu3b47169djxYoVWLFihcXb7lGJkZeXF3744QeUlZVh3LhxcHNzw9SpU/Hggw/ixIkT6N+/v61DbLfmz9Iw9Ld06VJbh2kV1tq/xvSpk5MTRCIRcnJycP36dYhEIrzzzjsWfoedQ084j6xN+1tmPeF4MVVAQAD27dsHFxcXW4diMV5eXkhPT8eQIUO4fQtZuXKlxb8p0uqcvyhoRREREYiIiLB1GFZDFnrOUVdljf3b0/vUkO5+Hlnb/PnzMX/+fFuHwRgzoEd9Y8QYY4wx1hpOjBhjjDHGNDgxYowxxhjT4MSIMcYYY0yjyw++jo2NtXUIjLFOTvsbXHy9sD7tDwJzX7Ouir8xYowxxhjT6PLfGH399de2DoEx1snt2rULcXFxfL3oANpvirivWWcnEokMlvM3RowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRvc5c+YM/vrXv2LQoEFwcnKCk5MTBg4ciMjISPzrX//C6dOnhd/N0v4IpEgkwgMPPGDW9izRhiXavnTpEkQiEUaNGmXRGLob7Q/FNv+zs7ODh4cHpk2bhuzsbKvGYM1jxly3b9/GunXrEB4ejt69e0Mmk+HBBx9EfHw8cnJy9Oob6kc7Ozu4ublBqVTilVdewalTp2zwTlhP8Pvvv2Pq1KmoqKhASUmJznE4fPhw1NXV6a3TvJ5IJMKjjz5qg+gtr6GhAWvWrEFwcDCcnZ3Rt29fTJw4EWlpaW3+TuTUqVMhEomwfPlyvWULFy7Ezp07rRW2dVEXtXPnTrJU+Hfv3qU333yTevXqRa+99hqdPn2aampq6Pbt23TixAmaPXs2ASAAlJ2drbOuUqkkX1/fdm3fEm20p+1FixYJ7+/8+fNWiaO7OH36NAGgqKgooaysrIz+3//7f9S3b1+SSCR05MgRq8dhaL9WVlZSUFAQTZo0yerbv99LL71EYrGY/ud//odu3LhB1dXV9PPPP9NDDz1EvXr1oj179uit07wfGxsbqaioiPbu3UthYWEEgGbNmkXV1dUWidGS1wvWupiYGIqJibF1GAadPn2a+vTpQ5988olOeXZ2tnANTEhIaHH9zMxMcnd3t3aYHaaqqorGjh1LjzzyCP30009UU1NDv//+O8XExBAAOnv2bIvrbt68WeizZcuW6S2/fPkyBQYG0jvvvGPNt9AuAGjnzp165fyNEYDFixdj1apV+PTTT/HJJ59g2LBhkMlkcHV1xYgRI/C///u/WLBgga3DtIqmpiZs2bIFw4cPBwB88cUXNo6o61EoFJg+fTo+/PBDNDQ0ICkpySZxEBGamprQ1NTU4duePXs23njjDXh5ecHR0REhISHYvn077t69izfffLPN9Xv16gVPT09ERUXh3//+N958801s2rQJzz77bJv/a+2qnJycMHbs2B67/Y5WUVGBKVOm4Omnn8Zrr72mt1wqlcLd3R3r16/Hjh07bBBhx0tJSUFubi4OHz6McePGQSaTwd/fH5s2bYJUKm1xvcLCQiQlJeH5559vsc6AAQOwZ88erFixArt27bJG+FbT4xOjX3/9Ff/6178QHByMv/3tby3WW7hwIRwcHDowso5x+PBhiMVibNiwAQCwdetWNDY22jiqriksLAwAcP78eZSVlXX49p2dnXHlyhUcOHCgQ7e7ceNGrF+/Xq9cqVRCJpPhypUrJic3//rXvzBy5Eh89913+OqrrywVKuvBVq1ahaKiIixZssTgcgcHB2zbtg12dnZISEhAfn5+B0fYsYqLi7FhwwbEx8fD09NTZ5lcLkddXR0efvhhg+vOnTsXsbGxiIyMbHUbSqUSMTExSE5O7lKfKz0+MdqwYQOamprafHy9q6sramtru819Za3U1FTMmjULjz76KB555BEUFxd3+Adrd3H/h39LDw7rSaqrq1FbW4uHH37Y5P4QiUTC/+o/++wza4THehAiwsaNGzFy5Ej4+Pi0WE+lUuGdd95BZWUlYmNjDY436i6+++473L171+RvDVNTU3H+/HmsXr3aqPrTp0/HtWvXsH//fnPCtIkenxj9/PPPAO5ltpZUWlqKefPmYcCAAbC3t4ebmxsmTpyIH3/8scV1Ll68iEmTJkGhUMDR0RFhYWE4fvy4Tp3Gxkbs3LkTTz75JLy8vCCTyTB06FB89NFHJt9CuXXrFtLS0vDiiy8CAP7yl78AuHfga5WVlekNOtQOtGtsbNQpj4mJEdZTq9VITExEQEAA7O3t4eHhgejoaJw5c0aos3fvXp318/LyMGPGDLi7uwtlJSUlJr/nixcvYtq0aUI/PvbYY9i3bx+eeOIJod05c+aYFKsxjh07BgAYMmQIFAoFANOOA3OOmZb6UntBb17+22+/IS4uDq6urnB3d8fkyZNx5cqVdvehIdonH7/99tttxm+I9oKdlZWFhoYGs9poL2P2yfLly4U+uf9D5tChQ0J5nz59hHLtAPrq6mocP35cqCMWi3WWawfYZ2dnIyIiAs7OzgavC5befneUk5OD4uJio67z7777LiIjI5Gbm4vXX3/dqPaNOU7MPRctdX1q7pdffgEAuLm5ITk5GX5+frC3t0e/fv2QmJiIW7du6a1z7do1JCcnIzU1Fc7OzkZtZ9iwYQCA77//vl3xdqiOHepkOZYaTOnt7U0A6D//+Y9Z6xsaBHvjxg0KDAwkT09PSktLo/LycsrLy6Po6GgSiUT0+eef67WhUCgoLCyM0tPTqbKykrKzs+mRRx4he3t7OnbsmFA3LS2NANB7771Ht27dIrVaTR9//DHZ2dnR/PnzjYpP65NPPqGwsDDhtVqtJolEQmKxmIqLi3XqTpgwgezs7Ojy5ct67YwePZq2b98uvC4sLKR+/fqRp6cn7d+/nyorK+ncuXMUGhpKDg4OlJGRobN+VFQUAaDQ0FD68ccfqbq6mrKysqhXr16kVqtNes+XLl0iV1dX8vX1pcOHDwvbfuKJJ8jDw4OkUqlOfVNjNTT4ury83ODga1OOA3OOGUP7VduXtbW1BsujoqIoIyODqqqq6MiRIySTyWjEiBHt6kNDioqKyNPTk+bMmWNwuaF+bK62tlYY3FlYWNjmNltjzvXC1H0il8vp8ccf12snODjY4IDdluprKZVKksvlNHr0aGGftXRdsMb2w8LCqHfv3pSZmdliHUM64+DrrVu3CtcQQ7Kzs0mhUAiv1Wo1+fn5EQD68ssvhXJDg69NPU5MORdNvT6ZQhuHl5cXxcfH05UrV+j27du0efNmksvlNHDgQCorK9NZR6VS0SuvvCK81varocHXWuXl5QSAQkJCzI7VWtDC4Osenxh5eXm1mhgplUrh4mzoQm7oA2rWrFkEgHbs2KFTXldXRz4+PiSTyaioqEhvG80vQLm5uQSAlEqlUJaWlkbjx4/Xi3PmzJkkkUiovLy8zfi0/vznP9OWLVt0yqZPn04AaPXq1TrlP/zwAwHQOSmIiNLT08nf358aGhqEshdffJEA0LZt23Tq3rhxg6RSKQUHB+uUa0/QAwcOGIzTlPccGxtLAGj37t06dW/evEmOjo56H+qmxqr9QL//TyQSkbu7O02dOpVOnDgh1DXlODDnmDEnMUpLS9Mp184+UavVZvdhcyUlJTRs2DCKi4ujxsZGg3WMSYxqampsmhiZuk+skRgBoNOnT+uUG7ouWGP7oaGh5ObmZvKHb2dMjFatWkUAaO3atQaXN0+MiO4lQRKJhORyOf36669CWfO+NPU4MeVcNPX6ZAqVSkUAKDAwUOf6TUS0fPlyAkCLFy8WyjZs2ED9+/enqqoqocyYxIiISCQSUVBQkNmxWktLiVGPv5Xm6+sL4N5zKgw5c+YMiMik59Ps2bMHADBp0iSdcqlUioiICNTW1up9rejg4ICRI0fqlA0dOhQ+Pj7IycnBjRs3AACTJ082eGtFqVSioaEB58+fNyrG3NxcXLp0CU8//bROufZ2WvPZaRERERg+fDg2bdqE0tJSofz9999HUlKSztfwe/fuhZ2dHSZPnqzThpeXF4YMGYJTp07h2rVrejE99thjBmM15T0fOnQIwL2xAvfz8PDA4MGD9dowN9aoqCjQvf9YoKmpCSUlJfj2228xYsQIoY4px4E5x4w57o8PAPz8/ADcm2WiZWof3q+6uhoqlQoPPfQQtm3bhl69epkdq/aYl0gkOreCOkpH7ZPWyOVy4VaElqHrgjUcO3YMt27dwujRo622jY6ivbUskUiMXmfUqFFYvXo1qqurERsbi9raWoP1zD1OjDkXzb0+GUMulwMAnnjiCb3bqFOmTAHw39tfV69eRUpKClJTU4X1TCEWi1vsv86oxydG48aNA/Df+63tVV9fj/Lycjg4OBi8B6sd/V9UVKRTrh1X01zfvn0BADdv3gQAlJeXY8mSJRg6dCjc3NyE+9UpKSkAgJqaGqPiTE1NRWVlJeRyuc5976lTpwK4N7PqxIkTOuskJyejpqZGGAybn5+Pn3/+WWesifb9NzU1QaFQ6I1P0vbzpUuX9GJq6YQz9j3X19ejsrISDg4OcHJy0mvHzc1N53V7Ym2LKceBuceMObRjn7Ts7e0BQBirZWof3q+xsRGxsbHw9fXF5s2b25UUAUB6ejoAYPTo0SZ9oFlCR+6T1ri6uhosb35dYK3Tzig2daxaYmIi4uLicO7cOYNT/NtznBhzLlrr+gQAAQEBAO599jSnPb7UajUAIC0tDeXl5Rg/frxODNrp+osXLxbKLl++rNdeY2MjZDKZWXHaQo9PjObOnQs7Ozt89dVXFnleilQqhUKhQF1dHSorK/WWFxcXA7iX8d+vvLzcYHvaC5/2QJ0yZQqWLVuGuXPnIj8/H01NTSAirFmzBgCMeg8NDQ3Ytm0bjh8/Lnzrcf+f9jk8zb81iouLg5+fHz799FPU19fjgw8+wNy5c3UuCFKpFK6urhCLxWhoaDDYPhEJU9uNYex7lkqlcHZ2Rl1dHaqqqlrsS2vGen/bxh4H5h4z1mBqH94vISEB9fX12LVrl87/QIOCgpCVlWVSHE1NTVi7di0A4NVXXzVpXUswZ5/Y2dnhzp07enVbenSDMTP1SktLDZ7Tza8L1tp+d+Ht7Q2g5etsazZu3IhBgwYhNTUVW7du1VlmzXPXmtcn4L+TGwx966g9vrSJ3auvvmpw29r+WLZsmVAWFBSk01ZFRQWISNgHXUGPT4z+9Kc/YeHChTh//jxWrVrVYr27d+8a3eb06dMBQG96Yn19PY4ePQqZTKZ3m6Kqqkrv5xPOnj2LwsJCKJVKeHt74+7duzh+/Di8vLyQmJgIDw8P4eJmyteUaWlp6NOnD8aMGWNw+UsvvQQA2LFjh067YrEYb7zxBm7evIkPPvgAX331FRITE/XWj46ORmNjo96MOgBYuXIl/P39jX6mhanveeLEiQD+eztIq6ioyOBzSSwZa3OmHAfmHDPWYmofAsDSpUtx/vx5fPvtt60+GM5YixYtwokTJzB9+vQ2H6VhLabuE29vb1y/fl2nblFREa5evWqwfUdHR51EZtCgQcLzxLTq6ur0buM3vy5Yc/vdhfZ5PObcdnJycsI333wDuVxu8NER1jx3rXl9euqpp+Dr64tDhw7pPZYgLS0NADBt2jSz2r6f9phs6ZlInZIFxzF1KEv/JEhKSgqJRCKaPXs2nTx5kqqrq6mmpoZyc3NpxYoV5OnpSb169dIbZGbMrLSKigqdWQobNmzQa0Mul9PYsWMpKyur1dkn4eHhBIBWrVpFarWaampq6N///jf5+/sTAL2fozAU3+TJk2nVqlWt9sljjz2mNyODiKiiooIUCgWJRCJ64YUXDK5bXFxMAwYMoP79+9OBAweorKyMSktLad26deTo6Kg32K2lAcPmvOfLly9T7969dWZUnT17liZMmED9+vXTGzhsaqzGDBrWMuU4MOeYMWfwdfPyBQsW6A3wNbUPv/jiC70B6c3/mk8saN6Pd+/epeLiYtq7d6+wv2fPnk01NTVt9rMxLDErra198tprrxEA+uSTT6iyspIuX75MM2bMIF9fX4ODnydMmEAKhYKuXr1KGRkZJBaL6cKFC8Jy7WzViIgIo2alWXr73WlWWlNTE/Xt27fFweaGBl839+WXXxKANmeltXWcmHIumnp9io+PJwBUUFDQZp8QER08eJDEYjFFRUVRfn4+3b59m7Zs2UJyuZxGjhzZ5vlnzODr7du3EwCDPw1ka+BZaW07deoUzZ49mwYMGEAymYzs7e3Jy8uLwsPDafny5ToH2/vvv6938X/77beF5SUlJZSUlESBgYEkkUhIoVCQSqWio0ePGmzD19eXTpw4QWFhYeTk5EQymYxCQ0MpPT1dJ0a1Wk0JCQnk5+dHEomEPD09adasWbRw4UKhreDgYIPxaWc4aP9Gjhyp1wf/93//p7eep6enTp2UlBQCQDk5OS32ZWlpKc2bN4/69+9PEomEPDw8KDIyUieJyczMNPgh2pyx71krLy+Ppk2bRi4uLuTo6Ehjxoyhn376icaPH0+Ojo5mxUp0bxZP81gHDRrUYh8QGXccmFK3peNuz549euXx8fEG+1h7nDYvv/831kzpw0mTJpmUGBnqR5FIRAqFgoYOHUovv/wynTp1qtV+NZW51wtT9l9ZWRnNmTOHvL29SSaT0dixYyk7O5uCg4OF97lgwQKh/sWLFykkJITkcjn5+fnpzZjSJr8XLlwglUpFzs7OLV4XrLH9kJCQbjMrjYjorbfeIrFYTNevXxfK1Gq13rHY2kyvl19+2WCSacxxYu65aOz1iejefyKdnJxanA1qSEZGBqlUKlIoFGRvb0+DBw+mpUuXtpoUJSQkGDzPVSqVXt3Y2Fjy9fWlO3fuGB1TR2kpMRJpFnY5u3btQlxcXLf9HSVmeYMHD0ZtbS1+//13W4fSZXXVPuyK14thw4ahpKTE7FlHtqK99al9wGdnUV5ejiFDhmDy5MlYt26drcOxuLKyMvj4+CA+Ph6ff/65rcMBcO/BmsOHD8f27dvxzDPP2DocPSKRCDt37sSMGTN0ynv8GCPWvRQVFaF37956s09+++03XLlyBeHh4TaKrOvgPmTdkUKhQFpaGnbv3i0M7O8uiAiJiYlwcXHBsmXLbB0OAKCgoADR0dFYtGhRp0yKWsOJEet2bt++jYSEBPzxxx+oqanBiRMnEBcXBxcXFyxevNjW4XUJ3IesOxo+fDhOnjyJgwcPoqKiwtbhWExxcTEKCgpw9OjRDplPuHnlAAAgAElEQVS9aoz169djxYoVWLFiha1DMRknRqxb8fLywg8//ICysjKMGzcObm5umDp1Kh588EGcOHEC/fv3t3WInR73oW1pf8ssJycH169fh0gkwjvvvGPrsLqNgIAA7Nu3Dy4uLrYOxWK8vLyQnp6OIUOG2DoUwcqVK7vcN0Va3fdXA1mPFRERgYiICFuH0aVxH9rO/PnzMX/+fFuHwViPxd8YMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpdPlZaT3pF6IZY+3D14uOw33Nuqou+5Mg165dQ0ZGhq3DYIx1UmvWrAEA/P3vf7dxJIyxzmrMmDF44IEHdMq6bGLEGGOt0f7+0a5du2wcCWOsK+ExRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBiRFjjDHGmIbY1gEwxlh7lZSUoKKiQqesuroaAFBQUKBT7uLigj59+nRYbIyxrkVERGTrIBhjrD2++OILzJ4926i6qamp+Mtf/mLliBhjXRUnRoyxLq+8vBweHh5oaGhotZ5EIoFarYZCoeigyBhjXQ2PMWKMdXkKhQJPPfUUxOKWRweIxWJMmjSJkyLGWKs4MWKMdQszZ87E3bt3W1ze1NSEmTNndmBEjLGuiG+lMca6hbq6OvTp00cYdN2co6MjSkpKIJPJOjgyxlhXwt8YMca6BQcHB0RHR0Mikegtk0gkiImJ4aSIMdYmTowYY93Gc889Z3AAdkNDA5577jkbRMQY62r4VhpjrNtobGyEp6cnbt26pVPu6uoKtVrd6uBsxhgD+Bsjxlg3IhaL8eyzz+rcTpNIJJg5cyYnRYwxo3BixBjrVp599lmd22kNDQ149tlnbRgRY6wr4VtpjLFuhYjg5+eH69evAwC8vb1x/fp1iEQiG0fGGOsK+Bsjxli3IhKJ8Pzzz8Pe3h729vZ48cUXOSlijBmNvzFijHU7ubm5UCqVwr+HDh1q44gYY10Fj0ZkFvfhhx8iMzPT1mGwHs7JyQkA8I9//MPGkbCebvTo0Zg3b56tw2BG4ltpzOIyMzORlZVl6zAYgN27d+PatWu2DsMm+vXrh4CAgA7Z1rVr17B79+4O2RbrWrKysvg/il0Mf2PErGLUqFH4+uuvbR1GjycSifD3v/8dM2bMsHUoHa6goAAA0L9/f6tva9euXYiLi+NjnumJjY21dQjMRJwYMca6pY5IiBhj3Q/fSmOMMcYY0+DEiDHGGGNMgxMjxhhjjDENToxYp/XVV19BJBJBJBLBwcHB1uF0mIaGBqxZswbBwcFwdnZG3759MXHiRKSlpYEfO9az/P7775g6dSoqKipQUlIinA8ikQjDhw9HXV2d3jrN64lEIjz66KM2iN7y2nNuTJ06FSKRCMuXL9dbtnDhQuzcudNaYbMuhhMj1mk988wzICJERETYOpQOU11djfDwcGzatAlr1qzBzZs3cfLkSTg5OWHq1Kk4f/68TeKqqqrCgw8+iMmTJ9tk+z3RmTNn8OijjyIyMhIuLi7o06cPiAjZ2dnC8qSkJL31tPUyMzPh7u4OIsLJkyc7OnyLa8+5sWXLFqSlpbW4fO7cuVi0aBEWL15sjdBZF8OJEWOdSEpKCnJzc3H48GGMGzcOMpkM/v7+2LRpE6RSqc3iIiI0NTWhqanJZjEYy8nJCWPHjrV1GO1SUVGBKVOm4Omnn8Zrr72mt1wqlcLd3R3r16/Hjh07bBBhxzP33CgsLERSUhKef/75FusMGDAAe/bswYoVK7Br1y5rhM+6EE6MGOskiouLsWHDBsTHx8PT01NnmVwuR11dHR5++GGbxObs7IwrV67gwIEDNtl+T7Nq1SoUFRVhyZIlBpc7ODhg27ZtsLOzQ0JCAvLz8zs4wo7VnnNj7ty5iI2NRWRkZKvbUCqViImJQXJyMhobGy0WO+t6ODFirJP47rvvcPfu3S7/bQdrHyLCxo0bMXLkSPj4+LRYT6VS4Z133kFlZSViY2MNjjfqLsw9N1JTU3H+/HmsXr3aqPrTp0/HtWvXsH//fnPCZN0EJ0as07h48SKmTZsGhUIBuVyOkJAQpKent1hfrVYjMTERAQEBsLe3h4eHB6Kjo3HmzBmhzt69e3UGof7222+Ii4uDq6sr3N3dMXnyZFy5ckWn3fr6eixZsgSDBw+Go6MjevfujSlTpggXZ1NjMNYvv/wCAHBzc0NycjL8/Pxgb2+Pfv36ITExEbdu3TK5TUto3ofaD2BT+3b16tVC3QceeADZ2dmIiIiAs7MzHB0dERYWhuPHjwv1ly9fLtS//wPx0KFDQnmfPn302q+ursbx48eFOmJx13qObU5ODoqLi4UfwW3Nu+++i8jISOTm5uL11183qv3S0lLMmzcPAwYMgL29Pdzc3DBx4kT8+OOPQh1zzhvAsufD/cw5N65du4bk5GSkpqbC2dnZqO0MGzYMAPD999+3K17WxRFjFhYTE0MxMTEmrXPp0iVydXUlX19fOnz4MFVWVlJubi5FRkZSQEAASaVSnfqFhYXUr18/8vT0pP3791NlZSWdO3eOQkNDycHBgTIyMnTqR0VFEQCKioqijIwMqqqqoiNHjpBMJqMRI0bo1J0zZw4pFAo6fPgw1dTUUFFREc2fP58A0I8//mh2DG3Rxujl5UXx8fF05coVun37Nm3evJnkcjkNHDiQysrKTGoTAO3cudOkddqKr7a21mC5MX1LRKRUKkkul9Po0aOF+tnZ2fTII4+Qvb09HTt2TKe+XC6nxx9/XK+d4OBgcnd31ytvqb5WWFgY9e7dmzIzM419623auXMnWepyunXrVgJA7733nsHl2dnZpFAohNdqtZr8/PwIAH355ZdCeWZmpl7/3LhxgwIDA8nT05PS0tKovLyc8vLyKDo6mkQiEX3++ec69U3Zt5Y+HwzFYcq5oVKp6JVXXhFea/t12bJlLW6nvLycAFBISIjZsTZnzvWQ2RYnRszizLkQxMbGEgDavXu3Tvn169dJKpXqJUYvvvgiAaBt27bplN+4cYOkUikFBwfrlGsvrGlpaXqxAiC1Wi2UBQYG0pgxY/RiHDhwoE5iZGoMbVGpVASAAgMDqaGhQWfZ8uXLCQAtXrzYpDY7MjEypm+J7iVGAOj06dM65bm5uQSAlEqlTrmlE6PQ0FByc3Nr1wd1c5ZMjFatWkUAaO3atQaXN0+MiO4lQRKJhORyOf36669CWfP+mTVrFgGgHTt26JTX1dWRj48PyWQyKioqEspN2beWPh/uZ+q5sWHDBurfvz9VVVUJZcYkRkREIpGIgoKCzI61OU6Muh6+lcY6hUOHDgG4N27ifj4+Phg4cKBe/b1798LOzk5v+riXlxeGDBmCU6dOGfxV+REjRui89vPzA3Bv5orWhAkTkJGRgb/+9a/IysoSbp/l5eVh/Pjx7Y6hJXK5HADwxBNP6N3+mTJlCoDO/RW/MX2rJZfLhdsWWkOHDoWPjw9ycnJw48YNq8V57Ngx3Lp1C6NHj7baNtpDe6tSIpEYvc6oUaOwevVqVFdXIzY2FrW1tQbr7dmzBwAwadIknXKpVIqIiAjU1tYaPMaM2beWPh/uZ8q5cfXqVaSkpCA1NVVYzxRisbjF/mM9AydGzObq6+tRWVkJBwcHODk56S3v27evXv3y8nI0NTVBoVDoPcxOOx7h0qVLem0pFAqd1/b29gCgMw197dq12LJlCwoKChAREQEXFxdMmDBB+FBpbwwtCQgIAAC4u7u32Adqtdro9jqaMX2r5erqarAN7fu8efOmhaPrOrQPM21oaDBpvcTERMTFxeHcuXMGp/hrj1kHBweDY260s72Kior0lrW1b61xPtzPlHMjLS0N5eXlGD9+vE4M2un6ixcvFsouX76s115jYyNkMplZcbLugRMjZnNSqRTOzs6oq6tDVVWV3vLmAyulUilcXV0hFovR0NAAundLWO8vLCzMrHi0F9EffvgBZWVl2Lt3L4gI0dHR+PDDD60Wg3aAsaFvS7SJQvOpyl1VaWmpwScVa9/n/cmwnZ0d7ty5o1e3rKzMYNsikchCUdqGt7c3AKC8vNzkdTdu3IhBgwYhNTUVW7du1VkmlUqhUChQV1eHyspKvXWLi4sB3PuGx1TWPidNOTdeffVVg9vW9seyZcuEsqCgIJ22KioqQETCPmA9EydGrFOYOHEigP/eUtMqKSlBXl6eXv3o6Gg0NjbqzGLSWrlyJfz9/c1+FomrqysuXrwI4N7tjCeffFKYpXP/NF5Lx/DUU0/B19cXhw4d0pt6rX1q77Rp08x5S51OXV2d8ARnrbNnz6KwsBBKpVLng8nb2xvXr1/XqVtUVISrV68abNvR0VEnkRo0aBA2bNhgweitS/s8HnNuOzk5OeGbb76BXC7HZ599prd8+vTpAKA3Hb2+vh5Hjx6FTCbTu51tLGuekx11bmiPM1s9L4x1DpwYsU7hvffeQ+/evZGUlIQjR46gqqoKFy5cwMyZMw3eXvvnP/+JAQMGYPbs2Th48CDKy8tx69YtrF+/Hv/4xz+wevXqdk3T/tvf/obc3FzU19fj5s2bWLVqFYgI4eHhVotBKpVi48aNKC0txTPPPINLly6hrKwMW7duxT//+U+MHDkSiYmJZr+nzkShUOCtt95CZmYmqqurcfLkScycORP29vb46KOPdOpGRkaisLAQn376KaqqqnDlyhW88cYberdYtf785z8jPz8ff/zxBzIzM1FQUICQkBBheXh4ONzd3ZGVlWXV92gupVKJvn37Iicnx6z1hwwZgvXr1xtc9s9//hOBgYFISkrCvn37UFlZifz8fDz33HO4ceMGPvroI7O/lTT1fJg5cyZEIhH+7//+r822O+rc0D5WoK2HQbJurkOGeLMexdxZGHl5eTRt2jRycXERpgPv27ePIiIiCAABoJdeekmoX1paSvPmzaP+/fuTRCIhDw8PioyMpCNHjgh1MjMzhXW1f2+//TYRkV75pEmTiIjozJkzlJCQQH/605/I0dGRevfuTaNGjaLPP/+cmpqadGI2JgZTZWRkkEqlIoVCQfb29jR48GBaunQp1dTUmNwWLDArbc+ePXp9FR8fb1bfEt2blebr60sXLlwglUpFzs7OJJPJKDQ0lNLT0/W2X1ZWRnPmzCFvb2+SyWQ0duxYys7OpuDgYKH9BQsWCPUvXrxIISEhJJfLyc/PT292V0hISKeelUZE9NZbb5FYLKbr168LZWq1Wq9fW5vp9fLLLxuctVdSUkJJSUkUGBhIEomEFAoFqVQqOnr0qFDH3H1ryvkQHh5OTk5O1NjYaHS/mHNuJCQk6MUMgFQqlV7d2NhY8vX1pTt37hgdU1t4VlrXIyLin+tmlhUbGwsA+Prrr20cCROJRNi5cydmzJhh61AEw4YNQ0lJidkzlDqjXbt2IS4urs1feDdWeXk5hgwZgsmTJ2PdunUWabMzKSsrg4+PD+Lj4/H555/bOhwA9x6sOXz4cGzfvh3PPPOMxdrl62HXw7fSGGOsk1EoFEhLS8Pu3buxdu1aW4djUUSExMREuLi4YNmyZbYOBwBQUFCA6OhoLFq0yKJJEeuaODFijLFOaPjw4Th58iQOHjyIiooKW4djMcXFxSgoKMDRo0fNmgFnDevXr8eKFSuwYsUKW4fCOgFOjBizsubPdDH0t3TpUluHaXXa3zLLycnB9evXIRKJ8M4779g6rE4tICAA+/btg4uLi61DsRgvLy+kp6djyJAhtg5FsHLlSv6miAm61q8rMtYF8TC+e+bPn4/58+fbOgzGGGsVf2PEGGOMMabBiRFjjDHGmAYnRowxxhhjGpwYMcYYY4xpcGLEGGOMMabBT75mFhcbG4vdu3fbOgzGGOsUYmJi+MnXXQhP12dWMWrUKPz97/+fvXsPi6re9wf+HgSGYYDhooAgCmLqTmvwoKkpkdCGzAtCILXJarctf5WS20tlXvKUtrc+Puk+HTteOKaZGmaPJJqm2/TsR4G90QRSQ01PF0UQUK4Cgnx+fzgzx2GGYEZgAN+v5+EPvuu7vuuzvmsx82Gt73etP9s6jPteYmIiZs+ejdGjR9s6lG4tMzMTa9asQWpqqq1DoU5m9erVtg6BLMTEiNpFnz59OtX7ue5XiYmJGD16NI9FB1izZg37mUzwSlHXwzFGRERERDpMjIiIiIh0mBgRERER6TAxIiIiItJhYkRdgouLi8kb6e3s7ODh4QGtVovXXnsNJ0+etHWYRFb5+eefMXnyZFRUVKCkpMToPB82bBhqa2tN1mlaT6FQYPjw4TaIvu3cuHED69atQ0REBDw9PaFSqfDAAw8gKSkJubm5ZtcZO3asST/of2bPnm12nfr6eqxevRqhoaFwdXWFt7c3xo8fj/T0dKOXPr/99tucaXgfYmJEXUJVVRVOnToFAIiJiYGIoL6+Hvn5+XjvvfeQn5+P4cOH449//CNu3rxp42iJWi8nJwfDhw9HVFQU3Nzc0LNnT4gIsrOzDcvNfcHr62VmZsLLywsighMnTnR0+G1q/vz5mDVrFmJiYnD27FmUlpZi06ZNyMnJQWhoKNLS0u55G9XV1YiIiMDmzZuxevVqXLt2DSdOnICLiwsmT56MM2fOGOq+/PLLWLBgARYvXnzP26Wug4kRdVk9evSAj48PYmJi8O233+LNN9/E5s2b8eyzz4LPLe2cXFxcMHbs2Pt2+01VVFRg0qRJePrppzFz5kyT5UqlEl5eXli/fj127Nhhgwg73ksvvYQ33ngDvr6+cHZ2RlhYGLZv347bt2/jzTffNLtOdnY2RMTkZ82aNSZ158+fj7y8PBw8eBCPPfYYVCoV+vbti82bN0OpVBrVDQ4Oxu7du7F8+XLs3LmzXfaXOh8mRtRt/PWvf8XIkSOxZ88efP7557YOh6hFK1euRGFhIZYsWWJ2uZOTE7Zt2wY7OzvMmDED58+f7+AIO1ZKSgrWr19vUq7VaqFSqXDx4sV7+qenqKgIGzZsQFJSEnx8fIyWqdVq1NbWYujQoSbbjo+Px9y5c9HQ0GD1tqnrYGJE3YZCoTD81/3xxx/bOBqi3yYiSElJwciRI+Hn59dsvejoaCxatAiVlZVISEgwO96ou6uurkZNTQ2GDh0KhUJhdTt79uzB7du3Lb5qGBsbi8uXL2Pfvn1Wb5u6DiZG1K3oP/CysrJQX19vKC8uLkZycjICAwPh6OiIXr16IS4uDjk5OYY6aWlpRgM3f/rpJyQmJsLd3R1eXl6YOHEiLl68aLS9uro6LFmyBIMHD4azszM8PT0xadIkwwfw3VoTQ2dQWlqKOXPmIDg4GI6OjvDw8MD48eNx5MgRQ51ly5YZ+unuL5kDBw4Yynv27GkoX7VqFRQKBaqrq3H8+HFDHXt7e6PlCoUCffr0QXZ2NiIjI+Hq6gpnZ2eMGzcOx48fb7ft20Jubi6Kioqg1WpbrPvuu+8iKioKeXl5mDVrVqvab81xtOacBzr+XNY/PXrhwoVml2/duhUhISFQq9XQaDSG229NfffddwAADw8PzJ07FwEBAXB0dES/fv2QnJyM69evm20/JCQEAPDNN9+0xe5QZydEbSw+Pl7i4+PbvN1Tp04JAImJiWm2Tk1NjQAQAFJQUCAiIgUFBdKvXz/x8fGRffv2SWVlpZw+fVrCw8PFyclJMjIyjNqIiYkxbCcjI0Oqqqrk0KFDolKpZMSIEUZ1p0+fLhqNRg4ePCg3b96UwsJCmTdvngCQI0eOGOpZGkNbASCpqamtrn/16lUJCgoSHx8fSU9Pl/Lycjl37pzExcWJQqGQjRs3GtVXq9UyZswYk3ZCQ0PFy8vLpLy5+nparVbUarWMHj3a0PfZ2dny8MMPi6Ojoxw9erRdtz9u3Djx9PSUzMzMZuuYk5qaKpZ+nG7dulUAyAcffGB2eXZ2tmg0GsPvxcXFEhAQIADks88+M5RnZmaa7Kulx9GSc76jz+XCwkLx8fGR6dOnm10+ZswYmTZtmpw8eVKqqqokPz9fpk2bJgBk1qxZZvfT19dXkpKS5OLFi3Ljxg3ZsmWLqNVqGThwoJSVlZlso7y8XABIWFiYxfG31+chtR8mRtTmbJkY3bx50yQxeuGFFwSAbNu2zaju1atXRalUSmhoqFG5/sMzPT3dqDw+Pl4ASHFxsaEsKChIHn30UZM4Bg4caJQYWRpDW7E0MXrxxRcFgOzYscOovLa2Vvz8/ESlUklhYaGhvD0SIwBy6tQpo/K8vDwBIFqttlXtWbv98PBw8fDwsPjL3ZrEaOXKlQJA1q5da3Z508RI5E4S5ODgIGq1Wn744QdDWdN9tfQ4WnLOd+S5XFJSIiEhIZKYmCgNDQ0WrfvII48IAMnKyjKURUdHCwAJCgqS+vp6o/rLli0TALJ48WKz7SkUChkwYIDF+8DEqOvhrTTqVq5evQoAcHBwMNxKSUtLg52dHSZOnGhU19fXF0OGDMHJkydx+fJlk7ZGjBhh9HtAQAAAoKCgwFD25JNPIiMjA6+88gqysrIMt8/OnTuHxx9/3FDP2hg62u7duwEAEyZMMCpXKpWIjIxETU1Nu99OUKvVhlsXeg899BD8/PyQm5trOMbt4ejRo7h+/TpGjx7dbtvQ048VcnBwaPU6o0aNwqpVq1BdXY2EhATU1NSYrWftcWzNOd9R53J1dTWio6Px4IMPYtu2bejRo4dF68fHxwMA0tPTDWVqtRoA8MQTT5jcRp00aRKA5m+X2dvbN9vf1L0wMaJu5dixYwCA0aNHw8HBAXV1dSgvL0djYyM0Go3JA+D0Yw4uXLhg0pZGozH63dHREQDQ2NhoKFu7di0+/fRTXLp0CZGRkXBzc8OTTz5p+GICcE8xdCR9nE5OTnB1dTVZrp/FU1hY2K5xuLu7my339vYGAFy7dq1dt99RnJycAMBoLFxrJCcnIzExEadPnzY7xf9ejmNL53xHncsNDQ1ISEiAv78/tmzZYnFSBAC9e/cGYHy+BAYGAgC8vLxM6uvPr+Li4mZjUqlUFsdBXQ8TI+o2GhsbsXbtWgDA66+/DuDOf8ju7u6wt7dHfX292WediAjGjRtn1TYVCgWmTZuGv//97ygrK0NaWhpEBHFxcfjwww87JIa2olQqodFoUFtbi8rKSpPlRUVFAO5cGdCzs7PDrVu3TOqWlZWZ3UZrZhSVlpaanZKt/4LTf4G11/Y7iv6Lu7y83OJ1U1JSMGjQIGzatAlbt241WmbNcWytjjqXZ8yYgbq6OuzcudPoys6AAQOQlZXVqjb0V7nuPl/0A/XNXXXUn19Np/EDd543JSKGY0bdGxMj6jYWLFiAf/3rX4iNjUVCQoKhPC4uDg0NDUazmvRWrFiBvn37Wv18End3d+Tn5wO4c0vk97//vWGmz91Te9szhrYUGxsLACbTkuvq6nD48GGoVCpER0cbynv37o0rV64Y1S0sLMQvv/xitn1nZ2ejRGbQoEHYsGGDUZ3a2lrDU5/1vv/+exQUFECr1Rp9ObXH9juK/nk51tx2cnFxwZdffgm1Wm320RSWHkdLtPe5vHTpUpw5cwZfffWVyQMXm0pJSUFoaKhJuYgYHsiov0UGAE899RT8/f1x4MABk8ce6G+5TZkyxaQ9/TnW9BlH1E115IAmuj901ODr27dvS1FRkaSlpUlERIQAkJdeeklu3rxptF5RUZEEBwdL//795euvv5aysjIpLS2VdevWibOzs8ngZP1A1JqaGqPyt956y2RgsEajkfDwcMnNzZXa2lopKiqSpUuXCgBZtmyZ1TG0FdzjrLSKigqj2UwbNmwwqj9z5kwBIB999JFUVlbKjz/+KFOnThV/f3+zg5+ffPJJ0Wg08ssvv0hGRobY29vL2bNnDcu1Wq1oNBqJjIxs1ay0tt5+R85Ka2xsFG9v72YHg5sbfN3UZ599JgBanJXW0nG05Jy39FxOSkoSAHLp0qUW++STTz4xTJ5o7ufuY7Nx40YBIK+99ppcuHBBampqJD8/37DNprPSRET2798v9vb2EhMTI+fPn5cbN27Ip59+Kmq1WkaOHGny+SEisn37dgEgu3fvbnEfmuLg666HiRG1ufb4IFCr1SYfkAqFQjQajTz00EPy6quvysmTJ5tdv7S0VObMmSP9+/cXBwcH6dWrl0RFRcmhQ4cMdTIzM022sXDhQhERk/IJEyaIiEhOTo7MmDFDfve734mzs7N4enrKqFGjZOPGjdLY2GhxDG3N0sRI5M5MoNmzZ0tQUJA4ODiIRqOR6OhoOXz4sEndsrIymT59uvTu3VtUKpWMHTtWsrOzJTQ01NBXb731lqF+fn6+hIWFiVqtloCAAJMZWVqtVvz9/eXs2bMSHR0trq6uolKpJDw8XI4dO9bu2w8LC+uwWWkiIu+8847Y29vLlStXDGXFxcUm59tvzfR69dVXzSaBrTmO1pzzIpadyxEREeLi4tKqWWUTJkywKDGqra2VL774QmJjYyU4OFiUSqVoNBp5/PHHZfv27c1uJyMjQ6Kjo0Wj0Yijo6MMHjxYli5dajYpEhFJSEgQf39/uXXrVov70BQTo65HIcKXSlHb0t/G0j+UjWxHoVAgNTUVU6dOtXUorRISEoKSkpJOMUPPEjt37kRiYqLFr6soLy/HkCFDMKozlPgAACAASURBVHHiRKxbt66dorOdsrIy+Pn5ISkpCRs3brR1OFbJzc3FsGHDsH37djzzzDMWr8/Pw66HY4yIiGxEo9EgPT0du3btMkwc6C5EBMnJyXBzc8P7779v63CscunSJcTFxWHBggVWJUXUNTExIiKyoWHDhuHEiRPYv38/KioqbB1OmykqKsKlS5dw+PBhq2bAdQbr16/H8uXLsXz5cluHQh2IiRER2Zz+XWa5ubm4cuUKFAoFFi1aZOuwOkxgYCD27t0LNzc3W4fSZnx9fXHs2DEMGTLE1qFYbcWKFbxSdB+y3RsUiYh05s2bh3nz5tk6DCIiXjEiIiIi0mNiRERERKTDxIiIiIhIh4kRERERkQ4HX1O7uHz5suFdRWRbmZmZtg6h29P3Mc95aury5cvo06ePrcMgC/DJ19TmEhISsGvXLluHQUTUKcTHx/PJ110IEyMi6pb0r0HhVRwisgTHGBERERHpMDEiIiIi0mFiRERERKTDxIiIiIhIh4kRERERkQ4TIyIiIiIdJkZEREREOkyMiIiIiHSYGBERERHpMDEiIiIi0mFiRERERKTDxIiIiIhIh4kRERERkQ4TIyIiIiIdJkZEREREOkyMiIiIiHSYGBERERHpMDEiIiIi0mFiRERERKTDxIiIiIhIh4kRERERkQ4TIyIiIiIdJkZEREREOkyMiIiIiHSYGBERERHpMDEiIiIi0mFiRERERKTDxIiIiIhIh4kRERERkQ4TIyIiIiIdJkZEREREOkyMiIiIiHSYGBERERHp2Ns6ACKie/WPf/wDmZmZRmX5+fkAgBUrVhiVjx49Go899liHxUZEXYtCRMTWQRAR3YvDhw/jiSeegIODA+zszF8Ib2xsRH19Pf7+978jMjKygyMkoq6CiRERdXmNjY3w9fVFcXHxb9br2bMnCgsL0aNHjw6KjIi6Go4xIqIuz87ODklJSXB0dGy2jqOjI5577jkmRUT0m5gYEVG38Oyzz+LWrVvNLr916xaeffbZDoyIiLoi3kojom4jMDAQP//8s9llAQEB+Pnnn6FQKDo4KiLqSnjFiIi6jWnTpsHBwcGk3MHBAS+++CKTIiJqEa8YEVG3kZ+fj9/97ndml50+fRpDhgzp4IiIqKvhFSMi6jYGDx6MIUOGmFwZevDBB5kUEVGrMDEiom7l+eefN5p55uDggBdeeMGGERFRV8JbaUTUrfz666/o168f9B9tCoUCly5dQmBgoG0DI6IugVeMiKhbCQgIwMiRI2FnZwc7OzuMHDmSSRERtRoTIyLqdqZNmwaFQgE7OztMmzbN1uEQURfCW2lE1O2UlJTA19cXAFBQUABvb28bR0REXQUTI2pTO3fuRGJioq3DICLqVFJTUzF16lRbh0GtYG/rAKh7Sk1NtXUIBCAzMxNr1qy5L4/HP/7xDygUCoSFhXXI9lavXg0A+POf/9wh26Oug/8sdi1MjKhd8D+jzmPNmjX35fEYP348AMDV1bVDtvfFF18A4LlPppgYdS1MjIioW+qohIiIuhfOSiMiIiLSYWJEREREpMPEiIiIiEiHiRF1Wp9//jkUCgUUCgWcnJxsHQ5Ru/r5558xefJkVFRUoKSkxHDuKxQKDBs2DLW1tSbrNK2nUCgwfPhwG0Tfdm7cuIF169YhIiICnp6eUKlUeOCBB5CUlITc3Fyz64wdO9akH/Q/s2fPNrtOfX09Vq9ejdDQULi6usLb2xvjx49Heno67n6Kzdtvv31fzuq8nzExok7rmWeegYggMjLS1qEQgKqqKjzwwAOYOHGirUPpdnJycjB8+HBERUXBzc0NPXv2hIggOzvbsNzcF7y+XmZmJry8vCAiOHHiREeH36bmz5+PWbNmISYmBmfPnkVpaSk2bdqEnJwchIaGIi0t7Z63UV1djYiICGzevBmrV6/GtWvXcOLECbi4uGDy5Mk4c+aMoe7LL7+MBQsWYPHixfe8XeoamBgRdUIuLi4YO3asrcMwIiJobGxEY2OjrUNpUWfsv+ZUVFRg0qRJePrppzFz5kyT5UqlEl5eXli/fj127Nhhgwg73ksvvYQ33ngDvr6+cHZ2RlhYGLZv347bt2/jzTffNLtOdnY2RMTkZ82aNSZ158+fj7y8PBw8eBCPPfYYVCoV+vbti82bN0OpVBrVDQ4Oxu7du7F8+XLs3LmzXfaXOhdO1yeiVnF1dcXFixdtHUa3s3LlShQWFmLJkiVmlzs5OWHbtm146qmnMGPGDISGhmLgwIEdHGXHSUlJMVuu1WqhUqlw8eJFiAgUCoVV7RcVFWHDhg145ZVX4OPjY7RMrVabvWWp1WoRHx+PuXPnIi4uDvb2/OrsznjFiIjIRkQEKSkpGDlyJPz8/JqtFx0djUWLFqGyshIJCQlmv7y7u+rqatTU1GDo0KFWJ0UAsGfPHty+fdviK4qxsbG4fPky9u3bZ/W2qWtgYkSdRn5+PqZMmQKNRgO1Wo2wsDAcO3bMpF5aWprR4Mpz585h6tSp8PLyMpSVlJQAAEpLSzFnzhwEBwfD0dERHh4eGD9+PI4cOWJob9WqVYb1+vTpg+zsbERGRsLV1RXOzs4YN24cjh8/bhJHa9petmyZoe27P4gPHDhgKO/Zs6dJLNXV1Th+/Lihjq3/Q23a5/ov5qblP/30ExITE+Hu7g4vLy9MnDjR6CqTpX3dXfqvObm5uSgqKoJWq22x7rvvvouoqCjk5eVh1qxZrWq/NeeopcdQr7i4GMnJyQgMDISjoyN69eqFuLg45OTktL4DLKB/svjChQvNLt+6dStCQkKgVquh0WgMt9+a+u677wAAHh4emDt3LgICAuDo6Ih+/fohOTkZ169fN9t+SEgIAOCbb75pi92hzkyI2lBqaqpYc1pduHBB3N3dxd/fXw4ePCiVlZWSl5cnUVFREhgYKEql0mSdmJgYASDh4eFy5MgRqa6ulqysLOnRo4cUFxfL1atXJSgoSHx8fCQ9PV3Ky8vl3LlzEhcXJwqFQjZu3GjUnlarFbVaLaNHj5aMjAypqqqS7Oxsefjhh8XR0VGOHj1qqGtp22q1WsaMGWOyD6GhoeLl5WVS3lx9S1l7PJqj7/Oamhqz5TExMYa+O3TokKhUKhkxYoRJO5b0tUjb99+4cePE09NTMjMzW7vrLYqPj5f4+HiL1tm6dasAkA8++MDs8uzsbNFoNIbfi4uLJSAgQADIZ599ZijPzMw06QdLz1FLjmFBQYH069dPfHx8ZN++fVJZWSmnT5+W8PBwcXJykoyMDIv6oSWFhYXi4+Mj06dPN7t8zJgxMm3aNDl58qRUVVVJfn6+TJs2TQDIrFmzzO6nr6+vJCUlycWLF+XGjRuyZcsWUavVMnDgQCkrKzPZRnl5uQCQsLAwi+MHIKmpqRavR7bBxIjalLVfxAkJCQJAdu3aZVR+5coVUSqVv5kYff3112bbfPHFFwWA7Nixw6i8trZW/Pz8RKVSSWFhoaFcq9UKADl16pRR/by8PAEgWq3W6rbvl8QoPT3dqDw+Pl4ASHFxsVG5JX0t0vb9Fx4eLh4eHm36BW5NYrRy5UoBIGvXrjW7vGliJHInCXJwcBC1Wi0//PCDoaxpP1h6jlpyDF944QUBINu2bTOqe/XqVVEqlRIaGtrKHmhZSUmJhISESGJiojQ0NFi07iOPPCIAJCsry1AWHR0tACQoKEjq6+uN6i9btkwAyOLFi822p1AoZMCAARbvAxOjroW30qhTOHDgAIA7Yynu5ufn1+JA00ceecRs+e7duwEAEyZMMCpXKpWIjIxETU2NyWVxtVptuGSu99BDD8HPzw+5ubm4evWq1W3fD0aMGGH0e0BAAACgoKDApG5r+7o9HD16FNevX8fo0aPbbRutob8l6eDg0Op1Ro0ahVWrVqG6uhoJCQmoqakxW8/ac7Q1xzAtLQ12dnYmj27w9fXFkCFDcPLkSVy+fLnV+9Sc6upqREdH48EHH8S2bdvQo0cPi9aPj48HAKSnpxvK1Go1AOCJJ54wucU6adIkAM3fLrO3t2+2v6n7YGJENldXV4fKyko4OTnBxcXFZLm3t/dvrq//oGvaZnl5OZycnMy+TFQ/G6WwsNCo3N3d3ew29DFcu3bN6rbvBxqNxuh3R0dHADA7xb81fd3d6R9cWl9fb9F6ycnJSExMxOnTp81O8b+Xc7SlY6hvu7GxERqNxuSBivoxPBcuXLBon5pqaGhAQkIC/P39sWXLFouTIgDo3bs3AONzKTAwEADg5eVlUl9/7hUXFzcbk0qlsjgO6lqYGJHNKZVKuLq6ora2FlVVVSbLmxsM2VKbGo0GtbW1qKysNFleVFQE4M5/uHcrLS01euqtnv6D1dvb26q27ezscOvWLZO6ZWVlZuO/l1k3XUVr+lqvu/af/ou7vLzc4nVTUlIwaNAgbNq0CVu3bjVaZu353xpKpRLu7u6wt7dHfX292WcHiQjGjRtncdt3mzFjBurq6rBz506jKzsDBgxAVlZWq9rQX+W6+1zSD+I3d0VSf+41ncYP3HnelIgYjhl1X0yMqFMYP348gP+7paZXUlKCc+fOWdVmbGwsAJhMr62rq8Phw4ehUqlMbt3V1tYanjas9/3336OgoABardbwoWhp271798aVK1eM6hYWFuKXX34xG7uzs7NRIjBo0CBs2LChxX3uSlrb10D37b+hQ4cCgFW3nVxcXPDll19CrVbj448/NlluzfnfWnFxcWhoaDA7W3PFihXo27cvGhoarGobAJYuXYozZ87gq6++MnngYlMpKSkIDQ01KRcRwwMZ9bfIAOCpp56Cv78/Dhw4YPLYA/0ttylTppi0pz//9MeMujFbDW6i7snawb4//vijeHp6Gs1KO3PmjERHR4u3t/dvDr5uOhBYr+msnIqKCqNZORs2bDCqr9VqRaPRSGRkpMWz0lpqe+bMmQJAPvroI6msrJQff/xRpk6dKv7+/mYHDz/55JOi0Wjkl19+kYyMDLG3t5ezZ89a3K8dPfi6aflbb71ldpC1JX0t0vb911lmpTU2Noq3t3ezA8XNDb5u6rPPPhMALc5Ka+kcteQYFhUVSXBwsPTv31++/vprKSsrk9LSUlm3bp04OzubDDROSkoSAHLp0qUW++STTz4RAL/5c/dx27hxowCQ1157TS5cuCA1NTWSn59v2GbTWWkiIvv37xd7e3uJiYmR8+fPy40bN+TTTz8VtVotI0eOlJs3b5qss337dgEgu3fvbnEfmgIHX3cpTIyoTd3LF/G5c+dkypQp4ubmZpgivHfvXomMjDR8IP7pT3+SzMxMsx+W5pSUlMjs2bMlKChIHBwcRKPRSHR0tBw+fNikrlarFX9/fzl79qxER0eLq6urqFQqCQ8Pl2PHjt1T22VlZTJ9+nTp3bu3qFQqGTt2rGRnZ0toaKgh/rfeestQPz8/X8LCwkStVktAQECzs5Za0laJ0e7du036OykpyeyxWLhwoYiISfmECRMM7Vna123df2FhYZ1iVpqIyDvvvCP29vZy5coVQ1lxcbFJ//3WTK9XX33VbILYmnPU2mNYWloqc+bMkf79+4uDg4P06tVLoqKi5NChQyZxREREiIuLS6tmlU2YMMGixKi2tla++OILiY2NleDgYFEqlaLRaOTxxx+X7du3N7udjIwMiY6OFo1GI46OjjJ48GBZunSp2aRI5M7MWX9/f7l161aL+9AUE6OuRSFi5iY/kZV27tyJxMREs2NHOruQkBCUlJS0yWyazqKzHo/u2NcJCQkA/u9BhK1VXl6OIUOGYOLEiVi3bl17hGZTZWVl8PPzQ1JSEjZu3GjrcKySm5uLYcOGYfv27XjmmWcsXl+hUCA1NRVTp05th+iorXGMERGRDWk0GqSnp2PXrl1Yu3atrcNpUyKC5ORkuLm54f3337d1OFa5dOkS4uLisGDBAquSIup6mBgREdnYsGHDcOLECezfvx8VFRW2DqfNFBUV4dKlSzh8+LBVM+A6g/Xr12P58uVYvny5rUOhDsLEiO57+vdr5ebm4sqVK1AoFFi0aJGtw+qW2NfNCwwMxN69e+Hm5mbrUNqMr68vjh07hiFDhtg6FKutWLGCV4ruM53zzYpEHWjevHmYN2+ercO4L7Cviaiz4xUjIiIiIh0mRkREREQ6TIyIiIiIdJgYEREREelw8DW1C/07isi2MjMzAfB4dAT9wyrZ10RdGxMjaheJiYm2DoHuwuPRcdjXRF0bEyNqF53tFRT3q876SpDuyNpXglD3p1AobB0CWYBjjIiIiIh0mBgRERER6TAxIiIiItJhYkRERESkw8SIiIiISIeJEdmci4sLFAqF0Y+dnR08PDyg1Wrx2muv4eTJk7YOk6hd/fzzz5g8eTIqKipQUlJi9PcwbNgw1NbWmqzTtJ5CocDw4cNtEH3buXHjBtatW4eIiAh4enpCpVLhgQceQFJSEnJzc82uM3bsWJN+0P/Mnj3b7Dr19fVYvXo1QkND4erqCm9vb4wfPx7p6elGszjffvttpKamtsu+UufExIhsrqqqCqdOnQIAxMTEQERQX1+P/Px8vPfee8jPz8fw4cPxxz/+ETdv3rRxtERtLycnB8OHD0dUVBTc3NzQs2dPiAiys7MNy819wevrZWZmwsvLCyKCEydOdHT4bWr+/PmYNWsWYmJicPbsWZSWlmLTpk3IyclBaGgo0tLS7nkb1dXViIiIwObNm7F69Wpcu3YNJ06cgIuLCyZPnowzZ84Y6r788stYsGABFi9efM/bpa6BiRF1Sj169ICPjw9iYmLw7bff4s0338TmzZvx7LPP3lfP5HFxccHYsWNtHUabsvU+2Xr7TVVUVGDSpEl4+umnMXPmTJPlSqUSXl5eWL9+PXbs2GGDCDveSy+9hDfeeAO+vr5wdnZGWFgYtm/fjtu3b+PNN980u052djZExORnzZo1JnXnz5+PvLw8HDx4EI899hhUKhX69u2LzZs3Q6lUGtUNDg7G7t27sXz5cj7V/D7BxIi6hL/+9a8YOXIk9uzZg88//9zW4RC1mZUrV6KwsBBLliwxu9zJyQnbtm2DnZ0dZsyYgfPnz3dwhB0rJSUF69evNynXarVQqVS4ePHiPf1zVFRUhA0bNiApKQk+Pj5Gy9RqNWprazF06FCTbcfHx2Pu3LloaGiwetvUNTAxoi5BoVAY/pv++OOPbRwNUdsQEaSkpGDkyJHw8/Nrtl50dDQWLVqEyspKJCQkmB1v1N1VV1ejpqYGQ4cOvacnSe/Zswe3b9+2+KphbGwsLl++jH379lm9beoamBhRl6H/IMvKykJ9fT3S0tKMBlmeO3cOU6dOhZeXl6GspKQEAFBaWoo5c+YgODgYjo6O8PDwwPjx43HkyBFD+6tWrTKs16dPH2RnZyMyMhKurq5wdnbGuHHjcPz4cZO4WtP2smXLDG3f/YF84MABQ3nPnj1NYqmursbx48cNdeztO+YtPrbYJ0v7v6v1qTm5ubkoKiqCVqttse67776LqKgo5OXlYdasWa1qvzXHsenf0U8//YTExES4u7vDy8sLEydOxMWLF03aLi4uRnJyMgIDA+Ho6IhevXohLi4OOTk5re8AC+hftbJw4UKzy7du3YqQkBCo1WpoNBrD7bemvvvuOwCAh4cH5s6di4CAADg6OqJfv35ITk7G9evXzbYfEhICAPjmm2/aYneoMxOiNpSamirWnFanTp0SABITE9NsnZqaGgEgAKSgoMBQHhMTIwAkPDxcjhw5ItXV1ZKVlSU9evSQ4uJiuXr1qgQFBYmPj4+kp6dLeXm5nDt3TuLi4kShUMjGjRuNtqPVakWtVsvo0aMlIyNDqqqqJDs7Wx5++GFxdHSUo0ePGupa2rZarZYxY8aY7FtoaKh4eXmZlDdXv7WsOR623idL+r89tj9u3Djx9PSUzMzMZuuYEx8fL/Hx8Rats3XrVgEgH3zwgdnl2dnZotFoDL8XFxdLQECAAJDPPvvMUJ6ZmWmyr5YeR/3fUUxMjKHfDx06JCqVSkaMGGFUt6CgQPr16yc+Pj6yb98+qayslNOnT0t4eLg4OTlJRkaGRf3QksLCQvHx8ZHp06ebXT5mzBiZNm2anDx5UqqqqiQ/P1+mTZsmAGTWrFlm99PX11eSkpLk4sWLcuPGDdmyZYuo1WoZOHCglJWVmWyjvLxcAEhYWJjF8QOQ1NRUi9cj22BiRG2qPROjmzdv/mZi9PXXX5td78UXXxQAsmPHDqPy2tpa8fPzE5VKJYWFhYZyrVYrAOTUqVNG9fPy8gSAaLVaq9vuComRrffJkv5vj+2Hh4eLh4eHxV/u1iRGK1euFACydu1as8ubJkYid5IgBwcHUavV8sMPPxjKmu6rpcdR/3eUnp5usl8ApLi42FD2wgsvCADZtm2bUd2rV6+KUqmU0NDQVvZAy0pKSiQkJEQSExOloaHBonUfeeQRASBZWVmGsujoaAEgQUFBUl9fb1R/2bJlAkAWL15stj2FQiEDBgyweB+YGHUtvJVGXcbVq1cBAA4ODka3SPQeeeQRs+vt3r0bADBhwgSjcqVSicjISNTU1JhcHler1YZL53oPPfQQ/Pz8kJuba4jFmrY7u86wT63t//Zw9OhRXL9+HaNHj263bejpxwo5ODi0ep1Ro0Zh1apVqK6uRkJCAmpqaszWs/Y4jhgxwuj3gIAAAEBBQYGhLC0tDXZ2dpg4caJRXV9fXwwZMgQnT57E5cuXW71PzamurkZ0dDQefPBBbNu2DT169LBo/fj4eABAenq6oUytVgMAnnjiCZPbqJMmTQLQ/O0ye3v7Zvubug8mRtRlHDt2DAAwevRos18k+g+8u9XV1aG8vBxOTk5wdXU1Wa6flVJYWGhU7u7ubjYGb29vAMC1a9esbrsz6yz71Jr+7w6cnJwA3HnYoCWSk5ORmJiI06dPm53ify/HUaPRGP3u6OgIAGhsbDRqu7GxERqNxuSBivoxPBcuXLBon5pqaGhAQkIC/P39sWXLFouTIgDo3bs3AOPzJTAwEADg5eVlUl9/fhUXFzcbk0qlsjgO6lqYGFGX0NjYiLVr1wIAXn/99Vavp1QqodFoUFtbi8rKSpPlRUVFAO78p3u30tJSs1OC9R+w3t7eVrVtZ2eHW7dumdQtKyszG/+9zL6xRmfZp9b0f3tuv6Pov7jLy8stXjclJQWDBg3Cpk2bsHXrVqNl1p73raFUKuHu7g57e3vU19ebfXaQiGDcuHEWt323GTNmoK6uDjt37jS6sjNgwABkZWW1qg39Va67zxf9QH1zVx3151fTafzAnedNiYjhmFH3xcSIuoQFCxbgX//6F2JjY5GQkGDRurGxsQBgMs22rq4Ohw8fhkqlQnR0tNGy2tpaw1OH9b7//nsUFBRAq9UaPhwtbbt37964cuWKUd3CwkL88ssvZmN3dnY2+tIfNGgQNmzY0OI+34vOsE+t7f/22n5H0T8vx5rbTi4uLvjyyy+hVqvNPsLCmvO+teLi4tDQ0GB2luaKFSvQt2/fe3rez9KlS3HmzBl89dVXJg9cbColJQWhoaEm5SJieCCj/hYZADz11FPw9/fHgQMHTB57oL/lNmXKFJP29OdY02ccUTdkq8FN1D211eDr27dvS1FRkaSlpUlERIQAkJdeeklu3rxpsq5+0GhNTY3ZtpvOzqmoqDCanbNhwwaj+lqtVjQajURGRlo8K62ltmfOnCkA5KOPPpLKykr58ccfZerUqeLv7292oPCTTz4pGo1GfvnlF8nIyBB7e3s5e/Zsq/u1LWaldfQ+WdL/7bH9jpyV1tjYKN7e3s0OBjc3+Lqpzz77TAC0OCutpePY3N/RW2+9ZTIYvqioSIKDg6V///7y9ddfS1lZmZSWlsq6devE2dnZZKBxUlKSAJBLly612CeffPKJYZJFcz93H5uNGzcKAHnttdfkwoULUlNTI/n5+YZtNp2VJiKyf/9+sbe3l5iYGDl//rzcuHFDPv30U1Gr1TJy5EiznzPbt28XALJ79+4W96EpcPB1l8LEiNqUNV/EarXa5INPoVCIRqORhx56SF599VU5efKkyXqZmZlmPzTNKSkpkdmzZ0tQUJA4ODiIRqOR6OhoOXz4sEldrVYr/v7+cvbsWYmOjhZXV1dRqVQSHh4ux44du6e2y8rKZPr06dK7d29RqVQyduxYyc7OltDQUEP8b731lqF+fn6+hIWFiVqtloCAgGZnLzXH2kTVlvtkaf+39fbDwsI6bFaaiMg777wj9vb2cuXKFUNZcXGxyXn9WzO9Xn31VbNJYGuOo7m/o4ULF4qImJRPmDDBsF5paanMmTNH+vfvLw4ODtKrVy+JioqSQ4cOmcQREREhLi4urZpVNmHCBIsSo9raWvniiy8kNjZWgoODRalUikajkccff1y2b9/e7HYyMjIkOjpaNBqNODo6yuDBg2Xp0qVmkyIRkYSEBPH395dbt261uA9NMTHqWhQi99GLp6jd7dy5E4mJiV36fWYhISEoKSlpk1k1ttYVj0dX7X/9LV79gwhbq7y8HEOGDMHEiROxbt269gjNpsrKyuDn54ekpCRs3LjR1uFYJTc3F8OGDcP27dvxzDPPWLy+QqFAamoqpk6d2g7RUVvjGCMiIhvSaDRIT0/Hrl27DBMMugsRQXJyMtzc3PD+++/bOhyrXLp0CXFxcViwYIFVSRF1PUyMiIhsbNiwYThx4gT279+PiooKW4fTZoqKinDp0iUcPnzYqhlwncH69euxfPlyLF++3NahUAdhYkSko3+XVm5uLq5cuQKFQoFFixbZOqz7xv3e/4GBgdi7dy/c3NxsHUqb8fX1xbFjxzBkyBBbh2K1FStW8ErRfcZ2b08k6mTmzZuHefPm2TqM+xb7n4g6A14xIiIiItJhYkRERESkw8SIiIiISIeJEREREZEOB19Tu7D0fWbUkYaUlgAAIABJREFUPvQPSeTxaH/6F5uyr4m6Nj75mtpUZmYmPvzwQ1uHQYTvv/8eAPDQQw/ZOBIiYM6cORg9erStw6BWYGJERN2S/vUL+jesExG1BscYEREREekwMSIiIiLSYWJEREREpMPEiIiIiEiHiRERERGRDhMjIiIiIh0mRkREREQ6TIyIiIiIdJgYEREREekwMSIiIiLSYWJEREREpMPEiIiIiEiHiRERERGRDhMjIiIiIh0mRkREREQ6TIyIiIiIdJgYEREREekwMSIiIiLSYWJEREREpMPEiIiIiEiHiRERERGRDhMjIiIiIh0mRkREREQ6TIyIiIiIdJgYEREREekwMSIiIiLSYWJEREREpMPEiIiIiEiHiRERERGRDhMjIiIiIh0mRkREREQ6TIyIiIiIdJgYEREREekoRERsHQQR0b349NNP8eGHH+L27duGspKSEgBAz549DWU9evTAnDlz8Pzzz3d4jETUNTAxIqIu7/z58xg0aFCr6p47dw4DBw5s54iIqKvirTQi6vIGDhwIrVYLhULRbB2FQgGtVsukiIh+ExMjIuoWnn/+efTo0aPZ5fb29njhhRc6MCIi6op4K42IuoWCggIEBASgsbHR7HKFQoFff/0V/v7+HRwZEXUlvGJERN2Cn58fHn30UdjZmX6s2dnZYcyYMUyKiKhFTIyIqNuYNm2a2XKFQsGZaETUKryVRkTdxo0bN+Dj44P6+nqjcnt7exQWFsLLy8tGkRFRV8ErRkTUbXh4eOD3v/+90SDsHj16IDo6mkkREbUKEyMi6laee+45owHYIoLnnnvOhhERUVfCW2lE1K3cvHkTXl5eqK2tBQA4OTmhpKQEarXaxpERUVfAK0ZE1K04OzsjNjYWDg4OcHBwQGxsLJMiImo1JkZE1O384Q9/QH19Perr6/GHP/zB1uEQURdib+sAqPvJzMzEr7/+ausw6D52+/ZtODs7Q0RQUVGBnTt32jokuo8FBARg9OjRtg6DWoljjKjNJSQkYNeuXbYOg4ioU4iPj8cXX3xh6zColXjFiNoFPwg6B4VCgdTUVEydOtXWoXS4//mf/4FCocBjjz3W7tvauXMnEhMTwf8zqamEhARbh0AWYmJERN1SWFiYrUMgoi6IiRERdUvm3plGRNQSfnIQERER6TAxIiIiItJhYkRERESkw8SIOq3PP/8cCoUCCoUCTk5Otg6n3a1bt86wv839jB8/3tZhUjv4+eefMXnyZFRUVKCkpMTomA8bNszwepO7Na2nUCgwfPhwG0Tfdm7cuIF169YhIiICnp6eUKlUeOCBB5CUlITc3Fyz64wdO7bZv5fZs2ebXae+vh6rV69GaGgoXF1d4e3tjfHjxyM9Pd1oZuHbb7+N1NTUdtlX6ryYGFGn9cwzz0BEEBkZaetQOo1HH33UJtutqqrCAw88gIkTJ9pk+91ZTk4Ohg8fjqioKLi5uaFnz54QEWRnZxuWm/uC19fLzMyEl5cXRAQnTpzo6PDb1Pz58zFr1izExMTg7NmzKC0txaZNm5CTk4PQ0FCkpaXd8zaqq6sRERGBzZs3Y/Xq1bh27RpOnDgBFxcXTJ48GWfOnDHUffnll7FgwQIsXrz4nrdLXQcTI6JOJCYmBiJi8nP+/HkolUq8/PLLNolLRNDY2Gj01vrOysXFBWPHjrV1GK1SUVGBSZMm4emnn8bMmTNNliuVSnh5eWH9+vXYsWOHDSLseC+99BLeeOMN+Pr6wtnZGWFhYdi+fTtu376NN9980+w62dnZZv9u1qxZY1J3/vz5yMvLw8GDB/HYY49BpVKhb9++2Lx5M5RKpVHd4OBg7N69G8uXL+fT0+8jnK5P1EkMGDCg2WfvfPTRR5gyZQp8fX07OKo7XF1dcfHiRZtsuztbuXIlCgsLsWTJErPLnZycsG3bNjz11FOYMWMGQkNDMXDgwA6OsuOkpKSYLddqtVCpVLh48SJEBAqFwqr2i4qKsGHDBrzyyivw8fExWqZWq83estRqtYiPj8fcuXMRFxcHe3t+bXZ3vGJE1Ek88cQTmDt3rkl5ZWUltmzZgtdee80GUVF7ERGkpKRg5MiR8PPza7ZedHQ0Fi1ahMrKSiQkJJj98u7uqqurUVNTg6FDh1qdFAHAnj17cPv2bYuvKMbGxuLy5cvYt2+f1dumroOJEXUa+fn5mDJlCjQaDdRqNcLCwnDs2LFm6xcXFyM5ORmBgYFwdHREr169EBcXh5ycHEOdtLQ0o8GYP/30ExITE+Hu7g4vLy9MnDjR5EpIXV0dlixZgsGDB8PZ2Rmenp6YNGmS4UPV0hju1SeffIK+fft2yKstzGnah/ovZkv7dtWqVYa6ffr0QXZ2NiIjI+Hq6gpnZ2eMGzcOx48fN9RftmyZof7dX2QHDhwwlPfs2dOk/erqahw/ftxQp7P+h5+bm4uioiJotdoW67777ruIiopCXl4eZs2a1ar2S0tLMWfOHAQHB8PR0REeHh4YP348jhw5Yqhjzd8H0DHn/d30rxdauHCh2eVbt25FSEgI1Go1NBqN4fZbU9999x0AwMPDA3PnzkVAQAAcHR3Rr18/JCcn4/r162bbDwkJAQB88803bbE71NkJURuLj4+X+Ph4i9a5cOGCuLu7i7+/vxw8eFAqKyslLy9PoqKiJDAwUJRKpVH9goIC6devn/j4+Mi+ffuksrJSTp8+LeHh4eLk5CQZGRlG9WNiYgSAxMTESEZGhlRVVcmhQ4dEpVLJiBEjjOpOnz5dNBqNHDx4UG7evCmFhYUyb948ASBHjhyxOgZrNDY2ysCBA+Xjjz+2an0Akpqaes9xiPxfH9bU1Jgtb03fiohotVpRq9UyevRoQ/3s7Gx5+OGHxdHRUY4ePWpUX61Wy5gxY0zaCQ0NFS8vL5Py5urrjRs3Tjw9PSUzM7O1u96i1NRUsfTjdOvWrQJAPvjgA7PLs7OzRaPRGH4vLi6WgIAAASCfffaZoTwzM9OkH65evSpBQUHi4+Mj6enpUl5eLufOnZO4uDhRKBSyceNGo/qWHMOOOO/vVlhYKD4+PjJ9+nSzy8eMGSPTpk2TkydPSlVVleTn58u0adMEgMyaNcvsfvr6+kpSUpJcvHhRbty4IVu2bBG1Wi0DBw6UsrIyk22Ul5cLAAkLC7M4fms+D8m2mBhRm7PmgyAhIUEAyK5du4zKr1y5Ikql0iQxeuGFFwSAbNu2zaj86tWrolQqJTQ01Khc/4GYnp5uEisAKS4uNpQFBQXJo48+ahLjwIEDjRIjS2Owxr59+8TV1VUqKyutWr8jE6PW9K3IncQIgJw6dcqoPC8vTwCIVqs1Km/rxCg8PFw8PDza9AvcmsRo5cqVAkDWrl1rdnnTxEjkThLk4OAgarVafvjhB0NZ03548cUXBYDs2LHDqLy2tlb8/PxEpVJJYWGhodySY9gR571eSUmJhISESGJiojQ0NFi07iOPPCIAJCsry1AWHR0tACQoKEjq6+uN6i9btkwAyOLFi822p1AoZMCAARbvAxOjroe30qhTOHDgAIA74ynu5ufnZ3awaVpaGuzs7Eymj/v6+mLIkCE4efIkLl++bLLeiBEjjH4PCAgAABQUFBjKnnzySWRkZOCVV15BVlaW4fbZuXPn8Pjjj99zDJb4j//4Dzz//PNwcXG5p3Y6Qmv6Vk+tVhtuT+g99NBD8PPzQ25uLq5evdpucR49ehTXr1/H6NGj220braG/Jeng4NDqdUaNGoVVq1ahuroaCQkJqKmpMVtv9+7dAIAJEyYYlSuVSkRGRqKmpsbsbaHWHMOOOO+BO+OKoqOj8eCDD2Lbtm3o0aOHRevHx8cDANLT0w1larUawJ3xfE1vsU6aNAlA87fL7O3tm+1v6l6YGJHN1dXVobKyEk5OTmYTAG9vb5P65eXlaGxshEajMXmom34cwYULF0za0mg0Rr87OjoCgNE09LVr1+LTTz/FpUuXEBkZCTc3Nzz55JOGL5t7jaG1zp8/j4MHD3aZQdet6Vs9d3d3s23oj/W1a9faOLrOR//Q0vr6eovWS05ORmJiIk6fPm12ir/+3HRycoKrq6vJcv1srMLCQpNlLR3DjjjvAaChoQEJCQnw9/fHli1bLE6KAKB3794AjM+lwMBAAICXl5dJff25V1xc3GxMKpXK4jio62FiRDanVCrh6uqK2tpaVFVVmSxvOiBSqVTC3d0d9vb2qK+vN/v8EhHBuHHjrIpHoVBg2rRp+Pvf/46ysjKkpaVBRBAXF4cPP/ywQ2IA7lwteuyxx/Dggw9a3UZnVVpaavSEYT39l9jdybCdnR1u3bplUresrMxs2/cya6kj6b+4y8vLLV43JSUFgwYNwqZNm7B161ajZUqlEhqNBrW1taisrDRZt6ioCACsevRDR5z3ADBjxgzU1dVh586dRld2BgwYgKysrFa1ob/Kdfe5pB/Eb+6KpP7cazqNH7jzvCkRMRwz6t6YGFGnoH/Vhf6Wml5JSQnOnTtnUj8uLg4NDQ1Gs5j0VqxYgb59+6KhocGqWNzd3ZGfnw/gzm2O3//+94bZO3dP123PGCoqKvDpp5/i9ddft2r9zq62ttbwZGe977//HgUFBdBqtUZfQL1798aVK1eM6hYWFuKXX34x27azs7NRIjVo0CBs2LChDaNvG0OHDgUAq247ubi44Msvv4RarcbHH39ssjw2NhYATKaX19XV4fDhw1CpVCa3rVurPc97AFi6dCnOnDmDr776yuSBi02lpKQgNDTUpFxEDA9k1N8iA4CnnnoK/v7+OHDggMljD/S33KZMmWLSnv780x8z6t6YGFGn8MEHH8DT0xOzZ8/GoUOHUFVVhbNnz+K5554ze3vtL3/5C4KDg/HSSy9h//79KC8vx/Xr17F+/Xq89957WLVq1T1N0/5//+//IS8vD3V1dbh27RpWrlwJEUFERESHxLBp0ya4uLgYvuC6G41Gg3feeQeZmZmorq7GiRMn8Nxzz8HR0RF/+9vfjOpGRUWhoKAA//mf/4mqqipcvHgRb7zxhsktVr1/+7d/w/nz5/Hrr78iMzMTly5dMnpwZkREBLy8vFp95aG9aLVaeHt7N/sOsJYMGTIE69evN7vsL3/5C4KCgjB79mzs3bsXlZWVOH/+PP7whz/g6tWr+Nvf/mb2ykhrWHreP/fcc1AoFPjf//3fFtvevHkz/v3f/x3//Oc/4erqanKrztyjA7777ju8/vrr+PHHH1FbW4tz585h2rRpOHnyJGbNmoWRI0ca6iqVSqSkpKC0tBTPPPMMLly4gLKyMmzduhV/+ctfMHLkSCQnJ5tsQ/8YgqioKGu6jLqaDhzoTfcJa2dhnDt3TqZMmSJubm6GacJ79+6VyMhIASAA5E9/+pOhfmlpqcyZM0f69+8vDg4O0qtXL4mKipJDhw4Z6mRmZhrW1f8sXLhQRMSkfMKECSIikpOTIzNmzJDf/e534uzsLJ6enjJq1CjZuHGjNDY2GsXcmhgs1djYKAMGDJAlS5ZY3YYe2mBW2u7du036Kikpyaq+FbkzK83f31/Onj0r0dHR4urqKiqVSsLDw+XYsWMm2y8rK5Pp06dL7969RaVSydixYyU7O1tCQ0MN7b/11luG+vn5+RIWFiZqtVoCAgJMZn2FhYV1illpIiLvvPOO2Nvby5UrVwxlxcXFJv33WzO9Xn31VbOz80pKSmT27NkSFBQkDg4OotFoJDo6Wg4fPmyoY+0xtOS8j4iIEBcXl1bNKpswYYLJdpv+3P2YhdraWvniiy8kNjZWgoODRalUikajkccff1y2b9/e7HYyMjIkOjpaNBqNODo6yuDBg2Xp0qVy8+ZNs/UTEhLE399fbt261eI+NMVZaV2PQsTMjX6ie5CQkADg/x7KRrajUCiQmpqKqVOn2joUg5CQEJSUlLTJzKXOYufOnUhMTDQ7buq3lJeXY8iQIZg4cSLWrVvXTtHZTllZGfz8/JCUlISNGzfaOhyr5ObmYtiwYdi+fTueeeYZi9fn52HXw1tpREQ2otFokJ6ejl27dmHt2rW2DqdNiQiSk5Ph5uaG999/39bhWOXSpUuIi4vDggULrEqKqGtiYkREZEPDhg3DiRMnsH//flRUVNg6nDZTVFSES5cu4fDhwzZ7+fG9Wr9+PZYvX47ly5fbOhTqQEyMiNpZ0wGk5n6WLl1q6zDbnf5dZrm5ubhy5QoUCgUWLVpk67A6hcDAQOzduxdubm62DqXN+Pr64tixYxgyZIitQ7HaihUreKXoPtQ5365I1I1wGN8d8+bNw7x582wdBhHRb+IVIyIiIiIdJkZEREREOkyMiIiIiHSYGBERERHpcPA1tYusrCzDg83ItlavXs2Hy7Uz/cMqec5TU1lZWRg1apStwyAL8IoRERERkQ6vGFG7GDVqFK9SdAIKhQJ//vOfO9UrQboj/StBeM5TU7yK2PXwihERERGRDhMjIiIiIh0mRkREREQ6TIyIiIiIdJgYUZfg4uJi8uJVOzs7eHh4QKvV4rXXXsPJkydtHSZRm/r5558xefJkVFRUoKSkxOj8HzZsGGpra03WaVpPoVBg+PDhNoi+fXz99dcYOHAg7O1bnjuUk5ODCRMmwN3dHa6urnjiiSdw/Phxk3pvv/02UlNT2yNc6oKYGFGXUFVVhVOnTgEAYmJiICKor69Hfn4+3nvvPeTn52P48OH44x//iJs3b9o4WqJ7l5OTg+HDhyMqKgpubm7o2bMnRATZ2dmG5bNnzzZZT18vMzMTXl5eEBGcOHGio8NvcxcvXsTkyZOxYMECFBUVtVj/n//8Jx599FG4urrihx9+wP/+7/+if//+ePzxx3Hw4EGjui+//DIWLFiAxYsXt1f41IUwMaIuq0ePHvDx8UFMTAy+/fZbvPnmm9i8eTOeffZZvtG+k3JxccHYsWPv2+23VkVFBSZNmoSnn34aM2fONFmuVCrh5eWF9evXY8eOHTaIsOMtXrwYjz76KE6ePAlXV9ffrNvY2Ig//elPcHd3xyeffILevXujZ8+e+K//+i8EBwdj+vTpqKurM9QPDg7G7t27sXz5cuzcubO9d4U6OSZG1G389a9/xciRI7Fnzx58/vnntg6HyGorV65EYWEhlixZYna5k5MTtm3bBjs7O8yYMQPnz5/v4Ag73n//93/j7bffbtUttH/84x84c+YM4uPjoVKpDOU9evTAs88+i19//RV79+41Wker1SI+Ph5z585FQ0NDm8dPXQcTI+o2FAqF4b/rjz/+2MbREFlHRJCSkoKRI0fCz8+v2XrR0dFYtGgRKisrkZCQYHa8UXdyd4LTkm+//RYAzI6t0pcdPnzYZFlsbCwuX76Mffv2WRkldQdMjKhb0d8mycrKQn19vaG8uLgYycnJCAwMhKOjI3r16oW4uDjk5OQY6qSlpRkNWP3pp5+QmJgId3d3eHl5YeLEibh48aLR9urq6rBkyRIMHjwYzs7O8PT0xKRJk7Bnzx7cvn3bqG5rYugMSktLMWfOHAQHB8PR0REeHh4YP348jhw5YqizbNkyQz/dfWvqwIEDhvKePXsayletWgWFQoHq6mocP37cUEf/379+uUKhQJ8+fZCdnY3IyEi4urrC2dkZ48aNMxo029bb70xyc3NRVFQErVbbYt13330XUVFRyMvLw6xZs1rVfmuOrzV/C0DnOcfz8/MBAH369DFZ5u/vDwBmr7KFhIQAAL755pt2jI46PSFqY/Hx8RIfH9/m7Z46dUoASExMTLN1ampqBIAAkIKCAhERKSgokH79+omPj4/s27dPKisr5fTp0xIeHi5OTk6SkZFh1EZMTIxhOxkZGVJVVSWHDh0SlUolI0aMMKo7ffp00Wg0cvDgQbl586YUFhbKvHnzBIAcOXLEUM/SGNoKAElNTW11/atXr0pQUJD4+PhIenq6lJeXy7lz5yQuLk4UCoVs3LjRqL5arZYxY8aYtBMaGvr/27u/kKbCNw7g39mmzpnHjMw/LNJCK7NlEmgkpsM09EZxKkgUEYkUEiGI1UVQBkZ0E4JpdJFmWYaCUUEJXohKpmWF/TF2YfkvNabi33TP70J3fr+5+dPZ5qY9H9iF73nPeR/Oe872uPO+72jz5s0m5YvVN1CpVKRQKCgyMlI89y0tLbRv3z5ydnam+vp6m7YfExNDXl5e1NTUtGgdcyorK8lab6dlZWUEgK5fv252e0tLCwmCIP49MDBASqWSAFB5eblY3tTUZHIOLO1fS+6F1bzG/f39acOGDYtuj4uLIwDU3Nxssq2zs5MA0IEDB0y2DQ8PEwCKioqyWqy2ej9ktsOJEbM6eyZG4+PjJonRiRMnCAA9ePDAqG5vby+5uLhQeHi4Ubnhw6C2ttaoPDU1lQDQwMCAWBYQEECHDh0yiSMoKMgoMbI0BmuxNDE6efIkAaCHDx8alU9OTpKfnx/J5XLq6+sTy22RGAGgd+/eGZV/+PCBAJBKpVrW8VbafnR0NG3atMniD3FrJkY3btwgAFRUVGR2+8LEiGguCZLJZKRQKOjz589i2cJzYGn/WnIvrOY1/jeJ0bdv3wjAovFIJBLauXOn1WLlxGjt4UdpbF3p7e0FAMhkMvFRSk1NDZycnJCUlGRU18fHByEhIWhtbcXPnz9NjnXw4EGjv5VKJQCgp6dHLEtISEBjYyPOnDmD5uZm8fHZ169fceTIEbHeSmNYbdXV1QCAxMREo3IXFxeo1WpMTEzY/DGDQqEQH2kYhIaGws/PD+3t7WIf20J9fT1+//6NyMhIm7WxFMNYIZlMtux9IiIicPPmTYyNjUGj0WBiYsJsvZX273LuBUe6xj09PQEAY2NjJtsMZYY6C0ml0kXPH/s3cGLE1pWGhgYAQGRkJGQyGaampjA8PAy9Xg9BEEwWvmtrawMAdHZ2mhxLEASjv52dnQHMTQU2KCoqwv3796HVaqFWq+Hh4YGEhATxAwjAX8Wwmgxxurq6mp0OvXXrVgBAX1+fTeNY7APL29sbAPDr1y+btm9vrq6uAGA0Rm45cnJykJ6ejk+fPpmd4v83/bvUveBo1/iuXbsAwGwi1t3dDQAICgoyu+/MzIxFA73Z+sOJEVs39Ho9ioqKAABnz54FMPefsKenJ6RSKf78+QOae3xs8oqJiVlRmxKJBMePH8fr16+h0+lQU1MDIkJKSgpu3bq1KjFYi4uLCwRBwOTkJEZHR022GxbV8/HxEcucnJwwPT1tUlen05ltQyKRLBnH0NCQ2XWoDAmRIUGyVfv25uvrCwAYHh62eN+7d+8iODgY9+7dQ1lZmdG2lfTvcjnaNW5ox9xq+IYytVptsm1kZAREJPYB+zdxYsTWjfz8fLx58wbJycnQaDRieUpKCmZmZsz+FEBhYSG2bdu24nVLPD09xRkwMpkMcXFx4oye/53ya8sYrCk5ORkATKYrT01Noa6uDnK5HPHx8WK5r6+v+B+4QV9fH7q6uswe383NzSiRCQ4ORklJiVGdyclJcXVng48fP6KnpwcqlcroQ8sW7dvb3r17AZj/tmMp7u7uePr0KRQKhdklKyztX0s40jUeHR2NPXv2oKqqymgZg9nZWTx69AhKpdLkcSLw32+TDH3A/lGrOqKJ/RNWa/D17Ows9ff3U01NDcXGxhIAOnXqFI2Pjxvt19/fTzt27KDAwEB6/vw56XQ6GhoaouLiYnJzczMZnGwYcDoxMWFUnpeXZzIwWBAEio6Opvb2dpqcnKT+/n66cuUKAaBr166tOAZrwV/OShsZGTGatVRSUmJU/9y5cwSAbt++TaOjo/T9+3dKS0sjf39/s4OfExISSBAE6urqosbGRpJKpdTR0SFuV6lUJAgCqdXqZc1Ks3b7jjArTa/Xk7e396KDxM0Nvl6ovLycACw5K22p/rXkXrD0Gs/MzCQApNVqlzwnCy01+JpobvC5q6srZWRkUG9vLw0ODlJWVhZJpVJ6+fKl2X0qKioIAFVXV1sc02J48PXaw4kRszpbvBEoFApxtpnhJZFISBAECg0NpezsbGptbV10/6GhIbpw4QIFBgaSTCajLVu20NGjR+nVq1dinaamJpM2Ll26RERkUp6YmEhERO/fv6esrCzavXs3ubm5kZeXF0VERFBpaSnp9XqLY7A2SxMjIqLBwUE6f/48BQQEkEwmI0EQKD4+nurq6kzq6nQ6On36NPn6+pJcLqfDhw9TS0sLhYeHi+cqLy9PrP/lyxeKiooihUJBSqXSZOaVSqUif39/6ujooPj4eNq4cSPJ5XKKjo6mhoYGm7cfFRVl91lpREQXL14kqVRK3d3dYtnAwIDJdfj/ZnplZ2ebTQ6X078ruReILLvGY2Njyd3dnWZmZpZ1Tmpra03aNrwWLjNg0NbWRseOHSMPDw9yd3en2NhYs9eRgUajIX9/f5qenl5WTMvBidHaIyHiH5Vi1mV4jPXkyRM7R8IkEgkqKyuRlpZm71CWZf/+/RgcHHSIGXqWePz4MdLT0632G33Dw8MICQlBUlISiouLrXJMR6LT6eDn54fMzEyUlpbaOxwAcwtrhoWFoaKiAhkZGVY7Lr8frj08xogxxhyMIAiora1FVVWVOKFgvSAi5OTkwMPDA1evXrV3OAAArVaLlJQU5OfnWzUpYmsTJ0aMMeaAwsLC8PbtW7x48QIjIyP2Dsdq+vv7odVqUVdXt6IZcLZw584dFBQUoKCgwN6hMAfAiRFjzO4Mv2XW3t6O7u5uSCQSXL582d5h2d327dvx7NkzeHh42DsUq/Hx8UFDQwNCQkLsHYqosLCQvyliIsf7BUXG2D8nNzcXubm59g6DMcb4GyPGGGOMMQNOjBhjjDHG5nFixBhjjDE2jxMjxhhjjLF5nBgxxhhjjM3jla+Z1Wk0GlRVVdk7DMYYcwipqam88vUawokRs7qmpib8+PHD3mEwxphDUCqViIyMtHcYbJlqWaseAAAAM0lEQVQ4MWKMMcYYm8djjBhjjDHG5nFixBhjjDE2jxMjxhhjjLF5UgA8VJ4xxhhjDMB/AFR1fqYZU1qKAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "keras.utils.plot_model(model, \"mini_resnet.png\", show_shapes=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "4f0883eae520" }, "source": [ "现在训练模型:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:22:50.688539Z", "iopub.status.busy": "2022-12-14T21:22:50.687895Z", "iopub.status.idle": "2022-12-14T21:23:00.813859Z", "shell.execute_reply": "2022-12-14T21:23:00.813125Z" }, "id": "4e1c7b530071" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 8192/170498071 [..............................] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 204800/170498071 [..............................] - ETA: 56s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 1064960/170498071 [..............................] - ETA: 18s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 4464640/170498071 [..............................] - ETA: 6s " ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 9093120/170498071 [>.............................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 12345344/170498071 [=>............................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 17170432/170498071 [==>...........................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 19980288/170498071 [==>...........................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 25001984/170498071 [===>..........................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 27574272/170498071 [===>..........................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 31883264/170498071 [====>.........................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 34922496/170498071 [=====>........................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 39436288/170498071 [=====>........................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 43843584/170498071 [======>.......................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 48111616/170498071 [=======>......................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 52445184/170498071 [========>.....................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 56418304/170498071 [========>.....................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 61153280/170498071 [=========>....................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 64839680/170498071 [==========>...................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 70189056/170498071 [===========>..................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 73383936/170498071 [===========>..................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 78856192/170498071 [============>.................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 82214912/170498071 [=============>................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 87375872/170498071 [==============>...............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 91176960/170498071 [===============>..............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 95707136/170498071 [===============>..............] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 99819520/170498071 [================>.............] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "104103936/170498071 [=================>............] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "108503040/170498071 [==================>...........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "112558080/170498071 [==================>...........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "117284864/170498071 [===================>..........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "120954880/170498071 [====================>.........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "126205952/170498071 [=====================>........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "129556480/170498071 [=====================>........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "135045120/170498071 [======================>.......] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "138330112/170498071 [=======================>......] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "143548416/170498071 [========================>.....] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "147316736/170498071 [========================>.....] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "151945216/170498071 [=========================>....] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "156033024/170498071 [==========================>...] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "160276480/170498071 [===========================>..] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "164569088/170498071 [===========================>..] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "168796160/170498071 [============================>.] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "170498071/170498071 [==============================] - 2s 0us/step\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/13 [=>............................] - ETA: 35s - loss: 2.3094 - acc: 0.1094" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 9/13 [===================>..........] - ETA: 0s - loss: 2.3044 - acc: 0.1042 " ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "13/13 [==============================] - ETA: 0s - loss: 2.2958 - acc: 0.1013" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "13/13 [==============================] - 3s 30ms/step - loss: 2.2958 - acc: 0.1013 - val_loss: 2.2806 - val_acc: 0.1900\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()\n", "\n", "x_train = x_train.astype(\"float32\") / 255.0\n", "x_test = x_test.astype(\"float32\") / 255.0\n", "y_train = keras.utils.to_categorical(y_train, 10)\n", "y_test = keras.utils.to_categorical(y_test, 10)\n", "\n", "model.compile(\n", " optimizer=keras.optimizers.RMSprop(1e-3),\n", " loss=keras.losses.CategoricalCrossentropy(from_logits=True),\n", " metrics=[\"acc\"],\n", ")\n", "# We restrict the data to the first 1000 samples so as to limit execution time\n", "# on Colab. Try to train on the entire dataset until convergence!\n", "model.fit(x_train[:1000], y_train[:1000], batch_size=64, epochs=1, validation_split=0.2)" ] }, { "cell_type": "markdown", "metadata": { "id": "e7f35a9a1061" }, "source": [ "## 共享层\n", "\n", "函数式 API 的另一个很好的用途是使用*shared layers*的模型。共享层是在同一个模型中多次重用的层实例,它们会学习与层计算图中的多个路径相对应的特征。\n", "\n", "共享层通常用于对来自相似空间(例如,两个具有相似词汇的不同文本)的输入进行编码。它们可以实现在这些不同的输入之间共享信息,以及在更少的数据上训练这种模型。如果在其中的一个输入中看到了一个给定单词,那么将有利于处理通过共享层的所有输入。\n", "\n", "要在函数式 API 中共享层,请多次调用同一个层实例。例如,下面是一个在两个不同文本输入之间共享的 `Embedding` 层:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:00.817513Z", "iopub.status.busy": "2022-12-14T21:23:00.817024Z", "iopub.status.idle": "2022-12-14T21:23:00.834636Z", "shell.execute_reply": "2022-12-14T21:23:00.834027Z" }, "id": "4b8e6a4f3e88" }, "outputs": [], "source": [ "# Embedding for 1000 unique words mapped to 128-dimensional vectors\n", "shared_embedding = layers.Embedding(1000, 128)\n", "\n", "# Variable-length sequence of integers\n", "text_input_a = keras.Input(shape=(None,), dtype=\"int32\")\n", "\n", "# Variable-length sequence of integers\n", "text_input_b = keras.Input(shape=(None,), dtype=\"int32\")\n", "\n", "# Reuse the same layer to encode both inputs\n", "encoded_input_a = shared_embedding(text_input_a)\n", "encoded_input_b = shared_embedding(text_input_b)" ] }, { "cell_type": "markdown", "metadata": { "id": "b4f193a74581" }, "source": [ "## 提取和重用层计算图中的节点\n", "\n", "由于要处理的层计算图是静态数据结构,可以对其进行访问和检查。而这就是将函数式模型绘制为图像的方式。\n", "\n", "这也意味着您可以访问中间层的激活函数(计算图中的“节点”)并在其他地方重用它们,这对于特征提取之类的操作十分有用。\n", "\n", "让我们来看一个例子。下面是一个 VGG19 模型,其权重已在 ImageNet 上进行了预训练:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:00.838606Z", "iopub.status.busy": "2022-12-14T21:23:00.837870Z", "iopub.status.idle": "2022-12-14T21:23:05.625518Z", "shell.execute_reply": "2022-12-14T21:23:05.624773Z" }, "id": "8bdaa209ccbe" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels.h5\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 8192/574710816 [..............................] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 5799936/574710816 [..............................] - ETA: 4s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 16785408/574710816 [..............................] - ETA: 4s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 28114944/574710816 [>.............................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 29999104/574710816 [>.............................] - ETA: 4s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 32063488/574710816 [>.............................] - ETA: 5s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 35987456/574710816 [>.............................] - ETA: 5s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 45228032/574710816 [=>............................] - ETA: 4s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 61489152/574710816 [==>...........................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 65921024/574710816 [==>...........................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 69402624/574710816 [==>...........................] - ETA: 4s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 71163904/574710816 [==>...........................] - ETA: 4s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 82771968/574710816 [===>..........................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", " 99508224/574710816 [====>.........................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "108756992/574710816 [====>.........................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "112377856/574710816 [====>.........................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "124493824/574710816 [=====>........................] - ETA: 3s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "135159808/574710816 [======>.......................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "147300352/574710816 [======>.......................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "156606464/574710816 [=======>......................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "168132608/574710816 [=======>......................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "183451648/574710816 [========>.....................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "199639040/574710816 [=========>....................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "215408640/574710816 [==========>...................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "220151808/574710816 [==========>...................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "222806016/574710816 [==========>...................] - ETA: 2s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "236429312/574710816 [===========>..................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "248578048/574710816 [===========>..................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "263823360/574710816 [============>.................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "276832256/574710816 [=============>................] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "291446784/574710816 [==============>...............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "304168960/574710816 [==============>...............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "318865408/574710816 [===============>..............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "333905920/574710816 [================>.............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "342966272/574710816 [================>.............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "356024320/574710816 [=================>............] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "371826688/574710816 [==================>...........] - ETA: 1s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "388898816/574710816 [===================>..........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "405487616/574710816 [====================>.........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "421986304/574710816 [=====================>........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "438411264/574710816 [=====================>........] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "454410240/574710816 [======================>.......] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "470245376/574710816 [=======================>......] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "480518144/574710816 [========================>.....] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "494444544/574710816 [========================>.....] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "509452288/574710816 [=========================>....] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "525434880/574710816 [==========================>...] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "539877376/574710816 [===========================>..] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "556146688/574710816 [============================>.] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "573169664/574710816 [============================>.] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "574710816/574710816 [==============================] - 3s 0us/step\n" ] } ], "source": [ "vgg19 = tf.keras.applications.VGG19()" ] }, { "cell_type": "markdown", "metadata": { "id": "874ef4b4de49" }, "source": [ "下面是通过查询计算图数据结构获得的模型的中间激活:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:05.629775Z", "iopub.status.busy": "2022-12-14T21:23:05.629272Z", "iopub.status.idle": "2022-12-14T21:23:05.632765Z", "shell.execute_reply": "2022-12-14T21:23:05.632228Z" }, "id": "391817839937" }, "outputs": [], "source": [ "features_list = [layer.output for layer in vgg19.layers]" ] }, { "cell_type": "markdown", "metadata": { "id": "e91a9dc2f5b0" }, "source": [ "使用以下特征来创建新的特征提取模型,该模型会返回中间层激活的值:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:05.636172Z", "iopub.status.busy": "2022-12-14T21:23:05.635707Z", "iopub.status.idle": "2022-12-14T21:23:05.836518Z", "shell.execute_reply": "2022-12-14T21:23:05.835882Z" }, "id": "36a450517b63" }, "outputs": [], "source": [ "feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)\n", "\n", "img = np.random.random((1, 224, 224, 3)).astype(\"float32\")\n", "extracted_features = feat_extraction_model(img)" ] }, { "cell_type": "markdown", "metadata": { "id": "f2ac248fe202" }, "source": [ "这尤其适用于诸如[神经样式转换](https://tensorflow.google.cn/tutorials/generative/style_transfer)之类的任务。" ] }, { "cell_type": "markdown", "metadata": { "id": "c894ba891064" }, "source": [ "## 使用自定义层扩展 API\n", "\n", "`tf.keras` 包含了各种内置层,例如:\n", "\n", "- 卷积层:`Conv1D`、`Conv2D`、`Conv3D`、`Conv2DTranspose`\n", "- 池化层:`MaxPooling1D`、`MaxPooling2D`、`MaxPooling3D`、`AveragePooling1D`\n", "- RNN 层:`GRU`、`LSTM`、`ConvLSTM2D`\n", "- `BatchNormalization`、`Dropout`、`Embedding` 等\n", "\n", "但是,如果找不到所需内容,可以通过创建您自己的层来方便地扩展 API。所有层都会子类化 `Layer` 类并实现下列方法:\n", "\n", "- `call` 方法,用于指定由层完成的计算。\n", "- `build` 方法,用于创建层的权重(这只是一种样式约定,因为您也可以在 `__init__` 中创建权重)。\n", "\n", "要详细了解从头开始创建层的详细信息,请阅读[自定义层和模型](https://tensorflow.google.cn/guide/keras/custom_layers_and_models)指南。\n", "\n", "以下是 `tf.keras.layers.Dense` 的基本实现:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:05.840498Z", "iopub.status.busy": "2022-12-14T21:23:05.839958Z", "iopub.status.idle": "2022-12-14T21:23:05.885319Z", "shell.execute_reply": "2022-12-14T21:23:05.884710Z" }, "id": "1d9faf1f622a" }, "outputs": [], "source": [ "class CustomDense(layers.Layer):\n", " def __init__(self, units=32):\n", " super(CustomDense, self).__init__()\n", " self.units = units\n", "\n", " def build(self, input_shape):\n", " self.w = self.add_weight(\n", " shape=(input_shape[-1], self.units),\n", " initializer=\"random_normal\",\n", " trainable=True,\n", " )\n", " self.b = self.add_weight(\n", " shape=(self.units,), initializer=\"random_normal\", trainable=True\n", " )\n", "\n", " def call(self, inputs):\n", " return tf.matmul(inputs, self.w) + self.b\n", "\n", "\n", "inputs = keras.Input((4,))\n", "outputs = CustomDense(10)(inputs)\n", "\n", "model = keras.Model(inputs, outputs)" ] }, { "cell_type": "markdown", "metadata": { "id": "b8933568358c" }, "source": [ "为了在您的自定义层中支持序列化,请定义一个`get_config`方法,该方法返回该层实例的构造函数参数:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:05.888754Z", "iopub.status.busy": "2022-12-14T21:23:05.888186Z", "iopub.status.idle": "2022-12-14T21:23:05.915702Z", "shell.execute_reply": "2022-12-14T21:23:05.915099Z" }, "id": "b22a134918a2" }, "outputs": [], "source": [ "class CustomDense(layers.Layer):\n", " def __init__(self, units=32):\n", " super(CustomDense, self).__init__()\n", " self.units = units\n", "\n", " def build(self, input_shape):\n", " self.w = self.add_weight(\n", " shape=(input_shape[-1], self.units),\n", " initializer=\"random_normal\",\n", " trainable=True,\n", " )\n", " self.b = self.add_weight(\n", " shape=(self.units,), initializer=\"random_normal\", trainable=True\n", " )\n", "\n", " def call(self, inputs):\n", " return tf.matmul(inputs, self.w) + self.b\n", "\n", " def get_config(self):\n", " return {\"units\": self.units}\n", "\n", "\n", "inputs = keras.Input((4,))\n", "outputs = CustomDense(10)(inputs)\n", "\n", "model = keras.Model(inputs, outputs)\n", "config = model.get_config()\n", "\n", "new_model = keras.Model.from_config(config, custom_objects={\"CustomDense\": CustomDense})" ] }, { "cell_type": "markdown", "metadata": { "id": "015abf7d0508" }, "source": [ "您也可以选择实现 `from_config(cls, config)` 类方法,该方法用于在给定其配置字典的情况下重新创建层实例。`from_config` 的默认实现如下:\n", "\n", "```python\n", "def from_config(cls, config): return cls(**config)\n", "```" ] }, { "cell_type": "markdown", "metadata": { "id": "b4ead34e01dd" }, "source": [ "## 何时使用函数式 API\n", "\n", "什么时候应该使用 Keras 函数式 API 来创建新的模型,或者什么时候应该直接对 `Model` 类进行子类化呢?通常来说,函数式 API 更高级、更易用且更安全,并且具有许多子类化模型所不支持的功能。\n", "\n", "但是,当构建不容易表示为有向无环的层计算图的模型时,模型子类化会提供更大的灵活性。例如,您无法使用函数式 API 来实现 Tree-RNN,而必须直接子类化 `Model` 类。\n", "\n", "要深入了解函数式 API 和模型子类化之间的区别,请阅读 [TensorFlow 2.0 符号式 API 和命令式 API 介绍](https://blog.tensorflow.org/2019/01/what-are-symbolic-and-imperative-apis.html)。\n", "\n", "### 函数式 API 的优势:\n", "\n", "下列属性对于序贯模型(也是数据结构)同样适用,但对于子类化模型(是 Python 字节码而非数据结构)则不适用。\n", "\n", "#### 更加简洁\n", "\n", "没有 `super(MyClass, self).__init__(...)`,没有 `def call(self, ...):` 等内容。\n", "\n", "对比:\n", "\n", "```python\n", "inputs = keras.Input(shape=(32,)) x = layers.Dense(64, activation='relu')(inputs) outputs = layers.Dense(10)(x) mlp = keras.Model(inputs, outputs)\n", "```\n", "\n", "下面是子类化版本:\n", "\n", "```python\n", "class MLP(keras.Model): def __init__(self, **kwargs): super(MLP, self).__init__(**kwargs) self.dense_1 = layers.Dense(64, activation='relu') self.dense_2 = layers.Dense(10) def call(self, inputs): x = self.dense_1(inputs) return self.dense_2(x) # Instantiate the model. mlp = MLP() # Necessary to create the model's state. # The model doesn't have a state until it's called at least once. _ = mlp(tf.zeros((1, 32)))\n", "```\n", "\n", "#### 定义连接计算图时进行模型验证\n", "\n", "在函数式 API 中,输入规范(形状和 dtype)是预先创建的(使用 `Input`)。每次调用层时,该层都会检查传递给它的规范是否符合其假设,如不符合,它将引发有用的错误消息。\n", "\n", "这样可以保证能够使用函数式 API 构建的任何模型都可以运行。所有调试(除与收敛有关的调试外)均在模型构造的过程中静态发生,而不是在执行时发生。这类似于编译器中的类型检查。\n", "\n", "#### 函数式模型可绘制且可检查\n", "\n", "您可以将模型绘制为计算图,并且可以轻松访问该计算图中的中间节点。例如,要提取和重用中间层的激活(如前面的示例所示),请运行以下代码:\n", "\n", "```python\n", "features_list = [layer.output for layer in vgg19.layers] feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)\n", "```\n", "\n", "#### 函数式模型可以序列化或克隆\n", "\n", "因为函数式模型是数据结构而非一段代码,所以它可以安全地序列化,并且可以保存为单个文件,从而使您可以重新创建完全相同的模型,而无需访问任何原始代码。请参阅[序列化和保存](https://tensorflow.google.cn/guide/keras/save_and_serialize/)指南。\n", "\n", "要序列化子类化模型,实现器必须在模型级别指定 `get_config()` 和 `from_config()` 方法。\n", "\n", "### 函数式 API 的劣势:\n", "\n", "#### 不支持动态架构\n", "\n", "函数式 API 将模型视为层的 DAG。对于大多数深度学习架构来说确实如此,但并非所有(例如,递归网络或 Tree RNN 就不遵循此假设,无法在函数式 API 中实现)。" ] }, { "cell_type": "markdown", "metadata": { "id": "72992d4ed462" }, "source": [ "## 混搭 API 样式\n", "\n", "在函数式 API 或模型子类化之间进行选择并非是让您作出二选一的决定而将您限制在某一类模型中。`tf.keras` API 中的所有模型都可以彼此交互,无论它们是 `Sequential` 模型、函数式模型,还是从头开始编写的子类化模型。\n", "\n", "您始终可以将函数式模型或 `Sequential` 模型用作子类化模型或层的一部分:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:05.919621Z", "iopub.status.busy": "2022-12-14T21:23:05.918997Z", "iopub.status.idle": "2022-12-14T21:23:05.976125Z", "shell.execute_reply": "2022-12-14T21:23:05.975569Z" }, "id": "3c6221508766" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 10, 32)\n" ] } ], "source": [ "units = 32\n", "timesteps = 10\n", "input_dim = 5\n", "\n", "# Define a Functional model\n", "inputs = keras.Input((None, units))\n", "x = layers.GlobalAveragePooling1D()(inputs)\n", "outputs = layers.Dense(1)(x)\n", "model = keras.Model(inputs, outputs)\n", "\n", "\n", "class CustomRNN(layers.Layer):\n", " def __init__(self):\n", " super(CustomRNN, self).__init__()\n", " self.units = units\n", " self.projection_1 = layers.Dense(units=units, activation=\"tanh\")\n", " self.projection_2 = layers.Dense(units=units, activation=\"tanh\")\n", " # Our previously-defined Functional model\n", " self.classifier = model\n", "\n", " def call(self, inputs):\n", " outputs = []\n", " state = tf.zeros(shape=(inputs.shape[0], self.units))\n", " for t in range(inputs.shape[1]):\n", " x = inputs[:, t, :]\n", " h = self.projection_1(x)\n", " y = h + self.projection_2(state)\n", " state = y\n", " outputs.append(y)\n", " features = tf.stack(outputs, axis=1)\n", " print(features.shape)\n", " return self.classifier(features)\n", "\n", "\n", "rnn_model = CustomRNN()\n", "_ = rnn_model(tf.zeros((1, timesteps, input_dim)))" ] }, { "cell_type": "markdown", "metadata": { "id": "41f42eb2a9c0" }, "source": [ "您可以在函数式 API 中使用任何子类化层或模型,前提是它实现了遵循以下模式之一的 `call` 方法:\n", "\n", "- `call(self, inputs, **kwargs)` - 其中 `inputs` 是张量或张量的嵌套结构(例如张量列表),`**kwargs` 是非张量参数(非输入)。\n", "- `call(self, inputs, training=None, **kwargs)` - 其中 `training` 是指示该层是否应在训练模式和推断模式下运行的布尔值。\n", "- `call(self, inputs, mask=None, **kwargs)` - 其中 `mask` 是一个布尔掩码张量(对 RNN 等十分有用)。\n", "- `call(self, inputs, training=None, mask=None, **kwargs)` - 当然,您可以同时具有掩码和训练特有的行为。\n", "\n", "此外,如果您在自定义层或模型上实现了 `get_config` 方法,则您创建的函数式模型将仍可序列化和克隆。\n", "\n", "下面是一个从头开始编写、用于函数式模型的自定义 RNN 的简单示例:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "execution": { "iopub.execute_input": "2022-12-14T21:23:05.979347Z", "iopub.status.busy": "2022-12-14T21:23:05.978887Z", "iopub.status.idle": "2022-12-14T21:23:06.161023Z", "shell.execute_reply": "2022-12-14T21:23:06.160378Z" }, "id": "3deb90222d05" }, "outputs": [], "source": [ "units = 32\n", "timesteps = 10\n", "input_dim = 5\n", "batch_size = 16\n", "\n", "\n", "class CustomRNN(layers.Layer):\n", " def __init__(self):\n", " super(CustomRNN, self).__init__()\n", " self.units = units\n", " self.projection_1 = layers.Dense(units=units, activation=\"tanh\")\n", " self.projection_2 = layers.Dense(units=units, activation=\"tanh\")\n", " self.classifier = layers.Dense(1)\n", "\n", " def call(self, inputs):\n", " outputs = []\n", " state = tf.zeros(shape=(inputs.shape[0], self.units))\n", " for t in range(inputs.shape[1]):\n", " x = inputs[:, t, :]\n", " h = self.projection_1(x)\n", " y = h + self.projection_2(state)\n", " state = y\n", " outputs.append(y)\n", " features = tf.stack(outputs, axis=1)\n", " return self.classifier(features)\n", "\n", "\n", "# Note that you specify a static batch size for the inputs with the `batch_shape`\n", "# arg, because the inner computation of `CustomRNN` requires a static batch size\n", "# (when you create the `state` zeros tensor).\n", "inputs = keras.Input(batch_shape=(batch_size, timesteps, input_dim))\n", "x = layers.Conv1D(32, 3)(inputs)\n", "outputs = CustomRNN()(x)\n", "\n", "model = keras.Model(inputs, outputs)\n", "\n", "rnn_model = CustomRNN()\n", "_ = rnn_model(tf.zeros((1, 10, 5)))" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "functional.ipynb", "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.16" } }, "nbformat": 4, "nbformat_minor": 0 }