{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "-zMKQx6DkKwt" }, "source": [ "##### Copyright 2019 The TensorFlow Authors." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2020-09-23T00:09:44.879455Z", "iopub.status.busy": "2020-09-23T00:09:44.878773Z", "iopub.status.idle": "2020-09-23T00:09:44.881398Z", "shell.execute_reply": "2020-09-23T00:09:44.880880Z" }, "id": "J307vsiDkMMW" }, "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": "vCMYwDIE9dTT" }, "source": [ "# La API funcional \"Keras\" en TensorFlow" ] }, { "cell_type": "markdown", "metadata": { "id": "lAJfkZ-K9flj" }, "source": [ "\n", " \n", " \n", " \n", " \n", "
\n", " Ver en TensorFlow.org\n", " \n", " Correr en Google Colab\n", " \n", " Ver código fuente en GitHub\n", " \n", " Descargar notebook\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "dt4DDXp2Vca-" }, "source": [ "Note: Nuestra comunidad de Tensorflow ha traducido estos documentos. Como las traducciones de la comunidad\n", "son basados en el \"mejor esfuerzo\", no hay ninguna garantia que esta sea un reflejo preciso y actual \n", "de la [Documentacion Oficial en Ingles](https://www.tensorflow.org/?hl=en).\n", "Si tienen sugerencias sobre como mejorar esta traduccion, por favor envian un \"Pull request\"\n", "al siguiente repositorio [tensorflow/docs](https://github.com/tensorflow/docs).\n", "Para ofrecerse como voluntario o hacer revision de las traducciones de la Comunidad\n", "por favor contacten al siguiente grupo [docs@tensorflow.org list](https://groups.google.com/a/tensorflow.org/forum/#!forum/docs)." ] }, { "cell_type": "markdown", "metadata": { "id": "ITh3wzORxgpw" }, "source": [ "## Setup" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:44.886525Z", "iopub.status.busy": "2020-09-23T00:09:44.885705Z", "iopub.status.idle": "2020-09-23T00:09:51.177551Z", "shell.execute_reply": "2020-09-23T00:09:51.178028Z" }, "id": "HFbM9dcfxh4l" }, "outputs": [], "source": [ "import tensorflow as tf\n", "\n", "tf.keras.backend.clear_session() # Reseteo sencillo" ] }, { "cell_type": "markdown", "metadata": { "id": "ZI47-lpfkZ5c" }, "source": [ "## Introduccion\n", "\n", "Ya estás familiarizado con el uso del metodo `keras.Sequential()` para crear modelos.\n", "La API funcional es una forma de crear modelos mas dinamicos que con ` Sequential `: La API funcional puede manejar modelos con topología no lineal, modelos con capas compartidas y modelos con múltiples entradas o salidas.\n", "\n", "Se basa en la idea de que un modelo de aprendizaje profundo\n", "suele ser un gráfico acíclico dirigido (DAG) de capas.\n", "La API funcional es un conjunto de herramientas para **construir gráficos de capas**.\n", "\n", "Considera el siguiente modelo:\n", "\n", "```\n", "(input: 784-vectores dimensionales)\n", " ↧\n", "[Dense (64 units, activacion relu)]\n", " ↧\n", "[Dense (64 units, activacion relu)]\n", " ↧\n", "[Dense (10 units, activacion softmax)]\n", " ↧\n", "(output: distribución de probabilidad en 10 clases)\n", "```\n", "\n", "Es una simple grafica de tres capas.\n", "\n", "Para construir este modelo con la API funcional,\n", "comenzarías creando un nodo de entrada:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:51.191552Z", "iopub.status.busy": "2020-09-23T00:09:51.182249Z", "iopub.status.idle": "2020-09-23T00:09:51.193862Z", "shell.execute_reply": "2020-09-23T00:09:51.193288Z" }, "id": "Yxi0LaSHkDT-" }, "outputs": [], "source": [ "from tensorflow import keras\n", "\n", "inputs = keras.Input(shape=(784,))" ] }, { "cell_type": "markdown", "metadata": { "id": "Mr3Z_Pxcnf-H" }, "source": [ "Aqui solo especificamos el tipo de nuestra data set: 784-vectores dimensionales.\n", "Nota que el tamaño del batch siempre debe ser omitido, solo se incluye el tipo de la data set.\n", "Para una input de tipo imágen ` (31,32,3) ` hubiese sido:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:51.199459Z", "iopub.status.busy": "2020-09-23T00:09:51.198790Z", "iopub.status.idle": "2020-09-23T00:09:51.201073Z", "shell.execute_reply": "2020-09-23T00:09:51.200594Z" }, "id": "0-2Q2nJNneIO" }, "outputs": [], "source": [ "img_inputs = keras.Input(shape=(32, 32, 3))" ] }, { "cell_type": "markdown", "metadata": { "id": "HoMFNu-pnkgF" }, "source": [ "Lo que se devuelve, ` input `, contiene información sobre la forma y el tipo de dato que se espera ingresa en tu modelo:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:51.210196Z", "iopub.status.busy": "2020-09-23T00:09:51.209492Z", "iopub.status.idle": "2020-09-23T00:09:51.214386Z", "shell.execute_reply": "2020-09-23T00:09:51.214891Z" }, "id": "ddIr9LPJnibj" }, "outputs": [ { "data": { "text/plain": [ "TensorShape([None, 784])" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inputs.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:51.219187Z", "iopub.status.busy": "2020-09-23T00:09:51.218464Z", "iopub.status.idle": "2020-09-23T00:09:51.221174Z", "shell.execute_reply": "2020-09-23T00:09:51.221600Z" }, "id": "lZkLJeQonmTe" }, "outputs": [ { "data": { "text/plain": [ "tf.float32" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "inputs.dtype" ] }, { "cell_type": "markdown", "metadata": { "id": "kZnhhndTnrzC" }, "source": [ "Puedes crear un nuevo nodo en el grafico de capas mandando a llamar al objeto ` input `." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:52.630411Z", "iopub.status.busy": "2020-09-23T00:09:52.629623Z", "iopub.status.idle": "2020-09-23T00:09:52.939399Z", "shell.execute_reply": "2020-09-23T00:09:52.938783Z" }, "id": "sMyyMTqDnpYV" }, "outputs": [], "source": [ "from tensorflow.keras import layers\n", "\n", "dense = layers.Dense(64, activation='relu')\n", "x = dense(inputs)" ] }, { "cell_type": "markdown", "metadata": { "id": "besm-lgFnveV" }, "source": [ "La acción \"layer call\" es como dibujar una flecha desde \"entradas\" a la capa que creamos.\n", "Estamos \"pasando\" las entradas a la capa `dense`, y afuera obtenemos` x`.\n", "\n", "Agreguemos algunas capas más a nuestro gráfico de capas:\n", "\n", "La acción \"llamada a la capa\" es como dibujar una flecha de \"entradas\" a la capa que creamos.\n", "\n", "Estamos pasando las entradas a una capa mas densa, y respecto a la salida obtenemos una ` x `." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:52.945605Z", "iopub.status.busy": "2020-09-23T00:09:52.944839Z", "iopub.status.idle": "2020-09-23T00:09:52.959022Z", "shell.execute_reply": "2020-09-23T00:09:52.959487Z" }, "id": "DbF-MIO2ntf7" }, "outputs": [], "source": [ "x = layers.Dense(64, activation='relu')(x)\n", "outputs = layers.Dense(10, activation='softmax')(x)" ] }, { "cell_type": "markdown", "metadata": { "id": "B38UlEIlnz_8" }, "source": [ "LLegados a este punto, podemos crear un ` Modelo ` especificando sus entradas y salidas en las capas de graficas." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:52.966002Z", "iopub.status.busy": "2020-09-23T00:09:52.964974Z", "iopub.status.idle": "2020-09-23T00:09:52.973269Z", "shell.execute_reply": "2020-09-23T00:09:52.972742Z" }, "id": "MrSfwvl-nx9s" }, "outputs": [], "source": [ "model = keras.Model(inputs=inputs, outputs=outputs)" ] }, { "cell_type": "markdown", "metadata": { "id": "5EeeV1xJn3jW" }, "source": [ "Recapitulando, esta es nuestra definción completa del proceso:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:52.981007Z", "iopub.status.busy": "2020-09-23T00:09:52.978876Z", "iopub.status.idle": "2020-09-23T00:09:53.006888Z", "shell.execute_reply": "2020-09-23T00:09:53.007370Z" }, "id": "xkz7oqj2n1-q" }, "outputs": [], "source": [ "inputs = keras.Input(shape=(784,), name='img')\n", "x = layers.Dense(64, activation='relu')(inputs)\n", "x = layers.Dense(64, activation='relu')(x)\n", "outputs = layers.Dense(10, activation='softmax')(x)\n", "\n", "model = keras.Model(inputs=inputs, outputs=outputs, name='mnist_model')" ] }, { "cell_type": "markdown", "metadata": { "id": "jJzocCbdn6qj" }, "source": [ "Veamos como se muestra el model summary:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:53.012309Z", "iopub.status.busy": "2020-09-23T00:09:53.011675Z", "iopub.status.idle": "2020-09-23T00:09:53.016076Z", "shell.execute_reply": "2020-09-23T00:09:53.015583Z" }, "id": "GirC9odQn5Ep" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"mnist_model\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "img (InputLayer) [(None, 784)] 0 \n", "_________________________________________________________________\n", "dense_3 (Dense) (None, 64) 50240 \n", "_________________________________________________________________\n", "dense_4 (Dense) (None, 64) 4160 \n", "_________________________________________________________________\n", "dense_5 (Dense) (None, 10) 650 \n", "=================================================================\n", "Total params: 55,050\n", "Trainable params: 55,050\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "markdown", "metadata": { "id": "mbNqYAlOn-vA" }, "source": [ "También podemos trazar el modelo como un gráfico:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:53.020409Z", "iopub.status.busy": "2020-09-23T00:09:53.019714Z", "iopub.status.idle": "2020-09-23T00:09:53.112862Z", "shell.execute_reply": "2020-09-23T00:09:53.112252Z" }, "id": "JYh2wLain8Oi" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "keras.utils.plot_model(model, 'my_first_model.png')" ] }, { "cell_type": "markdown", "metadata": { "id": "QtgX2RoGoDZo" }, "source": [ "Y opcionalmente mostrar la entrada y la salida de la forma de cada capa en la gráfica ploteada:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:53.118109Z", "iopub.status.busy": "2020-09-23T00:09:53.117469Z", "iopub.status.idle": "2020-09-23T00:09:53.202570Z", "shell.execute_reply": "2020-09-23T00:09:53.203108Z" }, "id": "7FGesSSuoAG5" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 1, "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": "PBZ9XE6LoWvi" }, "source": [ "Esta figura y el código que escribimos son prácticamente idénticos. En la versión de código, las flechas de conexión simplemente se reemplazan por la operación de llamada.\n", "\n", "Un \"gráfico de capas\" es una imagen mental muy intuitiva para un modelo de aprendizaje profundo, y la API funcional es una forma de crear modelos que reflejan de cerca esta imagen mental.\n" ] }, { "cell_type": "markdown", "metadata": { "id": "WUUHMaKLoZDn" }, "source": [ "## Entrenamiento, evaluación e inferencia.\n", "\n", "El entrenamiento, la evaluación y la inferencia funcionan exactamente de la misma manera para los modelos construidos\n", "utilizando la API funcional como para los modelos secuenciales.\n", "\n", "Aquí hay una demostración rápida.\n", "\n", "Aquí cargamos datos de imagen MNIST, los rediseñamos en vectores,\n", "ajustar el modelo en los datos (mientras se monitorea el rendimiento en una división de validación),\n", "y finalmente evaluamos nuestro modelo en los datos de prueba:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:09:53.210482Z", "iopub.status.busy": "2020-09-23T00:09:53.209849Z", "iopub.status.idle": "2020-09-23T00:10:03.405951Z", "shell.execute_reply": "2020-09-23T00:10:03.406378Z" }, "id": "DnHvkD22oFEY" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/5\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/750 [..............................] - ETA: 0s - loss: 2.3577 - accuracy: 0.1875" ] }, { "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", " 28/750 [>.............................] - ETA: 1s - loss: 1.5552 - accuracy: 0.5943" ] }, { "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", " 56/750 [=>............................] - ETA: 1s - loss: 1.1328 - accuracy: 0.7157" ] }, { "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", " 84/750 [==>...........................] - ETA: 1s - loss: 0.9197 - accuracy: 0.7666" ] }, { "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", "112/750 [===>..........................] - ETA: 1s - loss: 0.8057 - accuracy: 0.7923" ] }, { "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", "139/750 [====>.........................] - ETA: 1s - loss: 0.7261 - accuracy: 0.8091" ] }, { "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", "167/750 [=====>........................] - ETA: 1s - loss: 0.6739 - accuracy: 0.8219" ] }, { "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", "195/750 [======>.......................] - ETA: 1s - loss: 0.6276 - accuracy: 0.8331" ] }, { "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: 0s - loss: 0.5932 - accuracy: 0.8417" ] }, { "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: 0s - loss: 0.5624 - accuracy: 0.8480" ] }, { "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", "279/750 [==========>...................] - ETA: 0s - loss: 0.5347 - accuracy: 0.8544" ] }, { "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", "307/750 [===========>..................] - ETA: 0s - loss: 0.5122 - accuracy: 0.8605" ] }, { "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", "335/750 [============>.................] - ETA: 0s - loss: 0.4935 - accuracy: 0.8653" ] }, { "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", "363/750 [=============>................] - ETA: 0s - loss: 0.4770 - accuracy: 0.8696" ] }, { "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", "391/750 [==============>...............] - ETA: 0s - loss: 0.4627 - accuracy: 0.8730" ] }, { "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", "419/750 [===============>..............] - ETA: 0s - loss: 0.4504 - accuracy: 0.8760" ] }, { "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", "447/750 [================>.............] - ETA: 0s - loss: 0.4380 - accuracy: 0.8791" ] }, { "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", "475/750 [==================>...........] - ETA: 0s - loss: 0.4281 - accuracy: 0.8815" ] }, { "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", "502/750 [===================>..........] - ETA: 0s - loss: 0.4182 - accuracy: 0.8839" ] }, { "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", "529/750 [====================>.........] - ETA: 0s - loss: 0.4107 - accuracy: 0.8859" ] }, { "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", "556/750 [=====================>........] - ETA: 0s - loss: 0.4020 - accuracy: 0.8878" ] }, { "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", "584/750 [======================>.......] - ETA: 0s - loss: 0.3941 - accuracy: 0.8898" ] }, { "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", "613/750 [=======================>......] - ETA: 0s - loss: 0.3875 - accuracy: 0.8915" ] }, { "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", "641/750 [========================>.....] - ETA: 0s - loss: 0.3805 - accuracy: 0.8935" ] }, { "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", "668/750 [=========================>....] - ETA: 0s - loss: 0.3741 - accuracy: 0.8952" ] }, { "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", "696/750 [==========================>...] - ETA: 0s - loss: 0.3670 - accuracy: 0.8971" ] }, { "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", "724/750 [===========================>..] - ETA: 0s - loss: 0.3615 - accuracy: 0.8984" ] }, { "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.3558 - accuracy: 0.8995 - val_loss: 0.1930 - val_accuracy: 0.9440\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2/5\n", "\r", " 1/750 [..............................] - ETA: 0s - loss: 0.2309 - accuracy: 0.9375" ] }, { "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", " 29/750 [>.............................] - ETA: 1s - loss: 0.1921 - accuracy: 0.9445" ] }, { "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", " 58/750 [=>............................] - ETA: 1s - loss: 0.2009 - accuracy: 0.9399" ] }, { "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", " 87/750 [==>...........................] - ETA: 1s - loss: 0.1954 - accuracy: 0.9415" ] }, { "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", "116/750 [===>..........................] - ETA: 1s - loss: 0.1897 - accuracy: 0.9432" ] }, { "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", "144/750 [====>.........................] - ETA: 1s - loss: 0.1933 - accuracy: 0.9421" ] }, { "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.1910 - accuracy: 0.9435" ] }, { "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: 0s - loss: 0.1873 - accuracy: 0.9432" ] }, { "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", "229/750 [========>.....................] - ETA: 0s - loss: 0.1837 - accuracy: 0.9451" ] }, { "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", "257/750 [=========>....................] - ETA: 0s - loss: 0.1824 - accuracy: 0.9453" ] }, { "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", "286/750 [==========>...................] - ETA: 0s - loss: 0.1791 - accuracy: 0.9466" ] }, { "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", "315/750 [===========>..................] - ETA: 0s - loss: 0.1770 - 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", "343/750 [============>.................] - ETA: 0s - loss: 0.1801 - accuracy: 0.9459" ] }, { "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", "371/750 [=============>................] - ETA: 0s - loss: 0.1802 - accuracy: 0.9460" ] }, { "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", "399/750 [==============>...............] - ETA: 0s - loss: 0.1792 - 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", "427/750 [================>.............] - ETA: 0s - loss: 0.1796 - accuracy: 0.9465" ] }, { "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", "455/750 [=================>............] - ETA: 0s - loss: 0.1782 - accuracy: 0.9468" ] }, { "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", "483/750 [==================>...........] - ETA: 0s - loss: 0.1786 - accuracy: 0.9463" ] }, { "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", "511/750 [===================>..........] - ETA: 0s - loss: 0.1778 - accuracy: 0.9464" ] }, { "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", "539/750 [====================>.........] - ETA: 0s - loss: 0.1771 - accuracy: 0.9467" ] }, { "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.1764 - accuracy: 0.9468" ] }, { "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", "595/750 [======================>.......] - ETA: 0s - loss: 0.1757 - accuracy: 0.9470" ] }, { "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", "623/750 [=======================>......] - ETA: 0s - loss: 0.1754 - accuracy: 0.9471" ] }, { "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", "651/750 [=========================>....] - ETA: 0s - loss: 0.1746 - accuracy: 0.9473" ] }, { "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", "679/750 [==========================>...] - ETA: 0s - loss: 0.1734 - 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", "707/750 [===========================>..] - ETA: 0s - loss: 0.1726 - accuracy: 0.9481" ] }, { "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", "735/750 [============================>.] - ETA: 0s - loss: 0.1720 - accuracy: 0.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\r", "750/750 [==============================] - 2s 2ms/step - loss: 0.1724 - accuracy: 0.9482 - val_loss: 0.1452 - val_accuracy: 0.9563\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3/5\n", "\r", " 1/750 [..............................] - ETA: 0s - loss: 0.0883 - accuracy: 0.9844" ] }, { "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", " 30/750 [>.............................] - ETA: 1s - loss: 0.1378 - accuracy: 0.9609" ] }, { "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", " 58/750 [=>............................] - ETA: 1s - loss: 0.1374 - accuracy: 0.9588" ] }, { "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", " 86/750 [==>...........................] - ETA: 1s - loss: 0.1311 - accuracy: 0.9602" ] }, { "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", "114/750 [===>..........................] - ETA: 1s - loss: 0.1339 - accuracy: 0.9592" ] }, { "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", "142/750 [====>.........................] - ETA: 1s - loss: 0.1332 - accuracy: 0.9583" ] }, { "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", "170/750 [=====>........................] - ETA: 1s - loss: 0.1336 - accuracy: 0.9576" ] }, { "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: 0s - loss: 0.1358 - accuracy: 0.9579" ] }, { "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", "227/750 [========>.....................] - ETA: 0s - loss: 0.1353 - accuracy: 0.9586" ] }, { "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", "255/750 [=========>....................] - ETA: 0s - loss: 0.1316 - accuracy: 0.9598" ] }, { "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", "283/750 [==========>...................] - ETA: 0s - loss: 0.1297 - accuracy: 0.9605" ] }, { "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", "311/750 [===========>..................] - ETA: 0s - loss: 0.1311 - accuracy: 0.9602" ] }, { "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", "339/750 [============>.................] - ETA: 0s - loss: 0.1301 - accuracy: 0.9604" ] }, { "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", "367/750 [=============>................] - ETA: 0s - loss: 0.1287 - accuracy: 0.9607" ] }, { "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.1282 - accuracy: 0.9612" ] }, { "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", "424/750 [===============>..............] - ETA: 0s - loss: 0.1268 - accuracy: 0.9618" ] }, { "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", "452/750 [=================>............] - ETA: 0s - loss: 0.1273 - accuracy: 0.9619" ] }, { "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", "481/750 [==================>...........] - ETA: 0s - loss: 0.1271 - accuracy: 0.9622" ] }, { "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", "509/750 [===================>..........] - ETA: 0s - loss: 0.1251 - accuracy: 0.9628" ] }, { "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", "538/750 [====================>.........] - ETA: 0s - loss: 0.1254 - accuracy: 0.9627" ] }, { "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", "566/750 [=====================>........] - ETA: 0s - loss: 0.1262 - accuracy: 0.9624" ] }, { "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.1261 - accuracy: 0.9623" ] }, { "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", "622/750 [=======================>......] - ETA: 0s - loss: 0.1256 - accuracy: 0.9623" ] }, { "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", "650/750 [=========================>....] - ETA: 0s - loss: 0.1256 - accuracy: 0.9623" ] }, { "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", "678/750 [==========================>...] - ETA: 0s - loss: 0.1248 - accuracy: 0.9624" ] }, { "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", "706/750 [===========================>..] - ETA: 0s - loss: 0.1250 - accuracy: 0.9622" ] }, { "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", "734/750 [============================>.] - ETA: 0s - loss: 0.1251 - accuracy: 0.9624" ] }, { "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.1251 - accuracy: 0.9624 - val_loss: 0.1184 - val_accuracy: 0.9656\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4/5\n", "\r", " 1/750 [..............................] - ETA: 0s - loss: 0.1090 - accuracy: 0.9688" ] }, { "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", " 29/750 [>.............................] - ETA: 1s - loss: 0.0995 - accuracy: 0.9682" ] }, { "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", " 57/750 [=>............................] - ETA: 1s - loss: 0.0941 - accuracy: 0.9709" ] }, { "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", " 85/750 [==>...........................] - ETA: 1s - loss: 0.1002 - accuracy: 0.9693" ] }, { "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", "113/750 [===>..........................] - ETA: 1s - loss: 0.0953 - accuracy: 0.9707" ] }, { "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", "141/750 [====>.........................] - ETA: 1s - loss: 0.0963 - accuracy: 0.9704" ] }, { "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", "170/750 [=====>........................] - ETA: 1s - loss: 0.0955 - accuracy: 0.9717" ] }, { "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: 0s - loss: 0.0970 - accuracy: 0.9714" ] }, { "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", "226/750 [========>.....................] - ETA: 0s - loss: 0.0998 - accuracy: 0.9705" ] }, { "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", "254/750 [=========>....................] - ETA: 0s - loss: 0.0997 - accuracy: 0.9705" ] }, { "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", "282/750 [==========>...................] - ETA: 0s - loss: 0.0998 - accuracy: 0.9708" ] }, { "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", "310/750 [===========>..................] - ETA: 0s - loss: 0.0995 - accuracy: 0.9706" ] }, { "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", "339/750 [============>.................] - ETA: 0s - loss: 0.1021 - accuracy: 0.9700" ] }, { "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", "367/750 [=============>................] - ETA: 0s - loss: 0.1033 - accuracy: 0.9696" ] }, { "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.1028 - accuracy: 0.9696" ] }, { "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", "423/750 [===============>..............] - ETA: 0s - loss: 0.1021 - accuracy: 0.9696" ] }, { "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", "452/750 [=================>............] - ETA: 0s - loss: 0.1028 - accuracy: 0.9695" ] }, { "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", "480/750 [==================>...........] - ETA: 0s - loss: 0.1034 - accuracy: 0.9695" ] }, { "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", "508/750 [===================>..........] - ETA: 0s - loss: 0.1027 - accuracy: 0.9699" ] }, { "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", "537/750 [====================>.........] - ETA: 0s - loss: 0.1025 - accuracy: 0.9699" ] }, { "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", "566/750 [=====================>........] - ETA: 0s - loss: 0.1015 - accuracy: 0.9702" ] }, { "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.1003 - accuracy: 0.9704" ] }, { "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", "622/750 [=======================>......] - ETA: 0s - loss: 0.1000 - accuracy: 0.9704" ] }, { "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", "650/750 [=========================>....] - ETA: 0s - loss: 0.1005 - accuracy: 0.9702" ] }, { "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", "678/750 [==========================>...] - ETA: 0s - loss: 0.1009 - accuracy: 0.9703" ] }, { "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", "706/750 [===========================>..] - ETA: 0s - loss: 0.1001 - accuracy: 0.9705" ] }, { "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", "734/750 [============================>.] - ETA: 0s - loss: 0.0998 - accuracy: 0.9705" ] }, { "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.0997 - accuracy: 0.9705 - val_loss: 0.1127 - val_accuracy: 0.9668\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5/5\n", "\r", " 1/750 [..............................] - ETA: 0s - loss: 0.0361 - accuracy: 0.9844" ] }, { "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", " 30/750 [>.............................] - ETA: 1s - loss: 0.0882 - accuracy: 0.9719" ] }, { "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", " 59/750 [=>............................] - ETA: 1s - loss: 0.0879 - accuracy: 0.9719" ] }, { "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", " 88/750 [==>...........................] - ETA: 1s - loss: 0.0834 - accuracy: 0.9735" ] }, { "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", "116/750 [===>..........................] - ETA: 1s - loss: 0.0832 - accuracy: 0.9745" ] }, { "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", "144/750 [====>.........................] - ETA: 1s - loss: 0.0829 - accuracy: 0.9748" ] }, { "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", "172/750 [=====>........................] - ETA: 1s - loss: 0.0829 - accuracy: 0.9747" ] }, { "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: 0s - loss: 0.0826 - accuracy: 0.9747" ] }, { "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", "229/750 [========>.....................] - ETA: 0s - loss: 0.0845 - accuracy: 0.9740" ] }, { "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", "256/750 [=========>....................] - ETA: 0s - loss: 0.0837 - accuracy: 0.9744" ] }, { "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", "285/750 [==========>...................] - ETA: 0s - loss: 0.0839 - accuracy: 0.9746" ] }, { "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", "313/750 [===========>..................] - ETA: 0s - loss: 0.0852 - accuracy: 0.9745" ] }, { "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", "341/750 [============>.................] - ETA: 0s - loss: 0.0837 - accuracy: 0.9751" ] }, { "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", "369/750 [=============>................] - ETA: 0s - loss: 0.0834 - accuracy: 0.9751" ] }, { "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", "398/750 [==============>...............] - ETA: 0s - loss: 0.0836 - accuracy: 0.9752" ] }, { "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", "426/750 [================>.............] - ETA: 0s - loss: 0.0828 - accuracy: 0.9755" ] }, { "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", "454/750 [=================>............] - ETA: 0s - loss: 0.0823 - accuracy: 0.9755" ] }, { "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", "482/750 [==================>...........] - ETA: 0s - loss: 0.0818 - accuracy: 0.9758" ] }, { "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", "510/750 [===================>..........] - ETA: 0s - loss: 0.0813 - accuracy: 0.9759" ] }, { "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", "538/750 [====================>.........] - ETA: 0s - loss: 0.0815 - accuracy: 0.9758" ] }, { "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.0810 - accuracy: 0.9760" ] }, { "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", "596/750 [======================>.......] - ETA: 0s - loss: 0.0811 - accuracy: 0.9760" ] }, { "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", "625/750 [========================>.....] - ETA: 0s - loss: 0.0817 - accuracy: 0.9758" ] }, { "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", "653/750 [=========================>....] - ETA: 0s - loss: 0.0815 - accuracy: 0.9758" ] }, { "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", "681/750 [==========================>...] - ETA: 0s - loss: 0.0816 - accuracy: 0.9759" ] }, { "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", "709/750 [===========================>..] - ETA: 0s - loss: 0.0822 - accuracy: 0.9758" ] }, { "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", "737/750 [============================>.] - ETA: 0s - loss: 0.0824 - accuracy: 0.9756" ] }, { "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.0824 - accuracy: 0.9756 - val_loss: 0.1073 - val_accuracy: 0.9698\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "313/313 - 0s - loss: 0.1017 - accuracy: 0.9701\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Test loss: 0.1017443984746933\n", "Test accuracy: 0.9700999855995178\n" ] } ], "source": [ "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()\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(loss='sparse_categorical_crossentropy',\n", " optimizer=keras.optimizers.RMSprop(),\n", " metrics=['accuracy'])\n", "history = model.fit(x_train, y_train,\n", " batch_size=64,\n", " epochs=5,\n", " validation_split=0.2)\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": "c3nq2fjiLCkE" }, "source": [ "Para obtener una guía completa sobre el entrenamiento y evaluación de modelos, consulta [Guía de entrenamiento y evaluación](./train_and_evaluate.ipynb)." ] }, { "cell_type": "markdown", "metadata": { "id": "XOsL56zDorLh" }, "source": [ "## Almacenado y serialización\n", "\n", "El almacenado y la serialización funcionan exactamente de la misma manera para los modelos construidos\n", "utilizando la API funcional como para los modelos secuenciales.\n", "\n", "Una forma estándar de guardar un modelo funcional es llamar a `model.save ()` para guardar todo el modelo en un solo archivo.\n", "Posteriormente, puede volver a crear el mismo modelo a partir de este archivo, incluso si ya no tiene acceso al código.\n", "eso creó el modelo.\n", "\n", "Este archivo incluye:\n", "- La arquitectura del modelo.\n", "- Los valores de peso del modelo (que se aprendieron durante el entrenamiento)\n", "- La configuración de entrenamiento del modelo (lo que pasó a `compilar`), si corresponde\n", "- El optimizador y su estado, si corresponde (esto le permite reiniciar el entrenamiento donde lo dejó)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:03.414602Z", "iopub.status.busy": "2020-09-23T00:10:03.413619Z", "iopub.status.idle": "2020-09-23T00:10:03.488605Z", "shell.execute_reply": "2020-09-23T00:10:03.487940Z" }, "id": "kN-AO7xvobtr" }, "outputs": [], "source": [ "model.save('path_to_my_model.h5')\n", "del model\n", "# Recrea el mismo modelo, desde el archivo:\n", "model = keras.models.load_model('path_to_my_model.h5')" ] }, { "cell_type": "markdown", "metadata": { "id": "u0J0tFPHK4pb" }, "source": [ "Para obtener una guía completa sobre el guardado de modelos, consulta [Guía para guardar y serializar modelos](./save_and_serialize.ipynb)." ] }, { "cell_type": "markdown", "metadata": { "id": "lKz1WWr2LUzF" }, "source": [ "## Usando el mismo gráfico de capas para definir múltiples modelos\n", "\n", "\n", "En la API funcional, los modelos se crean especificando sus entradas\n", "y salidas en un gráfico de capas. Eso significa que un solo gráfico de capas\n", "Se puede utilizar para generar múltiples modelos.\n", "\n", "En el siguiente ejemplo, usamos la misma arquitectura de capas para crear instancias de dos modelos:\n", "un modelo de \"codificador\" que convierte las entradas de imagen en vectores de 16 dimensiones,\n", "y un modelo completo de `autoencoder` para entrenamiento.\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:03.500244Z", "iopub.status.busy": "2020-09-23T00:10:03.497290Z", "iopub.status.idle": "2020-09-23T00:10:03.614239Z", "shell.execute_reply": "2020-09-23T00:10:03.614681Z" }, "id": "WItZQr6LuVbF" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"encoder\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "img (InputLayer) [(None, 28, 28, 1)] 0 \n", "_________________________________________________________________\n", "conv2d (Conv2D) (None, 26, 26, 16) 160 \n", "_________________________________________________________________\n", "conv2d_1 (Conv2D) (None, 24, 24, 32) 4640 \n", "_________________________________________________________________\n", "max_pooling2d (MaxPooling2D) (None, 8, 8, 32) 0 \n", "_________________________________________________________________\n", "conv2d_2 (Conv2D) (None, 6, 6, 32) 9248 \n", "_________________________________________________________________\n", "conv2d_3 (Conv2D) (None, 4, 4, 16) 4624 \n", "_________________________________________________________________\n", "global_max_pooling2d (Global (None, 16) 0 \n", "=================================================================\n", "Total params: 18,672\n", "Trainable params: 18,672\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Model: \"autoencoder\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "img (InputLayer) [(None, 28, 28, 1)] 0 \n", "_________________________________________________________________\n", "conv2d (Conv2D) (None, 26, 26, 16) 160 \n", "_________________________________________________________________\n", "conv2d_1 (Conv2D) (None, 24, 24, 32) 4640 \n", "_________________________________________________________________\n", "max_pooling2d (MaxPooling2D) (None, 8, 8, 32) 0 \n", "_________________________________________________________________\n", "conv2d_2 (Conv2D) (None, 6, 6, 32) 9248 \n", "_________________________________________________________________\n", "conv2d_3 (Conv2D) (None, 4, 4, 16) 4624 \n", "_________________________________________________________________\n", "global_max_pooling2d (Global (None, 16) 0 \n", "_________________________________________________________________\n", "reshape (Reshape) (None, 4, 4, 1) 0 \n", "_________________________________________________________________\n", "conv2d_transpose (Conv2DTran (None, 6, 6, 16) 160 \n", "_________________________________________________________________\n", "conv2d_transpose_1 (Conv2DTr (None, 8, 8, 32) 4640 \n", "_________________________________________________________________\n", "up_sampling2d (UpSampling2D) (None, 24, 24, 32) 0 \n", "_________________________________________________________________\n", "conv2d_transpose_2 (Conv2DTr (None, 26, 26, 16) 4624 \n", "_________________________________________________________________\n", "conv2d_transpose_3 (Conv2DTr (None, 28, 28, 1) 145 \n", "=================================================================\n", "Total params: 28,241\n", "Trainable params: 28,241\n", "Non-trainable params: 0\n", "_________________________________________________________________\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": "oNeg3WWFuYZK" }, "source": [ "Tenga en cuenta que hacemos que la arquitectura de decodificación sea estrictamente simétrica a la arquitectura de codificación,\n", "para que obtengamos una forma de salida que sea igual a la forma de entrada `(28, 28, 1)`.\n", "El reverso de una capa `Conv2D` es una capa` Conv2DTranspose`, y el reverso de una capa `MaxPooling2D`\n", "La capa es una capa `UpSampling2D`." ] }, { "cell_type": "markdown", "metadata": { "id": "h1FVW4j-uc6Y" }, "source": [ "## Todos los modelos son invocables, al igual que las capas.\n", "\n", "Puede tratar cualquier modelo como si fuera una capa, llamándolo en una `Entrada` o en la salida de otra capa.\n", "Tenga en cuenta que al llamar a un modelo no solo está reutilizando la arquitectura del modelo, también está reutilizando sus pesos.\n", "\n", "Veamos esto en acción. Aquí hay una versión diferente del ejemplo de autoencoder que crea un modelo de codificador, un modelo de decodificador,\n", "y encadenarlos en dos llamadas para obtener el modelo de autoencoder:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:03.627900Z", "iopub.status.busy": "2020-09-23T00:10:03.624622Z", "iopub.status.idle": "2020-09-23T00:10:03.808060Z", "shell.execute_reply": "2020-09-23T00:10:03.807376Z" }, "id": "Ld7KdsQ_uZbr" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"encoder\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "original_img (InputLayer) [(None, 28, 28, 1)] 0 \n", "_________________________________________________________________\n", "conv2d_4 (Conv2D) (None, 26, 26, 16) 160 \n", "_________________________________________________________________\n", "conv2d_5 (Conv2D) (None, 24, 24, 32) 4640 \n", "_________________________________________________________________\n", "max_pooling2d_1 (MaxPooling2 (None, 8, 8, 32) 0 \n", "_________________________________________________________________\n", "conv2d_6 (Conv2D) (None, 6, 6, 32) 9248 \n", "_________________________________________________________________\n", "conv2d_7 (Conv2D) (None, 4, 4, 16) 4624 \n", "_________________________________________________________________\n", "global_max_pooling2d_1 (Glob (None, 16) 0 \n", "=================================================================\n", "Total params: 18,672\n", "Trainable params: 18,672\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Model: \"decoder\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "encoded_img (InputLayer) [(None, 16)] 0 \n", "_________________________________________________________________\n", "reshape_1 (Reshape) (None, 4, 4, 1) 0 \n", "_________________________________________________________________\n", "conv2d_transpose_4 (Conv2DTr (None, 6, 6, 16) 160 \n", "_________________________________________________________________\n", "conv2d_transpose_5 (Conv2DTr (None, 8, 8, 32) 4640 \n", "_________________________________________________________________\n", "up_sampling2d_1 (UpSampling2 (None, 24, 24, 32) 0 \n", "_________________________________________________________________\n", "conv2d_transpose_6 (Conv2DTr (None, 26, 26, 16) 4624 \n", "_________________________________________________________________\n", "conv2d_transpose_7 (Conv2DTr (None, 28, 28, 1) 145 \n", "=================================================================\n", "Total params: 9,569\n", "Trainable params: 9,569\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Model: \"autoencoder\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "img (InputLayer) [(None, 28, 28, 1)] 0 \n", "_________________________________________________________________\n", "encoder (Functional) (None, 16) 18672 \n", "_________________________________________________________________\n", "decoder (Functional) (None, 28, 28, 1) 9569 \n", "=================================================================\n", "Total params: 28,241\n", "Trainable params: 28,241\n", "Non-trainable params: 0\n", "_________________________________________________________________\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": "icQFny_huiXC" }, "source": [ "Como puede ver, el modelo puede estar anidado: un modelo puede contener submodelos (ya que un modelo es como una capa).\n", "\n", "Un caso de uso común para la anidación de modelos es * ensamblaje *.\n", "Como ejemplo, a continuación se explica cómo agrupar un conjunto de modelos en un solo modelo que promedia sus predicciones:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:03.817177Z", "iopub.status.busy": "2020-09-23T00:10:03.816421Z", "iopub.status.idle": "2020-09-23T00:10:03.874458Z", "shell.execute_reply": "2020-09-23T00:10:03.874914Z" }, "id": "ZBlZbRn5uk-9" }, "outputs": [], "source": [ "def get_model():\n", " inputs = keras.Input(shape=(128,))\n", " outputs = layers.Dense(1, activation='sigmoid')(inputs)\n", " return keras.Model(inputs, outputs)\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": "e1za1TZxuoId" }, "source": [ "## Manipulación de topologías gráficas complejas\n", "\n", "\n", "### Modelos con múltiples entradas y salidas\n", "\n", "La API funcional facilita la manipulación de múltiples entradas y salidas.\n", "Esto no se puede manejar con la API secuencial.\n", "\n", "Aquí hay un ejemplo simple.\n", "\n", "Supongamos que está creando un sistema para clasificar los tickets de emisión personalizados por prioridad y enrutarlos al departamento correcto.\n", "\n", "Tu modelo tendrá 3 entradas:\n", "\n", "- Título del ticket (entrada de texto)\n", "- Cuerpo del texto del ticket (entrada de texto)\n", "- Cualquier etiqueta agregada por el usuario (entrada categórica)\n", "\n", "Tendrá dos salidas:\n", "\n", "- Puntuación de prioridad entre 0 y 1 (salida sigmoidea escalar)\n", "- El departamento que debe manejar el ticket (salida softmax sobre el conjunto de departamentos)\n", "\n", "Construyamos este modelo en pocas líneas con la API funcional." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:03.888134Z", "iopub.status.busy": "2020-09-23T00:10:03.884857Z", "iopub.status.idle": "2020-09-23T00:10:04.337823Z", "shell.execute_reply": "2020-09-23T00:10:04.337191Z" }, "id": "Gt91OtzbutJy" }, "outputs": [], "source": [ "num_tags = 12 # Número de etiquetas de problemas únicos\n", "num_words = 10000 # Tamaño del vocabulario obtenido al preprocesar datos de texto\n", "num_departments = 4 # Número de departamentos para predicciones.\n", "\n", "title_input = keras.Input(shape=(None,), name='title') # Secuencia de longitud variable de entradas\n", "body_input = keras.Input(shape=(None,), name='body') # Secuencia de longitud variable de entradas\n", "tags_input = keras.Input(shape=(num_tags,), name='tags') # Vectores binarios de tamaño `num_tags`\n", "\n", "# Ingresa cada palabra en el título en un vector de 64 dimensiones\n", "title_features = layers.Embedding(num_words, 64)(title_input)\n", "# Ingresa cada palabra en el texto en un vector de 64 dimensiones\n", "body_features = layers.Embedding(num_words, 64)(body_input)\n", "\n", "# Reduce la secuencia de palabras ingresadas en el título en un solo vector de 128 dimensiones\n", "title_features = layers.LSTM(128)(title_features)\n", "# Reduce la secuencia de palabras ingresadas en el cuerpo en un solo vector de 32 dimensiones\n", "body_features = layers.LSTM(32)(body_features)\n", "\n", "# Combina todas las funciones disponibles en un solo vector grande mediante concatenación\n", "x = layers.concatenate([title_features, body_features, tags_input])\n", "\n", "# Pegua una regresión logística para la predicción de prioridad en la parte superior de las características\n", "priority_pred = layers.Dense(1, activation='sigmoid', name='priority')(x)\n", "# Stick a department classifier on top of the features\n", "department_pred = layers.Dense(num_departments, activation='softmax', name='department')(x)\n", "\n", "# Instancia un modelo de extremo a extremo que prediga tanto la prioridad como el departamento\n", "model = keras.Model(inputs=[title_input, body_input, tags_input],\n", " outputs=[priority_pred, department_pred])" ] }, { "cell_type": "markdown", "metadata": { "id": "KIS7lqW0uwh-" }, "source": [ "Ploteando el modelo:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:04.342772Z", "iopub.status.busy": "2020-09-23T00:10:04.342117Z", "iopub.status.idle": "2020-09-23T00:10:04.491556Z", "shell.execute_reply": "2020-09-23T00:10:04.492103Z" }, "id": "IMij4gzhuzYV" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABOMAAAIECAYAAABbierdAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde1zUdd7//+eggjAcRMxAqLUsLU1HE9e4zPC0Wqt5IBRLOmzp1bX7dcWMWjVr18TKooJrO1h23KwN9XazvdSr2tS0NCjsSjZz0xbswElTA4E8hLx/f/Rj1pGDA8yBGR73223+4D3vz/v9mvkMn9dnXvM5WIwxRgAAAAAAAADcbW2AtyMAAAAAAAAAOgqKcQAAAAAAAICHUIwDAAAAAAAAPIRiHAAAAAAAAOAhnb0dgKtMnz7d2yEAQIeWkJCgBQsWeDsMuNETTzyh3Nxcb4cBAGgEeRgAfIffHBm3bt06FRcXezsMwCX4PHtGcXGx1q1b5+0w/EJeXh5Fmg4gNzdXeXl53g4DcDvysGeQh12HPAwAvsVijDHeDsIVLBaLcnJyNGPGDG+HArQZn2fPWLNmjVJSUuQnm0Gvqj86ee3atV6OBO7EekZHQR72DPKw67B9BgCfstZvjowDAAAAAAAA2juKcQAAAAAAAICHUIwDAAAAAAAAPIRiHAAAAAAAAOAhFOMAoAVWr14ti8Vif4SGhjba75tvvtHkyZN17NgxSVJZWZmWL1+u+Ph4hYeHKzo6WomJiVq/fn2b4nF23IULFyonJ6fRMRYuXOjwmq666qo2xQQAgLuQhwEA/oBiHODHqqurdemll2rSpEneDsXvPPvsszLGqLq6usFzu3fvVnx8vMaPH6/w8HBJ0pw5c5SVlaWlS5eqrKxMeXl5iouLU1JSkhYuXNjqOJwdd86cOVq0aJHuv//+BmM88sgjMsbIGKNOnTq1OhYAgCPysPuQhwEAvoxiHODHjDGqq6tTXV2dt0M5p9DQUF199dXeDqPNjh07puuvv1433HCD5s6d6/BcZmamJk6cKKvVqt69e+vll19WbGysMjMzdejQoVbP6cy4ffr00fr167V8+XKtWbOmTa8RAOAc8rDnkYcBAL6gs7cDAOA+YWFhKiws9HYYHcqjjz6q8vJyPfDAAw7tGzdubNA3MDBQ/fv3V0lJifbt26eePXu2eL6WjGuz2ZScnKy7775bSUlJ6tyZFAAA7kQe9jzyMADAF3BkHAC4iDFGL7zwgoYPH65evXo5tUxRUZEkqXv37i6Npalxp02bpuLiYm3atMml8wEA4G3kYQCAr6AYB/ipt956y+FiwCdOnGi0/euvv1ZKSoq6deumqKgoTZo0yeFX/MzMTHvfuLg45efna+zYsQoLC1NISIhGjx6tnTt32vtnZGTY+595uss777xjb+/Ro0eD8WtqarRz5057H1/8tbigoEAHDx6UzWZzqv+rr76qwsJC9e3bV/3793dZHM2NO3jwYEnSu+++67L5AAANkYc9jzwMAPAVFOMAPzV16lQZYzRlypRm2+fPn6/58+erpKREOTk52rp1q2688UZ7//T0dBljZLPZVFFRobS0NGVkZKi8vFwffPCBjh49qjFjxmj79u2SpCVLlsgYI6vV6jDvtddeK2OMhg4d6tBeP77VatWIESPsFzCura116DdmzBhFRUUpLy/PZe+Rq+3Zs0eSFBcX12y/vXv3Ki0tTbfffrsiIyPtd4ZrK2fGjY2NdYgVAOAe5GHPIw8DAHwFxTigg5s9e7YSEhJktVo1btw4TZw4Ufn5+Tp8+HCDvjU1NXrmmWfs/ePj47V69WqdOnVKaWlpbo2zrq7O/gWhvSorK5MkRURENNtv0KBBWrt2rebOnas9e/Zo2LBhLpnfmXHDw8NlsVjssQIAvIs87DrkYQCAr/C9488BuNTZO4oXXHCBJKm0tNThNBZJslqt9tMr6g0cOFC9evVSQUGBysrKFBMT45Y4t23b5pZxXan+FKQuXbqcs+/WrVt12WWXuTwGZ8bt3Lmzjh8/7vK5AQAtRx52HfIwAMBXcGQc0MGd/etxYGCgpJ9/AT9bt27dGh2j/i5hhw4dcnF0vqVr166SpJ9++snLkTSvtrZWwcHB3g4DACDysCuRhwEAvoJiHACnHTlypNHTU+p3/uu/DEhSQECATp061aBvRUVFo2O74lot3lZ/NEJlZaWXI2nasWPHZIxx25ETAAD3IQ83jzwMAPAVFOMAOO3EiRPKz893aPv8889VWloqm83msGMZExOjkpISh77l5eX69ttvGx07JCTE4UtDv3799Pzzz7sweve74oorJEnFxcXN9qutrXXLqTHOjFu/TupjBQD4DvJw88jDAABfQTEOgNMiIiK0ePFi5ebmqqamRrt27VJqaqoCAwOVnZ3t0Hf8+PEqLS3VU089perqahUWFiotLc3hV/szXXnlldq/f7++++475ebmqqioSCNHjrQ/7wt3cbPZbOrZs6cKCgqa7LNq1SpZrVbde++9TfZJTU2VxWLRgQMHnJ7bmXElaffu3ZJ+Xj8AAN9CHm4eeRgA4CsoxgF+6q233pLFYtHf/vY3SVJwcLBSU1OVl5fXoH3JkiWSfj5FZcWKFZKkIUOGaNKkSQ5jhoaG6s9//rOWLl2qmJgYXXPNNYqMjNTWrVuVmJjo0DcjI0OzZ8/WQw89pJ49e+q2227TPffco+joaB05ckQWi0ULFy6098/KytKgQYN0+eWXKyUlRdnZ2br88svtz9fW1rb7u7hZLBbNnj1bH3/8sUpLSxvt48zd6MrKyhQaGqoLL7zQ6bmdvcvd+vXrFRsbq4kTJzo9NgCg5cjDnkceBgD4Cu6mCvipqVOnNrlD2NL2M11++eV65513ztkvIiJCq1atatC+a9euRvv369dPH3zwQZPjNfdce3Lvvffq1Vdf1YMPPqiVK1c2eP7OO+/UnXfe2eTyFRUVys3N1axZs9SpUyen5z3XuJJUUFCgdevW6Y033nDqTnMAgNYjD3sHeRgA4As4Mg4AXCgiIkIbNmzQunXr9PTTT7doWWOM5s2bp/DwcC1btsylcRUVFSkpKUmLFi3SzJkzXTo2AADtBXkYAOALKMa5UGZmpiwWiywWi+Li4jw2b2hoqH3e+kdmZqbH5nc1f3s98E+//e1vZbFYFBoa2uC5IUOGaNeuXXr77bd17Ngxp8c8ePCgioqKtGXLFkVHR7syXD333HNavny5li9f3uC5hQsX2v/XTp8+7dJ50bF5Iy+++eab9jm7du3qkTkl/8td/vZ64H/IwwAAX0YxrgnV1dW69NJLG1yroznp6ekyxshms7kxsoaqq6v12WefSZKmTJkiY4zS09M9GoMr+dvr8XX1X6YLCgpUUlIii8Viv7ZNR5Sammq/JowxRtXV1Y326927tzZu3Kjw8HCnx46OjtaOHTs0YMAAV4Vrt2LFiiZ/iX/kkUccXlN7vjg3fIs38uLMmTNljNHYsWM9Nqfkf7nL316PLyMPOyIPAwD8QYcuxoWGhurqq69u9DljjOrq6lRXV9ei5eAc3kPfUf9l+sxHRkaGt8MCALQRudg3kIcBAPA/3MChCWFhYSosLPR2GAAAAAAAAPAjHfrIOAAAAAAAAMCTOmQxrv7aGzU1Ndq5c6f9gqmdO/98oOBbb73lcMHiEydOOLXcuXz//feaN2+eevfurcDAQJ133nlKSkrS7t273fZaz34tX3/9tVJSUtStWzdFRUVp0qRJDkcAnn2x7fz8fI0dO1ZhYWEKCQnR6NGjtXPnTnv/jIwMe/8zT3V555137O09evRoMH5r38Om1NbWKicnR7/61a8UHR2t4OBgDRw4UNnZ2fZTjSsqKhpcjLr+NI/a2lqH9uTkZPvYzqy3s9/nffv2acaMGYqKirK3HT58uE2vEQB83ZdffqmJEycqIiKi0ZxS78iRI1qwYIH69OmjwMBARUZG6rrrrtP777/f6JhTp05VRESErFarRo4cqR07djj0ae3231XIxeRiAAAAB8ZPSDI5OTktWsZqtZoRI0Y0+fyUKVOMJHP8+PEWLWez2UxsbKxDW2lpqfnFL35hzj//fLNp0yZTVVVl9uzZYxITE03Xrl3NRx995NB/9OjRpnv37iY3N9ep1/LZZ58ZSWbKlCnNvpYpU6aYjz76yFRXV5v33nvPBAcHm2HDhjX6GqxWq0lISLD3z8/PN4MGDTKBgYFm27ZtTr0nQ4cONVFRUQ3az/Uenuv1nG3Dhg1GknnooYfM0aNHzffff2/++7//2wQEBJj09HSHvhMmTDABAQHmX//6V4NxEhISzOuvv27/u6Xrrf59TkxMNO+//76pqakxeXl5plOnTub777936rUY07rPM1ouJyfH+NFm0KuSk5NNcnKyt8OAm7V2PdtsNhMREWFGjx5tduzYYaqqqprMKWVlZeaiiy4y559/vtmwYYOprKw0+/btM0lJScZisZhVq1bZ+3711VemW7duJjY21vz97383VVVV5h//+IcZP3686d27twkKCnKIoyXbf2PIxR05F5OHPYM87DrkYQDwKWs65JFx3rBo0SJ98803euKJJ/TrX/9aoaGhGjBggN58800ZY/T73//eoX9dXZ39Ir2uNHv2bCUkJMhqtWrcuHGaOHGi8vPzG/2luKamRs8884y9f3x8vFavXq1Tp04pLS3NpXG5wqhRo7Ro0SJFRkaqR48e+v3vf6+bbrpJ2dnZDre1X7Bggerq6vTEE084LL9z5059++23mj59ur2tpeut3h/+8AeNGjVKISEhGj58uGprax2OSgCAjqayslIPPfSQRowYodDQ0CZzyqJFi3TgwAFlZWVp0qRJCg8PV9++ffXGG28oJiZG8+bN08GDByVJ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j3nam/tD5Ohza4/7qwDgImt98si4zMxMWSwWWSwWxcXFeWTON9980z5n/R2QXNm/PQoNDbW/hnM9du3a5dK5WcdA20VERGjDhg1at26dnn766RYta4zRvHnzFB4ermXLlrk0rqKiIiUlJWnRokVe3ckH21pP+t///V/17dtXnTt3dtmY5GnX9gc8iRwNAB2bTxbj0tPTZYyRzWbz2JwzZ86UMUZjx45tc//q6mpdeumlDQ79b2+qq6v12WefSZKmTJliP6T97EdERITL52YdA64xZMgQ7dq1S2+//baOHTvm9HIHDx5UUVGRtmzZoujoaJfG9Nxzz2n58uVavny5S8dFy7Gtdb/CwkJNnjxZixYt0sGDB106Nnm69f194bMD/0eOBoCOyyeLcb7OGKO6ujrV1dV5OxS4CevYefVHVxQUFKikpEQWi8V+7Rq4Ru/evbVx40aFh4c7vUx0dLR27NihAQMGuDyeFStW8Gs7XMIXtrX333+//uM//kOffvqpwsLCvB0O/n++8NlpL8jT7kWOBoCOyXXnSsBpYWFhKiws9HYYLlNRUeHtENodf1vH7pSenq709HRvhwHAB/nCtvbFF19UcHCwV2MgTzfkC5+d9oI8DQCA63FkHFrt6quv1iuvvOLtMAAAaLe8WYgjTwMAALRPLivGff/995o3b5569+6twMBAnXfeeUpKStLu3bvtfepvsV7/+Oabb5SSkqKwsDBFRUXp5ptv1g8//KCvv/5a119/vcLCwhQTE6M5c+aoqqqqybm//PJLTZw4UREREQoJCdHo0aO1c+fOVsV45phTp05VRESErFarRo4cqR07djQbgzP9z34PTpw40Wj7119/rZSUFHXr1k1RUVGaNGlSo7/gnjlvSEiIfvnLX2rjxo0aN26cfazZs2c3GbersY79fx0DcC/yKdtad+Kzw2cHAAC0A+YsOTk5ppHmZpWWlppf/OIX5vzzzzebNm0yVVVVZs+ePSYxMdF07drVfPTRRw79p0yZYiSZpKQks2vXLlNdXW3+8pe/GEnmuuuuM1OmTDGfffaZqaqqMitXrjSSzF133dVgXpvNZiIiIszo0aPNjh07TFVVlcnPzzeDBg0ygYGBZtu2ba2K8auvvjLdunUzsbGx5u9//7upqqoy//jHP8z48eNN7969TVBQkEMcLe1/5ntw/PjxRtunTJli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efN08OBBt8ZQU1OjZ555RgkJCbJarYqPj9fq1at16tQppaWluXXuuro6+xcAd6vfOY6IiGi236BBg7R27VrNnTtXe/bs0bBhw1wyvyvHPXHihCQpODhYr7zyii6++GJ169ZNt9xyixYtWqT9+/fr8ccft/dftWqVvvrqKz366KMtmic8PFwWi8X+3gFAR0Oe9kyeJkeTowHAVSjGATin9evXS5ImTpzo0B4UFKSxY8fq+PHjbj/9wGq12k91qDdw4ED16tVLBQUFbt3J27Ztm44ePaqEhAS3zVGvfue4S5cu5+y7detWZWdnO33dGme5atz6Ix/GjRvX4JSi66+/XtK/T1v59ttvdc899+ill15qcMSEMzp37qzjx4+3KV4A8FXkac/kaXI0ORoAXIViHIBmnTx5UpWVleratWuj1wepvwNXeXm5W+Po1q1bo+09e/aUJB06dMit83tK165dJUk//fSTlyNpu969e0uSoqKiGjxXv96+//57SdKGDRtUWVmpUaNG2a8JZLFYdPPNN0uS7r//fnvbv/71rwbj1dbWKjg42E2vBADaL/K055CjydEA4CoU4wA0KygoSBERETpx4oSqqqoaPF9/2kt0dLS9LSAgQKdOnWrQt6KiotE5nLneyZEjRxo9/aR+575+x9Fd83tKTEyMJDW4Tosvqr84d2NHQ9Svt/ovif/v//0/+ylGZz5ee+01SdKyZcvsbZdcconDWMeOHZMxxv7eAUBHQp72HHI0ORoAXIViHIBzmjZtmiQ1uC39yZMntWXLFgUHB2vChAn29piYGJWUlDj0LS8v17ffftvo+CEhIQ475f369dPzzz/v0OfEiRPKz893aPv8889VWloqm83msJPnjvk95YorrpD08x3LmlNbW6vLLrvM5fO7ctxf//rXio2N1TvvvGM/tafehg0bJElTp05t8zz167r+vQOAjoY87Rnk6JYjRwNA4yjGATinhx9+WBdddJHmz5+vjRs3qqqqSvv379dNN92ksrIyZWdn2389laTx48ertLRUTz31lKqrq1VYWKi0tDSHX8XPdOWVV2r//v367rvvlJubq6KiIo0cOdKhT0REhBYvXqzc3FzV1NRo165dSk1NVWBgoLKzsx36unp+T95N1WazqWfPniooKGiyz6pVq2S1WnXvvfc22Sc1NVUWi0UHDhxwem5XjxsU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MJ06ddL999+v119/Xf/85z+9HQ4AAK1WUVGhXbt2cYoqAADwKRTjgA7oxhtv1IABA/THP/7R26EAANBq77//vowxGjVqlLdDAQAAcBrFOKADCggI0B//+EetW7dOn332mbfDAQCgVbZs2aIhQ4aoR48e3g4FAADAaRTjgA5q2rRpGjZsmB544AFvhwIAQKtwvTgAAOCL/j/27jwuqrL/H/9rWB2GHRQUNM00shQQDNdARNRYTD8uldr3rkjvytRME6zsLpfKaLEsvVO7NU1z+XzUwB0NTZbCBSrMJcgFBFQQFAR04Pr94W/mdhx2ZubMDK/n48Hjvj3nOue858x03nPec53rYjGOqI2SyWT417/+hcTERKSlpUkdDhERUbPk5+fjzJkzHC+OiIiITI5MCCGkDoKIpBMSEgIhBA4fPix1KERERE22du1avPzyyygpKYFcLpc6HCIiIqKm2sqecURt3KJFi3DkyBEcOnRI6lCIiIia7ODBgxg0aBALcURERGRyWIwjauMGDx6M4cOHIy4uDuwoS0REpkAIgYMHD/IRVSIiIjJJLMYREZYsWYKMjAzs3r1b6lCIiIgalZ2djYKCAk7eQERERCaJxTgiQmBgIKKiohAXF4fa2lqpwyEiImpQUlISnJ2d0bdvX6lDISIiImo2FuOICMDdseOys7Pxf//3f3Wu5yOsRERkLA4ePIjQ0FBYWlpKHQoRERFRs7EYR0QAgN69e2P8+PF46623oFQq1ct/+eUXREVF4eTJkxJGR0REbVVgYCCmTJmC7777DpcvX4ZSqcSRI0c4XhwRERGZLBbjiEht4cKFyM3NxaZNm5CVlYWIiAj0798fiYmJOHfunNThERFRG1ReXo7vv/8ezz//PLy8vNCtWzfcuXMHAFBWViZxdERERETNx2IcEan16NED0dHReP3119G3b18cOHAAAGBra4u//vpL4uiIiKgt6tChA4QQ6jFN8/LyoFQqMX36dLi6uiIwMBDvvPMOUlNTJY6UiIiIqGmspA6AiIzDxYsXsXDhQuzYsQOWlpaora1V3/golUoW44iISBKenp6QyWQaY5eqesYJIXD8+HEcP34c9vb2GDhwoFRhEhERETUZi3FEbVx+fj4WLlyINWvWQCaTaRThVGpqapCdnS1RhERE1Ja1b98eVlZW6gLc/aysrODn54c5c+YYODIi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\n", "text/plain": [ "" ] }, "execution_count": 1, "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": "oOyuig2Hu00p" }, "source": [ "Al compilar este modelo, podemos asignar diferentes pérdidas a cada salida.\n", "Incluso puede asignar diferentes pesos a cada pérdida, para modular su\n", "contribución a la pérdida total de entrenamiento." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:04.504485Z", "iopub.status.busy": "2020-09-23T00:10:04.503768Z", "iopub.status.idle": "2020-09-23T00:10:04.510278Z", "shell.execute_reply": "2020-09-23T00:10:04.509712Z" }, "id": "Crtdpi5Uu2cX" }, "outputs": [], "source": [ "model.compile(optimizer=keras.optimizers.RMSprop(1e-3),\n", " loss=['binary_crossentropy', 'categorical_crossentropy'],\n", " loss_weights=[1., 0.2])" ] }, { "cell_type": "markdown", "metadata": { "id": "t42Jrn0Yu5jL" }, "source": [ "Como dimos nombres a nuestras capas de salida, también podríamos especificar la pérdida de esta manera:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:04.520672Z", "iopub.status.busy": "2020-09-23T00:10:04.519912Z", "iopub.status.idle": "2020-09-23T00:10:04.526283Z", "shell.execute_reply": "2020-09-23T00:10:04.525808Z" }, "id": "dPM0EwW_u6mV" }, "outputs": [], "source": [ "model.compile(optimizer=keras.optimizers.RMSprop(1e-3),\n", " loss={'priority': 'binary_crossentropy',\n", " 'department': 'categorical_crossentropy'},\n", " loss_weights=[1., 0.2])" ] }, { "cell_type": "markdown", "metadata": { "id": "bpTx2sXnu3-W" }, "source": [ "Podemos entrenar el modelo pasando listas de matrices Numpy de entradas y objetivos:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:04.533268Z", "iopub.status.busy": "2020-09-23T00:10:04.532574Z", "iopub.status.idle": "2020-09-23T00:10:09.307920Z", "shell.execute_reply": "2020-09-23T00:10:09.308330Z" }, "id": "nB-upOoGu_k4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/40 [..............................] - ETA: 0s - loss: 1.2883 - priority_loss: 0.7039 - department_loss: 2.9223" ] }, { "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: 0s - loss: 1.2770 - priority_loss: 0.7013 - department_loss: 2.8785" ] }, { "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: 0s - loss: 1.3031 - priority_loss: 0.7316 - department_loss: 2.8576" ] }, { "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: 0s - loss: 1.3060 - priority_loss: 0.7327 - department_loss: 2.8662" ] }, { "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: 0s - loss: 1.3127 - priority_loss: 0.7275 - department_loss: 2.9261" ] }, { "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: 0s - loss: 1.3125 - priority_loss: 0.7222 - department_loss: 2.9517" ] }, { "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: 0s - loss: 1.3119 - priority_loss: 0.7193 - department_loss: 2.9628" ] }, { "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.3084 - priority_loss: 0.7172 - department_loss: 2.9564" ] }, { "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 [==============================] - ETA: 0s - loss: 1.3044 - priority_loss: 0.7146 - department_loss: 2.9490" ] }, { "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 [==============================] - 0s 12ms/step - loss: 1.3044 - priority_loss: 0.7146 - department_loss: 2.9490\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2/2\n", "\r", " 1/40 [..............................] - ETA: 0s - loss: 1.3165 - priority_loss: 0.6929 - department_loss: 3.1178" ] }, { "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: 0s - loss: 1.2995 - priority_loss: 0.7004 - department_loss: 2.9955" ] }, { "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: 0s - loss: 1.2801 - priority_loss: 0.6967 - department_loss: 2.9172" ] }, { "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: 0s - loss: 1.2748 - priority_loss: 0.6960 - department_loss: 2.8941" ] }, { "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: 0s - loss: 1.2845 - priority_loss: 0.6984 - department_loss: 2.9305" ] }, { "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: 0s - loss: 1.2850 - priority_loss: 0.6992 - department_loss: 2.9289" ] }, { "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.2888 - priority_loss: 0.6982 - department_loss: 2.9531" ] }, { "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.2921 - priority_loss: 0.6991 - department_loss: 2.9648" ] }, { "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 [==============================] - 0s 11ms/step - loss: 1.2906 - priority_loss: 0.6993 - department_loss: 2.9562\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "# Datos de entrada ficticios\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", "# Datos objetivo ficticios\n", "priority_targets = np.random.random(size=(1280, 1))\n", "dept_targets = np.random.randint(2, size=(1280, num_departments))\n", "\n", "model.fit({'title': title_data, 'body': body_data, 'tags': tags_data},\n", " {'priority': priority_targets, 'department': dept_targets},\n", " epochs=2,\n", " batch_size=32)" ] }, { "cell_type": "markdown", "metadata": { "id": "qNguhBWuvCtz" }, "source": [ "Al llamar al ajuste con un objeto `Dataset`, debería producir un\n", "tupla de listas como `([title_data, body_data, tags_data], [priority_targets, dept_targets])`\n", "o una tupla de diccionarios como\n", "`({'title': title_data, 'body': body_data, 'tags': tags_data}, {'priority': priority_targets, 'department': dept_targets})`.\n", "\n", "Para obtener una explicación más detallada, consulta la guía completa [Guía de entrenamiento y evaluación](./train_and_evaluate.ipynb)." ] }, { "cell_type": "markdown", "metadata": { "id": "tR0X5tTOvPyg" }, "source": [ "### Un modelo de Red neuronal residual de juguete\n", "\n", "Además de los modelos con múltiples entradas y salidas,\n", "La API funcional facilita la manipulación de topologías de conectividad no lineal,\n", "es decir, modelos donde las capas no están conectadas secuencialmente.\n", "Esto tampoco se puede manejar con la API secuencial (como su nombre lo indica).\n", "\n", "Un caso de uso común para esto son las conexiones residuales.\n", "\n", "Construyamos un modelo de ResNet de juguete para CIFAR10 para demostrar esto." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:09.320991Z", "iopub.status.busy": "2020-09-23T00:10:09.317602Z", "iopub.status.idle": "2020-09-23T00:10:09.417793Z", "shell.execute_reply": "2020-09-23T00:10:09.417258Z" }, "id": "VzMoYrMNvXrm" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"toy_resnet\"\n", "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "img (InputLayer) [(None, 32, 32, 3)] 0 \n", "__________________________________________________________________________________________________\n", "conv2d_8 (Conv2D) (None, 30, 30, 32) 896 img[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_9 (Conv2D) (None, 28, 28, 64) 18496 conv2d_8[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_2 (MaxPooling2D) (None, 9, 9, 64) 0 conv2d_9[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_10 (Conv2D) (None, 9, 9, 64) 36928 max_pooling2d_2[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_11 (Conv2D) (None, 9, 9, 64) 36928 conv2d_10[0][0] \n", "__________________________________________________________________________________________________\n", "add (Add) (None, 9, 9, 64) 0 conv2d_11[0][0] \n", " max_pooling2d_2[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_12 (Conv2D) (None, 9, 9, 64) 36928 add[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_13 (Conv2D) (None, 9, 9, 64) 36928 conv2d_12[0][0] \n", "__________________________________________________________________________________________________\n", "add_1 (Add) (None, 9, 9, 64) 0 conv2d_13[0][0] \n", " add[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_14 (Conv2D) (None, 7, 7, 64) 36928 add_1[0][0] \n", "__________________________________________________________________________________________________\n", "global_average_pooling2d (Globa (None, 64) 0 conv2d_14[0][0] \n", "__________________________________________________________________________________________________\n", "dense_9 (Dense) (None, 256) 16640 global_average_pooling2d[0][0] \n", "__________________________________________________________________________________________________\n", "dropout (Dropout) (None, 256) 0 dense_9[0][0] \n", "__________________________________________________________________________________________________\n", "dense_10 (Dense) (None, 10) 2570 dropout[0][0] \n", "==================================================================================================\n", "Total params: 223,242\n", "Trainable params: 223,242\n", "Non-trainable params: 0\n", "__________________________________________________________________________________________________\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, activation='softmax')(x)\n", "\n", "model = keras.Model(inputs, outputs, name='toy_resnet')\n", "model.summary()" ] }, { "cell_type": "markdown", "metadata": { "id": "ISQX32bgrkis" }, "source": [ "Ploteando el modelo:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:09.422376Z", "iopub.status.busy": "2020-09-23T00:10:09.421681Z", "iopub.status.idle": "2020-09-23T00:10:09.648893Z", "shell.execute_reply": "2020-09-23T00:10:09.649448Z" }, "id": "pNFVkAd3rlCM" }, "outputs": [ { "data": { "image/png": "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raurEwkJCcLd3V3IZDIRFBQk8vPzhb+/vwAgAIhFixap48+cOSOCg4OFXC4X3t7eYsOGDRr9KRQK4enpKU6dOiXCw8OFvb29kMlkIiQkRPz4448GHz84OFg4OTmJo0ePduo168rxYteuXQKA2LRpk87tS5YsEVZWVuLSpUs6t2/evFnIZDKRnJzc5hihoaHCzs5OtLa2tptPfX292LZtmwgPDxf333+/kEqlws7OTvj7+4s1a9aI69eva8RHRESoX+O2Hrm5uX02H5XY2Fjh6ekpbty4oXO7paWlGDNmTLvj34l/n6iXyeKnkXoFHhzJHHSleDcmVfFuagxRvNfV1QlPT0+RmJjYpZyuXr0qZDKZSEhI6NL++tYX8ykoKBASiUT84x//aDOGxTuZgSxOmyEioj7P0dER+/fvR3Z2NjZs2NCpfYUQmDdvHhwcHNpdD70n9MV8SktLER0djcWLF+Ppp582yBhEvQWLdyIi6jNefvllSCQS2NnZaW3z8/PD8ePHcfDgQTQ0NHS4z6qqKpSWluLQoUMaqwMZS1/MZ8uWLVi9ejVWr16ttS01NVU9F//WrVsGGZ+oJ0mEMPKt7YgAZGVlIS4uzuh3WiTqDolEgszMTL3eGt4Q1q5di5SUFI22pUuXIi0tzUgZdQ6PF9ST+HmjXmaPVfsxRERkTpKTk5GcnGzsNIiIqAs4bYaIiIiIyESweCciIiIiMhEs3omIiIiITASLdyIiIiIiE8ELVqlXycrKMnYKRN2Sm5tr7BTMnuo15vGCegJ/p6m34VKR1CuoluIiIiLqjVguUS+xh8U7EZGZ4brURERmaw/nvBMRERERmQgW70REREREJoLFOxERERGRiWDxTkRERERkIli8ExERERGZCBbvREREREQmgsU7EREREZGJYPFORERERGQiWLwTEREREZkIFu9ERERERCaCxTsRERERkYlg8U5EREREZCJYvBMRERERmQgW70REREREJoLFOxERERGRiWDxTkRERERkIli8ExERERGZCBbvREREREQmgsU7EREREZGJYPFORERERGQiWLwTEREREZkIFu9ERERERCaCxTsRERERkYlg8U5EREREZCJYvBMRERERmQgW70REREREJoLFOxERERGRiWDxTkRERERkIli8ExERERGZCBbvREREREQmgsU7EREREZGJYPFORERE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Li4uiIyMVF9gWVdXp3WBourMY2trq0Z7TEzMPZ+HalWLpUuXam07c+YMnnrqKTg6OkIulyM4OBg//vhjt163gQMHYu3atSgsLMSSJUtw5coV1NbW4v3338c333yDFStWYOjQoV3u//vvvwcAjBw5skv7m+p71RFBQUEAgLy8PNy8ebNLfRAREXWIEefskJnryhzTiooKMXjwYOHm5ib2798vGhoaRGVlpXj77bcFAPGXv/xFK3bgwIFi//79or6+XhQVFYno6GghkUjE1q1bNfqOiopSz10+evSoaGxsFF9//bWQyWRi9OjRGrGTJ08WFhYW4rffftPKMTAwUOzevfuez6OyslIMHDhQJCQkaG07e/as6N+/v/D09BT/+te/xLVr18S///1vMWnSJHH//fd3ec67SlZWlvDy8lLPWR4wYID429/+pjN2woQJwtnZWeTm5rbbr7u7uwAgjh071umcTPW9EqL9Oe9CCNHc3Kx+vcvLy+853p1625x3c8Y579RTwDnvZFhZ/KtBBtOVP5bPP/98mwe+yZMnaxTvqth//OMfGnEtLS3Cw8NDyGQyUVlZqW5XFYT79+/XyhOAuHLlirrtm2++EQDEK6+8ohH7448/ikGDBt3zYszq6moxatQoERcXJ1pbW7W2x8bGCgAiOztbo/3SpUvCxsamy8X77du3xZw5c4S1tbX46KOPRGVlpbhy5YrYsmWLkMlkIi4uTivvkJAQ4eTkJI4ePdpu/6rivSsXvZrqeyVEx4r369evs3jv5Vi8U09h8U4GlmU6k1KpT9i7dy8AYMqUKVrbDh48qDP27jvj2djYICwsDLt27cJXX32FZ599VmP76NGjNX729vYGAJSXl2PAgAEAgLCwMPj5+WH79u1YtWoVXFxcAAAffPAB5s+f3+Z87qamJoSHh8PX1xc7d+6EpaWlVsyXX34JAAgPD9do9/DwwNChQ1FcXKyz7/bs2rULW7duxdy5c/H666+r21966SVUVlbizTffxNixYzF//nz1tiNHjnS4fw8PD1RUVKC6urrTuZnqe9VRFRUVAABra2t1Xp2RlZXV5bGpY1Q3nOJrTUSmjsU79RpKpRL19fXo168f7O3tuxU7cOBAAEBlZaXWNkdHR42fpVIpgD/WML/TG2+8gfj4eGzcuBHLly9HcXExvv/+e+zatUtnTq2trYiNjYWn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eSciIjIgTN6JDBuTdyIiIgPSoUMHFBUVSR0GEWkJk3ciIiIDYmNjg9LSUqnDICItYfJORERkQORyOUpKSqQOg4i0hMk7ERGRAWHyTmTYmLwTEREZELlcjvLyclRXV0sdChFpAZN3IiIiA2Jubg4AqKyslDgSItIGJu9EREQGxMTEBABQVVUlcSREpA1M3omIiAyIInl/8OCBxJEQkTYweSciIjIgpqamAHjnnchQMXknIiIyICybITJsTN6JiIgMiGKVmTZt2kgcCRFpA5N3IiIiA6K4464onyEiw8LknYiIyIAokndF+QwRGRYm70RERAZEscoMk3ciw8TknYiIyIAokneWzRAZJibvREREBqS0tBRmZmYwMzOTOhQi0gIm70RERAaktLQUNjY2UodBRFrC5J2IiMiAlJSUMHknMmBM3omIiAxIaWkp5HK51GEQkZYYSx0AETWPkpISCCHU2svLy3H79m2VNktLS65EQWSgeOedyLDxzjuRgRg7dizat2+v8gKAqVOnqrQ988wzKC4uljhaItKW3NxcODk5SR0GEWkJk3ciAzF+/HjIZLIn9jEyMsKQIUNgb2+vo6iISNeYvBMZNibvRAYiJCQExsZProSTyWSYPHmyjiIiIink5ubC0dFR6jCISEuYvBMZCFtbW/j5+aFNmzb19jEyMsKYMWN0GBUR6VJVVRWKiop4553IgDF5JzIgERERqK2trfOYsbExRo4cyVUoiAxYTk4Oamtr4ezsLHUoRKQlTN6JDEhwcHC9uyrW1NQgIiJCxxERkS5lZmYCALp27SpxJESkLUzeiQxIu3btMGbMmDqXgTQ3N8eIESMkiIqIdCUzMxNyuRwdO3aUOhQi0hIm70QGZsKECaiqqlJpMzExQUhICMzNzSWKioh0ISsrC926dZM6DCLSIibvRAbG399fra69qqoKEyZMkCgiItKVzMxMJu9EBo7JO5GBMTExQXh4OExNTZVtNjY28PX1lTAqItKFS5cuMXknMnBM3okM0Pjx4/HgwQMAD5P5iIiIp64BT0T6raKiAleuXEHfvn2lDoWItIjJO5EB8vb2Vu6iWlVVhfDwcIkjIiJty8jIQHV1NZN3IgPH5J3IABkZGWHSpEkAAEdHRwwcOFDiiIhI237//XeYm5uje/fuUodCRFok2ffoN2/exIkTJ6SansjgKZaKGzBg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R44YvX8/Pz/h6Ogojh07ptMx0/fz6+WXXxYWFhaisLBQ4/ZNmzYJqVQq4uPj22zD399f2NraiubmZq37bW1tFUOHDhWvvfZah3W7Y/vHjh0T06ZNE3K5XFhZWYnhw4eL119/XVy/fr3NfZ599lnlNXH7a9q0aWp1w8PDhYeHh7h586bWMSkAEOnp6TrvR9RJGRIhumCeLKLbhIeHAwB2795t4kiIeoaMjAxERER0ybSHhjJmzBiUl5d3OJSku9H386u6uhojR45EcHAwNm3apHO/VVVVcHd3x8KFC7Flyxad9+/p7esjNzcXY8eOxa5duzBv3jyd95dIJEhPT8fcuXONEB1Rm3Zz2AwREZGRyeVyZGVlYc+ePdi4caNO+wohEBMTA3t7e6xevdrgsZl7+/ooKChAaGgoEhMT9UrciUyJyTsREVEXGDt2LE6ePIlvvvkGNTU1Wu9XWlqKgoICHDhwQGUGIEMx9/b18fHHH2PNmjVYs2aNqUMh0plFx1WIiIgMIzk5GQkJCcp/SyQSvPLKK0hKSjJhVF3H09MTe/fu1WkfV1dXHDlyxEgRmX/7+li7dq2pQyDSG5N3IiLqMvHx8YiPjzd1GEREZovDZoiIiIiIzASTdyIiIiIiM8HknYiIiIjITDB5JyIiIiIyE3xglUwiJydHudgJEXWOYqEj3lPGl5OTA4DHmohMh8k7dTlfX19Th0DUo/Tv3x9hYWHKf5eUlOCXX37BjBkzTBhVz/Twww+bOgTqJsLCwjBgwABTh0F3IYkwp/W0iYioQxkZGYiIiAA/3omIepzdHPNORERERGQmmLwTEREREZkJJu9ERERERGaCyTsRERERkZlg8k5EREREZCaYvBMRERERmQkm70REREREZoLJOxERERGRmWDyTkRERERkJpi8ExERERGZCSbvRERERERmgsk7EREREZGZYPJORERERGQmmLwTEREREZkJJu9ERERERGaCyTsRERERkZlg8k5EREREZCaYvBMRERERmQkm70REREREZoLJOxERERGRmWDyTkRERERkJpi8ExERERGZCSbvRERERERmgsk7EREREZGZYPJORERERGQmmLwTEREREZkJJu9ERERERGaCyTsRERERkZlg8k5EREREZCaYvBMRERERmQkm70REREREZoLJOxERERGRmbAwdQBERKS/pqYm1NXV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l156SVn/t99+E35+fkImk4kBAwaIjRs3qrTn5eUlPDw8xLlz58S0adOEnZ2dkEqlYvLkyeLIkSNG79/Pz084OjqKY8eO6XTMAIj09HSd9jG2l19+WVhYWIjCwkKN2zdt2iSkUqmIj49vsw1/f39ha2srmpubte732LFjYtq0aUIulwsrKysxfPhw8frrr4vr16+3uc+zzz6rPF+3v6ZNm6ZWNzw8XHh4eIibN29qHVNXaScfz5AIoToYLCMjAxEREWY/tREREREZRnh4OABg9+7dJo5Ee2PGjEF5eXmHwz26G4lEgvT0dMydO9fUoShVV1dj5MiRCA4OxqZNm3Tev6qqCu7u7li4cCG2bNlihAh1l5ubi7Fjx2LXrl2YN2+eqcNR004+vpvDZoiIiIioTXK5HFlZWdizZw82btyo075CCMTExMDe3h6rV682UoS6KSgoQGhoKBITE7tl4t4RJu9ERERE1K6xY8fi5MmT+Oabb1BTU6P1fqWlpSgoKMCBAwdUZhcypY8//hhr1qzBmjVrTB2KXpi8ExERUY+RnJwMiUSC3NxcFBYWQiKR4NVXXzV1WD2Cp6cn9u7dC3t7e633cXV1xZEjRzBy5EgjRqabtWvXmuU37goWHVchIiIiMg/x8fGIj483dRhERsNv3omIiIiIzASTdyIiIiIiM8HknYiIiIjITDB5JyIiIiIyE0zeiYiIiIjMRJuzzUgkkq6Mg4iIiLo55gZdIyIiAhEREaYOg7opteT9kUceQXp6uiliISIiA8jOzsaGDRv4WU5E1ANJhBDC1EEQEZHhZGRkICIiAvx4JyLqcXZzzDsRERERkZlg8k5EREREZCaYvBMRERERmQkm70REREREZoLJOxERERGRmWDyTkRERERkJpi8ExERERGZCSbvRERERERmgsk7EREREZGZYPJORERERGQmmLwTEREREZkJJu9ERERERGaCyTsRERERkZlg8k5EREREZCaYvBMRERERmQkm70REREREZoLJOxERERGRmWDyTkRERERkJpi8ExERERGZCSbvRERERERmgsk7EREREZGZYPJORERERGQmmLwTEREREZkJJu9ERERERGaCyTsRERERkZlg8k5EREREZCaYvBMRERERmQkm70REREREZoLJOxERERGRmWDyTkRERERkJpi8ExERERGZCSbvRERERERmwsLUARARkf6uXbuGzMxMlbKTJ08CADZv3qxSbmdnh/nz53dZbEREZHgSIYQwdRBERKSfGzduwNnZGXV1dejduzcAQPGxLpFIlPWampqwePFipKWlmSJMIiIyjN0cNkNEZMasra0RFhYGCwsLNDU1oampCc3NzWhublb+u6mpCQCwYMECE0dLRESdxeSdiMjMLViwADdv3my3joODA/z9/bsoIiIiMhYm70REZm7KlCno169fm9stLS0RGRkJCws+5kREZO6YvBMRmblevXph4cKFsLS01Li9qamJD6oSEfUQTN6JiHqA+fPnK8e238nd3R2+vr5dHBERERkDk3cioh7goYcewr333qtWbmVlhcWLF6vMPENEROaLyTsRUQ/x5JNPqg2duXnzJofMEBH1IEzeiYh6iIULF6oNnRk6dChGjRplooiIiMjQmLwTEfUQw4cPx4gRI5RDZCwtLfH000+bOCoiIjIkJu9ERD3IokWLlCutNjc3c8gMEVEPw+SdiKgHmT9/PlpaWgAA48aNw6BBg0wcERERGRKTdyKiHmTgwIGYMGECAGDx4sUmjoaIiAyNy+0R3SY7Oxv/+te/TB0GUafcuHEDEokE+/fvx+HDh00dDlGn7N6929QhEHUr/Oad6DZXrlzBnj17TB0GUYdycnKQk5OjcVv//v3h4uKCPn36dHFUPdOePXtw9epVU4dx17l69So/j4k04DfvRBrwmx7q7sLDwwG0fa1evHgRQ4cO7cqQeiyJRIIXXngBc+fONXUod5WMjAxERESYOgyiboffvBMR9UBM3ImIeiYm70REREREZoLJOxERERGRmWDyTkRERERkJpi8ExERdbE//vgDISEhqKmpAQAUFxdjzZo18PHxgb29PVxdXTF58mRkZmYapL+mpiasX78e3t7esLOzg7OzM2bMmIGsrCwIIdrdNyQkBBKJBElJSWrbVq5cifT0dIPESETaYfJORHSXq6urw3333Yfg4GBTh3JXOHXqFHx8fBAYGAh7e3sAwJIlS7Bhwwa88cYbKC4uRk5ODvr374/Q0FCsXLmyU/3V19fD398faWlpWL9+PcrKynDy5EnY2toiJCQEZ8+ebXPf7du3Iysrq83tS5YsQWJiIlatWtWpGIlIe0zeiYjuckIItLa2orW11dShdMjW1hYTJ040dRh6q6mpwcyZM/HEE09g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pZg2bZrIzMzscJxTp06JkJAQoVQqhZWVlRg7dqxYt26d+OWXXwzGR0VFCZVKJW7dutXpe7gXv4+JDMqWCMH9z4k0srOzER0dbfSl5Ih6KyoqCsCvm/CYAy8vL9TW1nY6neRBI5FIkJWV1eFa6YY0NjZi3LhxCA8P73CpxvtpaGiAq6srFi1ahO3bt3e7/4OguLgYkyZNQmZmJhYsWNDt/vw+JjIoh9NmiIiI+phSqcSBAwewd+9ebNmypVt9hRCIi4uDQqHAhg0bjJShcZWVlSEiIgJJSUk9KtyJqGMs3omIiIxg0qRJOH36ND7//HNcv369y/2qq6tRVlaGQ4cO6az+Y04++OADpKSkICUlxdSpEA04LN6JiMioUlNTIZFIUFxcjPLyckgkEqxdu9bUafULd3d35ObmQqFQdLmPs7MzTpw4gXHjxhkxM+N66623eMedyEiGdh5CRETUc4mJiUhMTDR1GkREAwLvvBMRERERmQkW70REREREZoLFOxERERGRmWDxTkRERERkJvjAKpEB2dnZpk6B6L40Gx3xb7V/5OXlmTqFQYfXnMgw7rBK9BuaHf2IiOjBwDKFSEcOi3ciogGG28oTEQ1YOZzzTkRERERkJli8ExERERGZCRbvRERERERmgsU7EREREZGZYPFORERERGQmWLwTEREREZkJFu9ERERERGaCxTsRERERkZlg8U5EREREZCZYvBMRERERmQkW70REREREZoLFOxERERGRmWDxTkRERERkJli8ExERERGZCRbvRERERERmgsU7EREREZGZYPFORERERGQmWLwTEREREZkJFu9ERERERGaCxTsRERERkZlg8U5EREREZCZYvBMRERERmQkW70REREREZoLFOxERERGRmWDxTkRERERkJli8ExERERGZCRbvRERERERmgsU7EREREZGZYPFORERERGQmWLwTEREREZkJFu9ERERERGaCxTsRERERkZlg8U5EREREZCaGmjoBIiLquatXr+IPf/gD7ty5o227du0a5HI5pk2bphM7ZswYfPDBB/2cIRER9SUW70REZszNzQ0//PADSktL9Y4dO3ZM55+feuqp/kqLiIiMhNNmiIjM3JIlS2Bpadlp3IIFC/ohGyIiMiYW70REZm7RokVoa2u7b8y4cePg6enZTxkREZGxsHgnIjJzo0ePxsSJEyGR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iYiITGDSpEk4ffo0Pv/8c1y/fr3L/aqrq1FWVoZDhw7prP5jTj744AOkpKQgJSXF1KkQmR0W70REZFKpqamQSCQoLi5GeXk5JBIJ1q5da+q0+oW7uztyc3OhUCi63MfZ2RknTpzAuHHjjJiZcb311lu8407UQ0M7DyEiIjKexMREJCYmmjoNIiKzwDvvRERERERmgsU7EREREZGZYPFORERERGQmWLwTEREREZkJPrBKg5JmAxuigSo/Px8A/9b7y6ZNm8xqQ6yBwNw28yLqKyzeaVAZOXIkIiMjTZ0GkVFVVVXh2rVrmDVrlqlTGRT4nWIabm5uvPY0KEkE9xUmIhpQuG08EdGAlcM570REREREZoLFOxERERGRmWDxTkRERERkJli8ExERERGZCRbvRERERERmgsU7EREREZGZYPFORERERGQmWLwTEREREZkJFu9ERERERGaCxTsRERERkZlg8U5EREREZCZYvBMRERERmQkW70REREREZoLFOxERERGRmWDxTkRERERkJli8ExERERGZCRbvRERERERmgsU7EREREZGZYPFORERERGQmWLwTEREREZkJFu9ERERERGaCxTsRERERkZlg8U5EREREZCZYvBMRERERmQkW70REREREZoLFOxERERGRmWDxTkRERERkJli8ExERERGZCRbvRERERERmgsU7EREREZGZYPFORERERGQmWLwTEREREZmJoaZOgIiIeu727dtoamrSaWtubgYAXLt2TaddIpHAzs6u33IjIqK+x+KdiMiM1dfXQ6VS4c6dO3rHHBwcdP55+vTpOHz4cH+lRkRERsBpM0REZmzEiBF46qmnMGTI/b/OJRIJFi5c2E9ZERGRsbB4JyIyc4sXL+40xsLCAhEREf2QDRERGROLdyIiM/fss89i6NCOZ0FaWFggNDQUjo6O/ZgVEREZA4t3IiIzp1AoMGvWrA4LeCEEYmJi+jkrIiIyBhbvREQDQExMjMGHVgHAysoK4eHh/ZwREREZA4t3IqIBIDw8HDY2NnrtlpaWmD9/PmQymQmyIiKivsbinYhoABg2bBgiIiJgaWmp03779m0sWrTIRFkREVFfY/FORDRAPP/887h9+7ZOm0KhwNNPP22ijIiIqK+xeCciGiBmzJihszGTpaUlFi5cCCsrKxNmRUREfYnFOxHRADF06FAsXLhQ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\n", "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "keras.utils.plot_model(model, 'mini_resnet.png', show_shapes=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "ECcG87yZrxp5" }, "source": [ "Vamos a entrenarlo:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:09.657862Z", "iopub.status.busy": "2020-09-23T00:10:09.657226Z", "iopub.status.idle": "2020-09-23T00:10:19.667347Z", "shell.execute_reply": "2020-09-23T00:10:19.666735Z" }, "id": "_iXGz5XEryou" }, "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: 7:27" ] }, { "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\r", " 172032/170498071 [..............................] - ETA: 1:28" ] }, { "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\r", " 1286144/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", " 3891200/170498071 [..............................] - ETA: 8s " ] }, { "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", " 8298496/170498071 [>.............................] - 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", " 12591104/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", " 17113088/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", " 21716992/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", " 26206208/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", " 30416896/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", " 34906112/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", " 39395328/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", " 43630592/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", " 47865856/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", " 52158464/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", " 56500224/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", " 60809216/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", " 65134592/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", " 69754880/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", " 74063872/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", " 78389248/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", " 82616320/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" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 87007232/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", " 91332608/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", " 95657984/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", " 99909632/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", "104210432/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", "108421120/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", "112746496/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", "117022720/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", "121380864/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", "125689856/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", "130220032/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", "134438912/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", "138682368/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", "142991360/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", "147234816/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" ] }, { "name": "stdout", "output_type": "stream", "text": [ "151478272/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", "155721728/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", "159948800/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", "164134912/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", "168419328/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", "170500096/170498071 [==============================] - 2s 0us/step\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 1/625 [..............................] - ETA: 0s - loss: 2.3004 - acc: 0.0781" ] }, { "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\r", " 11/625 [..............................] - ETA: 2s - loss: 2.3017 - acc: 0.0952" ] }, { "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\r", " 21/625 [>.............................] - ETA: 3s - loss: 2.2895 - acc: 0.1124" ] }, { "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\r", " 32/625 [>.............................] - ETA: 2s - loss: 2.2755 - acc: 0.1255" ] }, { "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\r", " 43/625 [=>............................] - ETA: 2s - loss: 2.2607 - acc: 0.1283" ] }, { "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\r", " 53/625 [=>............................] - ETA: 2s - loss: 2.2499 - acc: 0.1315" ] }, { "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\r", " 64/625 [==>...........................] - ETA: 2s - loss: 2.2370 - acc: 0.1370" ] }, { "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\r", " 75/625 [==>...........................] - ETA: 2s - loss: 2.2232 - acc: 0.1442" ] }, { "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\r", " 87/625 [===>..........................] - ETA: 2s - loss: 2.2109 - acc: 0.1523" ] }, { "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\r", " 99/625 [===>..........................] - ETA: 2s - loss: 2.1927 - acc: 0.1600" ] }, { "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\r", "111/625 [====>.........................] - ETA: 2s - loss: 2.1800 - acc: 0.1677" ] }, { "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\r", "123/625 [====>.........................] - ETA: 2s - loss: 2.1672 - acc: 0.1702" ] }, { "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\r", "135/625 [=====>........................] - ETA: 2s - loss: 2.1574 - acc: 0.1719" ] }, { "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\r", "147/625 [======>.......................] - ETA: 2s - loss: 2.1494 - acc: 0.1754" ] }, { "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\r", "159/625 [======>.......................] - ETA: 2s - loss: 2.1428 - acc: 0.1783" ] }, { "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\r", "171/625 [=======>......................] - ETA: 2s - loss: 2.1361 - acc: 0.1819" ] }, { "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\r", "183/625 [=======>......................] - ETA: 2s - loss: 2.1282 - acc: 0.1858" ] }, { "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\r", "194/625 [========>.....................] - ETA: 2s - loss: 2.1204 - acc: 0.1891" ] }, { "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\r", "206/625 [========>.....................] - ETA: 1s - loss: 2.1124 - acc: 0.1921" ] }, { "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\r", "217/625 [=========>....................] - ETA: 1s - loss: 2.1062 - acc: 0.1946" ] }, { "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\r", "229/625 [=========>....................] - ETA: 1s - loss: 2.0976 - acc: 0.1976" ] }, { "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\r", "240/625 [==========>...................] - ETA: 1s - loss: 2.0899 - acc: 0.2001" ] }, { "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\r", "251/625 [===========>..................] - ETA: 1s - loss: 2.0841 - acc: 0.2029" ] }, { "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\r", "263/625 [===========>..................] - ETA: 1s - loss: 2.0769 - acc: 0.2066" ] }, { "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\r", "274/625 [============>.................] - ETA: 1s - loss: 2.0723 - acc: 0.2078" ] }, { "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\r", "286/625 [============>.................] - ETA: 1s - loss: 2.0624 - acc: 0.2112" ] }, { "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\r", "298/625 [=============>................] - ETA: 1s - loss: 2.0561 - acc: 0.2136" ] }, { "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\r", "310/625 [=============>................] - ETA: 1s - loss: 2.0498 - acc: 0.2164" ] }, { "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\r", "322/625 [==============>...............] - ETA: 1s - loss: 2.0432 - acc: 0.2195" ] }, { "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\r", "334/625 [===============>..............] - ETA: 1s - loss: 2.0387 - acc: 0.2209" ] }, { "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\r", "346/625 [===============>..............] - ETA: 1s - loss: 2.0324 - acc: 0.2232" ] }, { "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\r", "358/625 [================>.............] - ETA: 1s - loss: 2.0253 - acc: 0.2260" ] }, { "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\r", "369/625 [================>.............] - ETA: 1s - loss: 2.0201 - acc: 0.2286" ] }, { "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\r", "380/625 [=================>............] - ETA: 1s - loss: 2.0134 - acc: 0.2310" ] }, { "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\r", "392/625 [=================>............] - ETA: 1s - loss: 2.0048 - acc: 0.2345" ] }, { "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\r", "404/625 [==================>...........] - ETA: 1s - loss: 1.9966 - acc: 0.2371" ] }, { "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\r", "416/625 [==================>...........] - ETA: 0s - loss: 1.9890 - acc: 0.2399" ] }, { "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\r", "428/625 [===================>..........] - ETA: 0s - loss: 1.9842 - acc: 0.2423" ] }, { "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\r", "439/625 [====================>.........] - ETA: 0s - loss: 1.9771 - acc: 0.2454" ] }, { "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\r", "450/625 [====================>.........] - ETA: 0s - loss: 1.9695 - acc: 0.2480" ] }, { "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\r", "462/625 [=====================>........] - ETA: 0s - loss: 1.9643 - acc: 0.2506" ] }, { "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\r", "474/625 [=====================>........] - ETA: 0s - loss: 1.9585 - acc: 0.2535" ] }, { "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\r", "485/625 [======================>.......] - ETA: 0s - loss: 1.9517 - acc: 0.2564" ] }, { "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\r", "496/625 [======================>.......] - ETA: 0s - loss: 1.9464 - acc: 0.2584" ] }, { "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\r", "507/625 [=======================>......] - ETA: 0s - loss: 1.9413 - acc: 0.2605" ] }, { "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\r", "518/625 [=======================>......] - ETA: 0s - loss: 1.9344 - acc: 0.2633" ] }, { "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\r", "529/625 [========================>.....] - ETA: 0s - loss: 1.9293 - acc: 0.2653" ] }, { "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\r", "541/625 [========================>.....] - ETA: 0s - loss: 1.9227 - acc: 0.2676" ] }, { "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\r", "552/625 [=========================>....] - ETA: 0s - loss: 1.9193 - acc: 0.2699" ] }, { "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\r", "563/625 [==========================>...] - ETA: 0s - loss: 1.9122 - acc: 0.2729" ] }, { "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\r", "575/625 [==========================>...] - ETA: 0s - loss: 1.9064 - acc: 0.2752" ] }, { "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\r", "587/625 [===========================>..] - ETA: 0s - loss: 1.9001 - acc: 0.2781" ] }, { "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\r", "599/625 [===========================>..] - ETA: 0s - loss: 1.8957 - acc: 0.2803" ] }, { "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\r", "610/625 [============================>.] - ETA: 0s - loss: 1.8906 - acc: 0.2824" ] }, { "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\r", "622/625 [============================>.] - ETA: 0s - loss: 1.8859 - acc: 0.2836" ] }, { "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\r", "625/625 [==============================] - 4s 6ms/step - loss: 1.8840 - acc: 0.2842 - val_loss: 1.5108 - val_acc: 0.4309\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()\n", "x_train = x_train.astype('float32') / 255.\n", "x_test = x_test.astype('float32') / 255.\n", "y_train = keras.utils.to_categorical(y_train, 10)\n", "y_test = keras.utils.to_categorical(y_test, 10)\n", "\n", "model.compile(optimizer=keras.optimizers.RMSprop(1e-3),\n", " loss='categorical_crossentropy',\n", " metrics=['acc'])\n", "model.fit(x_train, y_train,\n", " batch_size=64,\n", " epochs=1,\n", " validation_split=0.2)" ] }, { "cell_type": "markdown", "metadata": { "id": "XQfg0JUkr7SH" }, "source": [ "## Compartir capas\n", "\n", "Otro buen uso de la API funcional son los modelos que usan capas compartidas. Las capas compartidas son instancias de capa que se reutilizan varias veces en un mismo modelo: aprenden características que corresponden a múltiples rutas en el gráfico de capas.\n", "\n", "Las capas compartidas a menudo se usan para codificar entradas que provienen de espacios similares (por ejemplo, dos piezas de texto diferentes que presentan un vocabulario similar), ya que permiten compartir información entre estas diferentes entradas y hacen posible entrenar un modelo de este tipo en menos datos. Si se ve una palabra determinada en una de las entradas, eso beneficiará el procesamiento de todas las entradas que pasan por la capa compartida.\n", "\n", "Para compartir una capa en la API funcional, simplemente llame a la misma instancia de capa varias veces. Por ejemplo, aquí hay una capa `Ingresa (del ingles Embedding)` compartida entre dos entradas de texto diferentes:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:19.677870Z", "iopub.status.busy": "2020-09-23T00:10:19.677220Z", "iopub.status.idle": "2020-09-23T00:10:19.685621Z", "shell.execute_reply": "2020-09-23T00:10:19.685127Z" }, "id": "R9pAPQCnKuMR" }, "outputs": [], "source": [ "# Ingreso de 1000 palabras únicas asignadas a vectores de 128 dimensiones\n", "shared_embedding = layers.Embedding(1000, 128)\n", "\n", "# Secuencia de longitud variable de enteros\n", "text_input_a = keras.Input(shape=(None,), dtype='int32')\n", "\n", "# Secuencia de longitud variable de enteros\n", "text_input_b = keras.Input(shape=(None,), dtype='int32')\n", "\n", "# Reutilizamos la misma capa para codificar ambas entradas\n", "encoded_input_a = shared_embedding(text_input_a)\n", "encoded_input_b = shared_embedding(text_input_b)" ] }, { "cell_type": "markdown", "metadata": { "id": "xNEKvfUpr-Kf" }, "source": [ "## Extracción y reutilización de nodos en el gráfico de capas" ] }, { "cell_type": "markdown", "metadata": { "id": "JHVGI6bEr-ze" }, "source": [ "Debido a que el gráfico de capas que está manipulando en la API funcional es una estructura de datos estática, se puede acceder e inspeccionarlo. Así es como podemos trazar modelos funcionales como imágenes, por ejemplo.\n", "\n", "Esto también significa que podemos acceder a las activaciones de capas intermedias (\"nodos\" en el gráfico) y reutilizarlas en otros lugares. ¡Esto es extremadamente útil para la extracción de características, por ejemplo!\n", "\n", "Veamos un ejemplo. Este es un modelo VGG19 con pesas pre-entrenadas en ImageNet:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:19.694329Z", "iopub.status.busy": "2020-09-23T00:10:19.693609Z", "iopub.status.idle": "2020-09-23T00:10:22.847224Z", "shell.execute_reply": "2020-09-23T00:10:22.847755Z" }, "id": "c-gl3xHBH-oX" }, "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: 10s" ] }, { "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", " 4202496/574710816 [..............................] - ETA: 8s " ] }, { "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", " 9912320/574710816 [..............................] - 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", " 15589376/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", " 21274624/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", " 26951680/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", " 32636928/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", " 38322176/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", " 44007424/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", " 51765248/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", " 66994176/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", " 82411520/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", " 98189312/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", "113999872/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" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "129384448/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", "144482304/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", "160022528/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", "175538176/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", "191184896/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", "206635008/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", "222232576/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", "237838336/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", "253468672/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", "269164544/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", "284729344/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", "299679744/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", "315154432/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", "330809344/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", "346341376/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", "361873408/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", "377323520/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", "392798208/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", "407748608/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", "423182336/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", "438755328/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", "454057984/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", "469516288/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", "484794368/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", "499900416/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", "515227648/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", "530685952/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", "546127872/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", "560963584/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", "574717952/574710816 [==============================] - 2s 0us/step\n" ] } ], "source": [ "from tensorflow.keras.applications import VGG19\n", "\n", "vgg19 = VGG19()" ] }, { "cell_type": "markdown", "metadata": { "id": "AKefin_xIGBP" }, "source": [ "Y estas son las activaciones intermedias del modelo, obtenidas al consultar la estructura de datos del gráfico:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:22.852472Z", "iopub.status.busy": "2020-09-23T00:10:22.851841Z", "iopub.status.idle": "2020-09-23T00:10:22.853935Z", "shell.execute_reply": "2020-09-23T00:10:22.854364Z" }, "id": "1_Ap05fgIRgE" }, "outputs": [], "source": [ "features_list = [layer.output for layer in vgg19.layers]" ] }, { "cell_type": "markdown", "metadata": { "id": "H1zx5qM7IYu4" }, "source": [ "Podemos usar estas características para crear un nuevo modelo de extracción de características, que devuelve los valores de las activaciones de la capa intermedia, y podemos hacer todo esto en 3 líneas." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:22.860719Z", "iopub.status.busy": "2020-09-23T00:10:22.859954Z", "iopub.status.idle": "2020-09-23T00:10:22.985173Z", "shell.execute_reply": "2020-09-23T00:10:22.984523Z" }, "id": "NrU82Pa8Igwo" }, "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": "G-e2-jNCLIqy" }, "source": [ "Esto es útil cuando [implementa la transferencia de estilo neural] (https://medium.com/tensorflow/neural-style-transfer-creating-art-with-deep-learning-using-tf-keras-and-eager-execution- 7d541ac31398), entre otras cosas." ] }, { "cell_type": "markdown", "metadata": { "id": "t9M2Uvi3sBy0" }, "source": [ "## Extendiendo la API escribiendo capas personalizadas\n", "\n", "tf.keras tiene una amplia gama de capas incorporadas. Aquí están algunos ejemplos:\n", "\n", "- Capas convolucionales: `Conv1D`,` Conv2D`, `Conv3D`,` Conv2DTranspose`, etc.\n", "- Capas de agrupación: `MaxPooling1D`,` MaxPooling2D`, `MaxPooling3D`,` AveragePooling1D`, etc.\n", "- Capas RNN: `GRU`,` LSTM`, `ConvLSTM2D`, etc.\n", "- `BatchNormalization`,` Dropout`, `Embedded`, etc.\n", "\n", "Si no encuentras lo que necesitas, es fácil extender la API creando tus propias capas.\n", "\n", "Todas las capas subclasifican la clase `Layer` e implementan:\n", "- Un método `call`, que especifica el cálculo realizado por la capa.\n", "- Un método `build`, que crea los pesos de la capa (tenga en cuenta que esto es solo una convención de estilo; también puede crear pesos en` __init__`).\n", "\n", "Para obtener más información sobre cómo crear capas desde cero, consulta la guía [Guía para escribir capas y modelos desde cero](./custom_layers_and_models.ipynb).\n", "\n", "Aquí hay una implementación simple de una capa `Densa`:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:22.996498Z", "iopub.status.busy": "2020-09-23T00:10:22.995826Z", "iopub.status.idle": "2020-09-23T00:10:23.045094Z", "shell.execute_reply": "2020-09-23T00:10:23.045514Z" }, "id": "ztAmarbgNV6V" }, "outputs": [], "source": [ "class CustomDense(layers.Layer):\n", "\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(shape=(input_shape[-1], self.units),\n", " initializer='random_normal',\n", " trainable=True)\n", " self.b = self.add_weight(shape=(self.units,),\n", " initializer='random_normal',\n", " trainable=True)\n", "\n", " def call(self, inputs):\n", " return tf.matmul(inputs, self.w) + self.b\n", "\n", "inputs = keras.Input((4,))\n", "outputs = CustomDense(10)(inputs)\n", "\n", "model = keras.Model(inputs, outputs)" ] }, { "cell_type": "markdown", "metadata": { "id": "NXxp_32bNWTy" }, "source": [ "Si deseas que tu capa personalizada admita la serialización, también debes definir un método `get_config`,\n", "que devuelve los argumentos del constructor de la instancia de capa:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:23.056107Z", "iopub.status.busy": "2020-09-23T00:10:23.055279Z", "iopub.status.idle": "2020-09-23T00:10:23.081379Z", "shell.execute_reply": "2020-09-23T00:10:23.080832Z" }, "id": "K3OQ4XxzNfAZ" }, "outputs": [], "source": [ "class CustomDense(layers.Layer):\n", "\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(shape=(input_shape[-1], self.units),\n", " initializer='random_normal',\n", " trainable=True)\n", " self.b = self.add_weight(shape=(self.units,),\n", " initializer='random_normal',\n", " trainable=True)\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(\n", " config, custom_objects={'CustomDense': CustomDense})" ] }, { "cell_type": "markdown", "metadata": { "id": "kXg6hZN_NfN8" }, "source": [ "Opcionalmente, también podría implementar el método de clase `from_config (cls, config)`, que se encarga de recrear una instancia de capa dado su diccionario de configuración. La implementación predeterminada de `from_config` es:\n", "\n", "```python\n", "def from_config(cls, config):\n", " return cls(**config)\n", "```" ] }, { "cell_type": "markdown", "metadata": { "id": "ifOVqn84sCNU" }, "source": [ "## Cuándo usar la API funcional\n", "\n", "¿Cómo decidir si usar la API funcional para crear un nuevo modelo o simplemente subclasificar la clase `Modelo` directamente?\n", "\n", "En general, la API funcional es de nivel superior, más fácil y segura de usar, y tiene una serie de características que los modelos de subclases no admiten.\n", "\n", "Sin embargo, la subclasificación de modelos le brinda una mayor flexibilidad al crear modelos que no se pueden expresar fácilmente como gráficos acíclicos dirigidos de capas (por ejemplo, no podría implementar un Tree-RNN con la API funcional, tendría que subclasificar `Model` directamente).\n", "\n", "\n", "### Estas son las fortalezas de la API funcional:\n", "\n", "Las propiedades enumeradas a continuación también son ciertas para los modelos secuenciales (que también son estructuras de datos), pero no son ciertas para los modelos subclasificados (que son bytecode de Python, no estructuras de datos).\n", "\n", "\n", "#### Es menos detallado.\n", "\n", "No ` super (MyClass, self) .__ init __ (...)`, no `def call (self, ...): `, etc.\n", "\n", "Comparar:\n", "\n", "```pitón\n", "input = keras.Input (shape = (32,))\n", "x = capas. Denso (64, activación = 'relu') (entradas)\n", "salidas = capas. Denso (10) (x)\n", "mlp = keras.Model (entradas, salidas)\n", "```\n", "\n", "Con la versión subclaseada:\n", "\n", "```pitón\n", "clase MLP (keras.Model):\n", "\n", "  def __init __ (self, ** kwargs):\n", "    super (MLP, self) .__ init __ (** kwargs)\n", "    self.dense_1 = capas.Dense (64, activación = 'relu')\n", "    self.dense_2 = layers.Dense (10)\n", "\n", "  llamada def (auto, entradas):\n", "    x = self.dense_1 (entradas)\n", "    return self.dense_2 (x)\n", "\n", "# Instanciar el modelo.\n", "mlp = MLP ()\n", "# Necesario para crear el estado del modelo.\n", "# El modelo no tiene un estado hasta que se llama al menos una vez.\n", "_ = mlp (tf.zeros ((1, 32)))\n", "```\n", "\n", "\n", "#### Valida su modelo mientras lo está definiendo.\n", "\n", "En la API funcional, su especificación de entrada (forma y dtype) se crea de antemano (a través de `Input`), y cada vez que llama a una capa, la capa comprueba que la especificación que se le pasa coincide con sus supuestos, y generará un mensaje de error útil si no.\n", "\n", "Esto garantiza que se ejecutará cualquier modelo que pueda construir con la API funcional. Toda la depuración (que no sea la depuración relacionada con la convergencia) ocurrirá estáticamente durante la construcción del modelo, y no en el momento de la ejecución. Esto es similar a la comprobación de tipo en un compilador.\n", "\n", "\n", "#### Tu modelo funcional es trazable e inspeccionable.\n", "\n", "Puedes trazar el modelo como un gráfico, y puedes acceder fácilmente a los nodos intermedios en este gráfico, por ejemplo, para extraer y reutilizar las activaciones de las capas intermedias, como vimos en un ejemplo anterior:\n", "\n", "```pitón\n", "features_list = [layer.output para la capa en vgg19.layers]\n", "feat_extraction_model = keras.Model (input = vgg19.input, salidas = features_list)\n", "```\n", "\n", "\n", "#### Su modelo funcional puede ser serializado o clonado.\n", "\n", "Debido a que un modelo funcional es una estructura de datos en lugar de un fragmento de código, es serializable de forma segura y se puede guardar como un único archivo que le permite recrear exactamente el mismo modelo sin tener acceso a ninguno de los códigos originales. Consulta nuestra [guía de guardado y serialización] (./save_and_serialize.ipynb) para obtener más detalles.\n", "\n", "\n", "### Estas son las debilidades de la API funcional:\n", "\n", "\n", "#### No admite arquitecturas dinámicas.\n", "\n", "La API funcional trata los modelos como DAG de capas. Esto es cierto para la mayoría de las arquitecturas de aprendizaje profundo, pero no para todas: por ejemplo, las redes recursivas o los RNN de árbol no siguen este supuesto y no se pueden implementar en la API funcional.\n", "\n", "\n", "#### A veces, solo necesitas escribir todo desde cero.\n", "\n", "Al escribir actividades avanzadas, es posible que desee hacer cosas que están fuera del alcance de \"definir un DAG de capas\": por ejemplo, es posible que desee exponer múltiples métodos personalizados de entrenamiento e inferencia en su instancia de modelo. Esto requiere subclases.\n", "\n", "\n", "---\n", "\n", "\n", "Para profundizar más en las diferencias entre la API funcional y la subclasificación de modelos, puede leer [¿Qué son las API simbólicas e imperativas en TensorFlow 2.0?] (Https://medium.com/tensorflow/what-are-symbolic-and -imperative-apis-in-tensorflow-2-0-dfccecb01021)." ] }, { "cell_type": "markdown", "metadata": { "id": "Ym1jrCqusGvj" }, "source": [ "## Mezcla y combina diferentes estilos de API\n", "\n", "Es importante destacar que elegir entre la subclasificación de API funcional o modelo no es una decisión binaria que lo restringe a una categoría de modelos. Todos los modelos en la API tf.keras pueden interactuar con cada uno, ya sean modelos secuenciales, modelos funcionales o modelos / capas subclasificados escritos desde cero.\n", "\n", "Siempre puede usar un modelo funcional o modelo secuencial como parte de un modelo / capa subclasificado:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:23.092877Z", "iopub.status.busy": "2020-09-23T00:10:23.089749Z", "iopub.status.idle": "2020-09-23T00:10:23.128190Z", "shell.execute_reply": "2020-09-23T00:10:23.128652Z" }, "id": "9zF5YTLy_vGZ" }, "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, activation='sigmoid')(x)\n", "model = keras.Model(inputs, outputs)\n", "\n", "\n", "class CustomRNN(layers.Layer):\n", "\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", "rnn_model = CustomRNN()\n", "_ = rnn_model(tf.zeros((1, timesteps, input_dim)))" ] }, { "cell_type": "markdown", "metadata": { "id": "oxW1d0a8_ufg" }, "source": [ "Inversamente, puede usar cualquier Capa o Modelo subclasificado en la API Funcional siempre que implemente un método `call` que siga uno de los siguientes patrones:\n", "\n", "- `call (self, input, ** kwargs)` donde `input` es un tensor o una estructura anidada de tensores (por ejemplo, una lista de tensores), y donde` ** kwargs` son argumentos no tensoriales (no input )\n", "- `call (self, input, training = None, ** kwargs)` donde `training` es un valor booleano que indica si la capa debe comportarse en modo de entrenamiento y modo de inferencia.\n", "- `call (self, input, mask = None, ** kwargs)` donde `mask` es un tensor de máscara booleano (útil para RNN, por ejemplo).\n", "- `call (self, input, training = None, mask = None, ** kwargs)` - por supuesto, puede tener tanto un comportamiento específico de enmascaramiento como de entrenamiento al mismo tiempo.\n", "\n", "Además, si implementa el método `get_config` en su Capa o Modelo personalizado, los modelos funcionales que cree con él seguirán siendo serializables y clonables.\n", "\n", "Aquí hay un ejemplo rápido en el que usamos un RNN personalizado escrito desde cero en un modelo funcional:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "execution": { "iopub.execute_input": "2020-09-23T00:10:23.142078Z", "iopub.status.busy": "2020-09-23T00:10:23.138693Z", "iopub.status.idle": "2020-09-23T00:10:23.329023Z", "shell.execute_reply": "2020-09-23T00:10:23.329479Z" }, "id": "TmTEZ6F3ArJR" }, "outputs": [], "source": [ "units = 32\n", "timesteps = 10\n", "input_dim = 5\n", "batch_size = 16\n", "\n", "\n", "class CustomRNN(layers.Layer):\n", "\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, activation='sigmoid')\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", "# Tenga en cuenta que especificamos un tamaño de lote estático para las entradas con `batch_shape`\n", "# arg, porque el cálculo interno de `CustomRNN` requiere un tamaño de lote estático\n", "# (cuando creamos el tensor de ceros `estado`).\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)))" ] }, { "cell_type": "markdown", "metadata": { "id": "6VxcYb4qArlb" }, "source": [ "¡Esto concluye nuestra guía sobre la API funcional \"Keras\"!\n", "\n", "Ahora tienes a tu alcance un poderoso conjunto de herramientas para construir modelos de aprendizaje profundo." ] } ], "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.6.9" } }, "nbformat": 4, "nbformat_minor": 0 }