From fadd2099fe621523be432415b0272aac39b9b0af Mon Sep 17 00:00:00 2001
From: Prograris <85402378+arisangulo2017@users.noreply.github.com>
Date: Wed, 16 Oct 2024 18:20:06 -0500
Subject: [PATCH] Creado con Colab Miprimera red neuronal con Ringo Tech

---
 ...i_primera_red_neuronal_con_RingoTech.ipynb | 245 ++++++++++++++++++
 1 file changed, 245 insertions(+)
 create mode 100644 Copia_de_Mi_primera_red_neuronal_con_RingoTech.ipynb

diff --git a/Copia_de_Mi_primera_red_neuronal_con_RingoTech.ipynb b/Copia_de_Mi_primera_red_neuronal_con_RingoTech.ipynb
new file mode 100644
index 0000000..d492e45
--- /dev/null
+++ b/Copia_de_Mi_primera_red_neuronal_con_RingoTech.ipynb
@@ -0,0 +1,245 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "provenance": [],
+      "authorship_tag": "ABX9TyNI9d+C1iO3JFDKtX4i/AKy",
+      "include_colab_link": true
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "metadata": {
+        "id": "view-in-github",
+        "colab_type": "text"
+      },
+      "source": [
+        "<a href=\"https://colab.research.google.com/github/arisangulo2017/Hello-Python/blob/main/Copia_de_Mi_primera_red_neuronal_con_RingoTech.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "IxYoZRP8ec-c"
+      },
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "import tensorflow as tf\n",
+        "import numpy as np"
+      ],
+      "metadata": {
+        "id": "hk24TXgveliQ"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "celsius =np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)\n",
+        "fahrenhiet = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)"
+      ],
+      "metadata": {
+        "id": "VQ7buwX4fAOe"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "#capa = tf.keras.layers.Dense(units=1, input_shape=[1])\n",
+        "#modelo = tf.keras.Sequential([capa])\n",
+        "\n",
+        "oculta1 = tf.keras.layers.Dense(units=3, input_shape=[1])\n",
+        "oculta2 = tf.keras.layers.Dense(units=3)\n",
+        "salida = tf.keras.layers.Dense(units=1)\n",
+        "modelo = tf.keras.Sequential([oculta1, oculta2, salida])"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "gXpX0Bgsf0mJ",
+        "outputId": "af2170fe-b9fc-450e-a5a8-7af34130911f"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "/usr/local/lib/python3.10/dist-packages/keras/src/layers/core/dense.py:87: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
+            "  super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "modelo.compile(\n",
+        "    optimizer=tf.keras.optimizers.Adam(0.1),\n",
+        "    loss='mean_squared_error'  # Changed 'mean_square_error' to 'mean_squared_error'\n",
+        ")"
+      ],
+      "metadata": {
+        "id": "irHWAnw-gdFS"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "print(\"Comenzando entrenamiento...\")\n",
+        "historial = modelo.fit(celsius, fahrenhiet, epochs=1000, verbose=False)\n",
+        "print(\"Modelo encontrado!\")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "gMoP9j02hKVL",
+        "outputId": "c229bbcc-b2a1-406d-d1a1-8bc25dc02fab"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Comenzando entrenamiento...\n",
+            "Modelo encontrado!\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "import matplotlib.pyplot as plt\n",
+        "plt.xlabel(\"# Epoca\")\n",
+        "plt.ylabel(\"Magnitud de pérdida\")\n",
+        "plt.plot(historial.history[\"loss\"])"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 466
+        },
+        "id": "TpTkFEn6jYQD",
+        "outputId": "d0e2f082-950d-478f-df8b-68ec63d0df6c"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "[<matplotlib.lines.Line2D at 0x7d5a014d98d0>]"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 19
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "<Figure size 640x480 with 1 Axes>"
+            ],
+            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFFklEQVR4nO3deXxU1f3/8fdMdhImYTEJkQSCWCBsIiBGAWuJRMzXgvJrXRBRsH7RoCxWlFbRggpFRXABpFbRryhKXVkEYxCoEFkiEQiLWqhBIUHBZAAh6/39gXNhADUDk5yEeT0fj3k0c+/Jnc+9eci8e+459zgsy7IEAAAQwJymCwAAADCNQAQAAAIegQgAAAQ8AhEAAAh4BCIAABDwCEQAACDgEYgAAEDACzZdQH1RVVWl3bt3q2HDhnI4HKbLAQAA1WBZlg4cOKCEhAQ5nT/fD0Qgqqbdu3crMTHRdBkAAOA07Nq1S82bN//Z/QSiamrYsKGkoxfU5XIZrgYAAFSH2+1WYmKi/T3+cwhE1eS5TeZyuQhEAADUM7823IVB1QAAIOARiAAAQMAjEAEAgIBHIAIAAAGPQAQAAAIegQgAAAQ8AhEAAAh4BCIAABDwCEQAACDgEYgAAEDAIxABAICARyACAAABj8VdDSv+sUwHSyvUMDxE0REhpssBACAgGe8h+vbbb3XTTTepSZMmioiIUMeOHbV+/Xp7v2VZGj9+vJo1a6aIiAilpaXpyy+/9DrG/v37NWjQILlcLsXExGjYsGE6ePCgV5uNGzeqV69eCg8PV2JioqZMmVIr5/dr/r5ku3r+/WO9vPq/pksBACBgGQ1EP/zwgy699FKFhITogw8+0JYtW/Tkk0+qUaNGdpspU6bo6aef1qxZs7RmzRpFRkYqPT1dR44csdsMGjRI+fn5ysrK0sKFC7Vy5Urdfvvt9n63262+ffuqRYsWys3N1eOPP66HH35Ys2fPrtXzPRWH4+j/WpbZOgAACGRGb5n9/e9/V2Jiol566SV7W3Jysv2zZVmaNm2aHnjgAfXv31+S9MorryguLk7vvvuurr/+em3dulVLlizRunXr1K1bN0nSM888o6uuukpPPPGEEhISNHfuXJWVlenFF19UaGio2rdvr7y8PE2dOtUrOB2vtLRUpaWl9nu3210Tl0BOTyASiQgAAFOM9hC9//776tatm/7whz8oNjZWXbp00T/+8Q97/86dO1VYWKi0tDR7W3R0tHr06KGcnBxJUk5OjmJiYuwwJElpaWlyOp1as2aN3aZ3794KDQ2126Snp2v79u364YcfTlnbpEmTFB0dbb8SExP9eu4eDh1NRFXkIQAAjDEaiHbs2KGZM2fq/PPP19KlS3XHHXfo7rvv1ssvvyxJKiwslCTFxcV5/V5cXJy9r7CwULGxsV77g4OD1bhxY682pzrG8Z9xonHjxqmkpMR+7dq16wzP9tQ8PUTcMwMAwByjt8yqqqrUrVs3PfbYY5KkLl26aPPmzZo1a5aGDBlisjSFhYUpLCysxj/H4aCHCAAA04z2EDVr1kwpKSle29q1a6eCggJJUnx8vCSpqKjIq01RUZG9Lz4+Xnv37vXaX1FRof3793u1OdUxjv8MUxyMIQIAwDijgejSSy/V9u3bvbZ98cUXatGihaSjA6zj4+OVnZ1t73e73VqzZo1SU1MlSampqSouLlZubq7dZtmyZaqqqlKPHj3sNitXrlR5ebndJisrS23atPGa0WYCY4gAADDPaCAaPXq0Pv30Uz322GP66quv9Nprr2n27NnKzMyUdPR20qhRo/TII4/o/fff16ZNm3TzzTcrISFBAwYMkHS0R+nKK6/Un/70J61du1arVq3SiBEjdP311yshIUGSdOONNyo0NFTDhg1Tfn6+3njjDU2fPl1jxowxdeo2pt0DAGCe0TFE3bt31zvvvKNx48ZpwoQJSk5O1rRp0zRo0CC7zdixY3Xo0CHdfvvtKi4uVs+ePbVkyRKFh4fbbebOnasRI0aoT58+cjqdGjhwoJ5++ml7f3R0tD788ENlZmaqa9euatq0qcaPH/+zU+5rE9PuAQAwz2FZ9E1Uh9vtVnR0tEpKSuRyufx23McWb9XslTt0e+9W+stV7fx2XAAAUP3vb+NLdwS6Y7fMyKUAAJhCIDKMQdUAAJhHIDKMQdUAAJhHIDKMQdUAAJhHIDLMc8uMHiIAAMwhEBnmZFA1AADGEYhMYy0zAACMIxAZZi92zxgiAACMIRAZ5nQwhggAANMIRIZ5pt1zywwAAHMIRIZ5BlWLW2YAABhDIDLM4RlUXWW4EAAAAhiByDAHD2YEAMA4ApFhrGUGAIB5BCLDWMsMAADzCESGsZYZAADmEYgMYy0zAADMIxAZ5mAtMwAAjCMQGeZgLTMAAIwjEBl2bC0zAABgCoHIMCe3zAAAMI5AZJiDxV0BADCOQGQY0+4BADCPQGQaa5kBAGAcgciwY4Oq6SECAMAUApFhTsYQAQBgHIHIMM+DGXkOEQAA5hCIDPMMquZJRAAAmEMgMsyzlhk9RAAAmEMgMoy1zAAAMI9AZBhrmQEAYB6ByDDWMgMAwDwCkWHOn/4C3DIDAMAcApFhnkHV5CEAAMwhEBnmYC0zAACMIxAZ5mAtMwAAjCMQGcZaZgAAmEcgMoy1zAAAMI9AZNixBzOarQMAgEBGIDLMyaBqAACMIxAZx5OqAQAwjUBkGGuZAQBgHoHIMHtQteE6AAAIZAQiwzzT7rllBgCAOUYD0cMPPyyHw+H1atu2rb3/yJEjyszMVJMmTRQVFaWBAweqqKjI6xgFBQXKyMhQgwYNFBsbq3vvvVcVFRVebZYvX64LL7xQYWFhat26tebMmVMbp1ctnrXMmGYGAIA5xnuI2rdvrz179tivTz75xN43evRoLViwQPPnz9eKFSu0e/duXXvttfb+yspKZWRkqKysTKtXr9bLL7+sOXPmaPz48XabnTt3KiMjQ5dffrny8vI0atQo3XbbbVq6dGmtnufPcTCoGgAA44KNFxAcrPj4+JO2l5SU6J///Kdee+01/e53v5MkvfTSS2rXrp0+/fRTXXzxxfrwww+1ZcsWffTRR4qLi9MFF1ygiRMn6r777tPDDz+s0NBQzZo1S8nJyXryySclSe3atdMnn3yip556Sunp6bV6rqfCWmYAAJhnvIfoyy+/VEJCglq1aqVBgwapoKBAkpSbm6vy8nKlpaXZbdu2baukpCTl5ORIknJyctSxY0fFxcXZbdLT0+V2u5Wfn2+3Of4YnjaeY/yc0tJSud1ur1dNYC0zAADMMxqIevTooTlz5mjJkiWaOXOmdu7cqV69eunAgQMqLCxUaGioYmJivH4nLi5OhYWFkqTCwkKvMOTZ79n3S23cbrcOHz78s7VNmjRJ0dHR9isxMfFMT/eUjq1lBgAATDF6y6xfv372z506dVKPHj3UokULvfnmm4qIiDBYmTRu3DiNGTPGfu92u2skFB1by4xIBACAKcZvmR0vJiZGv/nNb/TVV18pPj5eZWVlKi4u9mpTVFRkjzmKj48/adaZ5/2vtXG5XL8YusLCwuRyubxeNYG1zAAAMK9OBaKDBw/qP//5j5o1a6auXbsqJCRE2dnZ9v7t27eroKBAqampkqTU1FRt2rRJe/futdtkZWXJ5XIpJSXFbnP8MTxtPMcwjUHVAACYZzQQ/fnPf9aKFSv03//+V6tXr9Y111yjoKAg3XDDDYqOjtawYcM0ZswYffzxx8rNzdWtt96q1NRUXXzxxZKkvn37KiUlRYMHD9bnn3+upUuX6oEHHlBmZqbCwsIkScOHD9eOHTs0duxYbdu2TTNmzNCbb76p0aNHmzx1G9PuAQAwz+gYom+++UY33HCD9u3bp3POOUc9e/bUp59+qnPOOUeS9NRTT8npdGrgwIEqLS1Venq6ZsyYYf9+UFCQFi5cqDvuuEOpqamKjIzUkCFDNGHCBLtNcnKyFi1apNGjR2v69Olq3ry5XnjhhTox5V5iLTMAAOoCh8U3cbW43W5FR0erpKTEr+OJ1u7crz8+n6NW50Rq2T2/9dtxAQBA9b+/69QYokDEoGoAAMwjEBnm5JYZAADGEYiMY1A1AACmEYgMY9o9AADmEYgMO/akasOFAAAQwAhEhtlrmRGIAAAwhkBkGGuZAQBgHoHIMM8YIgZVAwBgDoHIMAZVAwBgHoHIMNYyAwDAPAKRYTypGgAA8whEhnkGVYtbZgAAGEMgMoxB1QAAmEcgMoy1zAAAMI9AZByDqgEAMI1AZJiDHiIAAIwjEBnGWmYAAJhHIDLMaQ+qJhEBAGAKgcgwTw8RY4gAADCHQGSY0+kJRCQiAABMIRAZxi0zAADMIxAZFsQtMwAAjCMQGeb4KRBVkogAADCGQGRYkOeemXgWEQAAphCIDDsuD9FLBACAIQQiwxyOY4mIPAQAgBkEIsOOv2XGTDMAAMwgEBl2/C0zAhEAAGYQiAxzcssMAADjCESGHR+IGFQNAIAZBCLDmHYPAIB5BCLDmHYPAIB5BCLDmHYPAIB5waf7iz/++KMKCgpUVlbmtb1Tp05nXFSgCXI6VFllccsMAABDfA5E3333nW699VZ98MEHp9xfWVl5xkUFGqdDqpRUSSACAMAIn2+ZjRo1SsXFxVqzZo0iIiK0ZMkSvfzyyzr//PP1/vvv10SNZz0nK94DAGCUzz1Ey5Yt03vvvadu3brJ6XSqRYsWuuKKK+RyuTRp0iRlZGTURJ1nNTsQkYgAADDC5x6iQ4cOKTY2VpLUqFEjfffdd5Kkjh076rPPPvNvdQHCM/WeJ1UDAGCGz4GoTZs22r59uySpc+fOev755/Xtt99q1qxZatasmd8LDASeiWZMuwcAwAyfb5mNHDlSe/bskSQ99NBDuvLKKzV37lyFhoZqzpw5/q4vIDCGCAAAs3wORDfddJP9c9euXfX1119r27ZtSkpKUtOmTf1aXKDw3DJj2j0AAGac9nOIPBo0aKALL7zQH7UELM/Tqpl2DwCAGdUKRGPGjKn2AadOnXraxQSqY7PMDBcCAECAqlYg2rBhg9f7zz77TBUVFWrTpo0k6YsvvlBQUJC6du3q/woDwLExRPQQAQBgQrUC0ccff2z/PHXqVDVs2FAvv/yyGjVqJEn64YcfdOutt6pXr141U+VZjmn3AACY5fO0+yeffFKTJk2yw5B09HlEjzzyiJ588skzKmby5MlyOBwaNWqUve3IkSPKzMxUkyZNFBUVpYEDB6qoqMjr9woKCpSRkaEGDRooNjZW9957ryoqKrzaLF++XBdeeKHCwsLUunXrOjUjjmn3AACY5XMgcrvd9sMYj/fdd9/pwIEDp13IunXr9Pzzz5+0OOzo0aO1YMECzZ8/XytWrNDu3bt17bXX2vsrKyuVkZGhsrIyrV69Wi+//LLmzJmj8ePH22127typjIwMXX755crLy9OoUaN02223aenSpaddrz8d6yEyXAgAAIHK8tHgwYOtli1bWm+99Za1a9cua9euXda//vUvKzk52br55pt9PZxlWZZ14MAB6/zzz7eysrKsyy67zBo5cqRlWZZVXFxshYSEWPPnz7fbbt261ZJk5eTkWJZlWYsXL7acTqdVWFhot5k5c6blcrms0tJSy7Isa+zYsVb79u29PvO6666z0tPTf7amI0eOWCUlJfZr165dliSrpKTktM7xl/z28Y+tFvcttNbt3Of3YwMAEMhKSkqq9f3tcw/RrFmz1K9fP914441q0aKFWrRooRtvvFFXXnmlZsyYcVqhLDMzUxkZGUpLS/Panpubq/Lycq/tbdu2VVJSknJyciRJOTk56tixo+Li4uw26enpcrvdys/Pt9uceOz09HT7GKcyadIkRUdH26/ExMTTOrfq4JYZAABm+fwcogYNGmjGjBl6/PHH9Z///EeSdN555ykyMvK0Cpg3b54+++wzrVu37qR9hYWFCg0NVUxMjNf2uLg4FRYW2m2OD0Oe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UevXr7f3W5al8ePHq1mzZoqIiFBaWpq+/PJLr2Ps379fgwYNksvlUkxMjIYNG6aDBw/W9qnUWZWVlXrwwQeVnJysiIgInXfeeZo4caLXWldc59OzcuVKXX311UpISJDD4dC7777rtd9f13Xjxo3q1auXwsPDlZiYqClTppx58RaMmTdvnhUaGmq9+OKLVn5+vvWnP/3JiomJsYqKikyXVm+kp6dbL730krV582YrLy/Puuqqq6ykpCTr4MGDdpvhw4dbiYmJVnZ2trV+/Xrr4osvti655BJ7f0VFhdWhQwcrLS3N2rBhg7V48WKradOm1rhx40ycUp23du1aq2XLllanTp2skSNH2tu5zmdu//79VosWLaxbbrnFWrNmjbVjxw5r6dKl1ldffWW3mTx5shUdHW29++671ueff279/ve/t5KTk63Dhw/bba688kqrc+fO1qeffmr9+9//tlq3bm3dcMMNJk6pTnr00UetJk2aWAsXLrR27txpzZ8/34qKirKmT59ut+E6n57Fixdbf/3rX623337bkmS98847Xvv9cV1LSkqsuLg4a9CgQdbmzZut119/3YqIiLCef/75M6qdQGTQRRddZGVmZtrvKysrrYSEBGvSpEkGq6rf9u7da0myVqxYYVmWZRUXF1shISHW/Pnz7TZbt261JFk5OTmWZR39D9jpdFqFhYV2m5kzZ1oul8sqLS2t3ROo4w4cOGCdf/75VlZWlnXZZZfZgYjr7B/33Xef1bNnz5/dX1VVZcXHx1uPP/64va24uNgKCwuzXn/9dcuyLGvLli2WJGvdunV2mw8++MByOBzWt99+W3PF1yMZGRnW0KFDvbZde+211qBBgyzL4jr7y4mByF/XdcaMGVajRo28/t247777rDZt2pxRvdwyM6SsrEy5ublKS0uztzmdTqWlpSknJ8dgZfVbSUmJJKlx48aSpNzcXJWXl3td57Zt2yopKcm+zjk5OerYsaPi4uLsNunp6XK73crPz6/F6uu+zMxMZWRkeF1PievsL++//766deumP/zhD4qNjVWXLl30j3/8w96/c+dOFRYWel3n6Oho9ejRw+s6x8TEqFu3bnabtLQ0OZ1OrVmzpvZOpg675JJLlJ2drS+++EKS9Pnnn+uTTz5Rv379JHGda4q/rmtOTo569+6t0NBQu016erq2b9+uH3744bTrY3FXQ77//ntVVlZ6fTlIUlxcnLZt22aoqvqtqqpKo0aN0qWXXqoOHTpIkgoLCxUaGqqYmBivtnFxcSosLLTbnOrv4NmHo+bNm6fPPvtM69atO2kf19k/duzYoZkzZ2rMmDH6y1/+onXr1unuu+9WaGiohgwZYl+nU13H469zbGys1/7g4GA1btyY6/yT+++/X263W23btlVQUJAqKyv16KOPatCgQZLEda4h/rquhYWFSk5OPukYnn2NGjU6rfoIRDhrZGZmavPmzfrkk09Ml3LW2bVrl0aOHKmsrCyFh4ebLuesVVVVpW7duumxxx6TJHXp0kWbN2/WrFmzNGTIEMPVnT3efPNNzZ07V6+99prat2+vvLw8jRo1SgkJCVznAMYtM0OaNm2qoKCgk2bhFBUVKT4+3lBV9deIESO0cOFCffzxx2revLm9PT4+XmVlZSouLvZqf/x1jo+PP+XfwbMPR2+J7d27VxdeeKGCg4MVHBysFStW6Omnn1ZwcLDi4uK4zn7QrFkzpaSkeG1r166dCgoKJB27Tr/070Z8fLz27t3rtb+iokL79+/nOv/k3nvv1f3336/rr79eHTt21ODBgzV69GhNmjRJEte5pvjrutbUvyUEIkNCQ0PVtWtXZWdn29uqqqqUnZ2t1NRUg5XVL5ZlacSIEXrnnXe0bNmyk7pRu3btqpCQEK/rvH37dhUUFNjXOTU1VZs2bfL6jzArK0sul+ukL6dA1adPH23atEl5eXn2q1u3bho0aJD9M9f5zF166aUnPTbiiy++UIsWLSRJycnJio+P97rObrdba9as8brOxcXFys3NtdssW7ZMVVVV6tGjRy2cRd33448/yun0/voLCgpSVVWVJK5zTfHXdU1NTdXKlStVXl5ut8nKylKbNm1O+3aZJKbdmzRv3jwrLCzMmjNnjrVlyxbr9ttvt2JiYrxm4eCX3XHHHVZ0dLS1fPlya8+ePfbrxx9/tNsMHz7cSkpKspYtW2atX7/eSk1NtVJTU+39nungffv2tfLy8qwlS5ZY55xzDtPBf8Xxs8wsi+vsD2vXrrWCg4OtRx991Pryyy+tuXPnWg0aNLBeffVVu83kyZOtmJgY67333rM2btxo9e/f/5TTlrt06WKtWbPG+uSTT6zzzz8/4KeDH2/IkCHWueeea0+7f/vtt62mTZtaY8eOtdtwnU/PgQMHrA0bNlgbNmywJFlTp061NmzYYH399deWZfnnuhYXF1txcXHW4MGDrc2bN1vz5s2zGjRowLT7+u6ZZ56xkpKSrNDQUOuiiy6yPv30U9Ml1SuSTvl66aWX7DaHDx+27rzzTqtRo0ZWgwYNrGuuucbas2eP13H++9//Wv369bMiIiKspk2bWvfcc49VXl5ey2dTv5wYiLjO/rFgwQKrQ4cOVlhYmNW2bVtr9uzZXvurqqqsBx980IqLi7PCwsKsPn36WNu3b/dqs2/fPuuGG26woqKiLJfLZd16663WgQMHavM06jS3222NHDnSSkpKssLDw61WrVpZf/3rX72mcXOdT8/HH398yn+ThwwZYlmW/67r559/bvXs2dMKCwuzzj33XGvy5MlnXLvDso57NCcAAEAAYgwRAAAIeAQiAAAQ8AhEAAAg4BGIAABAwCMQAQCAgEcgAgAAAY9ABAAAAh6BCAAABDwCEQAACHgEIgB13nfffafQ0FAdOnRI5eXlioyMtFeA/zkPP/ywHA7HSa+2bdvWUtUA6pNg0wUAwK/JyclR586dFRkZqTVr1qhx48ZKSkr61d9r3769PvroI69twcH8swfgZPQQAajzVq9erUsvvVSS9Mknn9g//5rg4GDFx8d7vZo2bWrvb9mypSZOnKgbbrhBkZGROvfcc/Xcc895HaOgoED9+/dXVFSUXC6X/vjHP6qoqMirzYIFC9S9e3eFh4eradOmuuaaa+x9//d//6du3bqpYcOGio+P14033qi9e/ee7qUAUEMIRADqpIKCAsXExCgmJkZTp07V888/r5iYGP3lL3/Ru+++q5iYGN15551n/DmPP/64OnfurA0bNuj+++/XyJEjlZWVJUmqqqpS//79tX//fq1YsUJZWVnasWOHrrvuOvv3Fy1apGuuuUZXXXWVNmzYoOzsbF100UX2/vLyck2cOFGff/653n33Xf33v//VLbfccsZ1A/AvVrsHUCdVVFTom2++kdvtVrdu3bR+/XpFRkbqggsu0KJFi5SUlKSoqCivHp/jPfzww5o4caIiIiK8tt90002aNWuWpKM9RO3atdMHH3xg77/++uvldru1ePFiZWVlqV+/ftq5c6cSExMlSVu2bFH79u21du1ade/eXZdccolatWqlV199tVrntX79enXv3l0HDhxQVFTU6VwaADWAHiIAdVJwcLBatmypbdu2qXv37urUqZMKCwsVFxen3r17q2XLlj8bhjzatGmjvLw8r9eECRO82qSmpp70fuvWrZKkrVu3KjEx0Q5DkpSSkqKYmBi7TV5envr06fOzNeTm5urqq69WUlKSGjZsqMsuu0ySfnVQOIDaxehCAHVS+/bt9fXXX6u8vFxVVVWKiopSRUWFKioqFBUVpRYtWig/P/8XjxEaGqrWrVvXaJ0n9kAd79ChQ0pPT1d6errmzp2rc845RwUFBUpPT1dZWVmN1gXAN/QQAaiTFi9erLy8PMXHx+vVV19VXl6eOnTooGnTpikvL0+LFy/2y+d8+umnJ71v166dJKldu3batWuXdu3aZe/fsmWLiouLlZKSIknq1KmTsrOzT3nsbdu2ad++fZo8ebJ69eqltm3bMqAaqKPoIQJQJ7Vo0UKFhYUqKipS//795XA4lJ+fr4EDB6pZs2bVOkZFRYUKCwu9tjkcDsXFxdnvV61apSlTpmjAgAHKysrS/PnztWjRIklSWlqaOnbsqEGDBmnatGmqqKjQnXfeqcsuu0zdunWTJD300EPq06ePzjvvPF1//fWqqKjQ4sWLdd999ykpKUmhoaF65plnNHz4cG3evFkTJ0700xUC4E/0EAGos5YvX25PZ1+7dq2aN29e7TAkSfn5+WrWrJnXq0WLFl5t7rnnHq1fv15dunTRI488oqlTpyo9PV3S0fD03nvvqVGjRurdu7fS0tLUqlUrvfHGG/bv//a3v9X8+fP1/vvv64ILLtDvfvc7rV27VpJ0zjnnaM6cOZo/f75SUlI0efJkPfHEE364MgD8jVlmAAJWy5YtNWrUKI0aNcp0KQAMo4cIAAAEPAIRAAAIeNwyAwAAAY8eIgAAEPAIRAAAIOARiAAAQMAjEAEAgIBHIAIAAAGPQAQAAAIegQgAAAQ8AhEAAAh4/x85oPrMbDSZ6QAAAABJRU5ErkJggg==\n"
+          },
+          "metadata": {}
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "import numpy as np  # Import NumPy\n",
+        "\n",
+        "print(\"Hagamos una predicción!\")\n",
+        "resultado = modelo.predict(np.array([100.0]))  # Convert the list to a NumPy array\n",
+        "print(\"El resultado es \" + str(resultado) + \" fahrenhiet!\")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "f64EXl7vjqza",
+        "outputId": "46b430da-bbc2-4c1d-e14f-35c0946c6d0a"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Hagamos una predicción!\n",
+            "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 45ms/step\n",
+            "El resultado es [[211.74747]] fahrenhiet!\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "print(\"Variables internas del modelo\")\n",
+        "#print(capa.get_weights())\n",
+        "print(oculta1.get_weights())\n",
+        "print(oculta2.get_weights())\n",
+        "print(salida.get_weights())\n"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "lcA7z0qhlVJ8",
+        "outputId": "5e0ae73f-cbda-468e-fa6b-921149b5483c"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Variables internas del modelo\n",
+            "[array([[-0.54274493, -0.15898049, -0.26983035]], dtype=float32), array([-3.6892655, -3.6107628, -2.854754 ], dtype=float32)]\n",
+            "[array([[-0.4944824 ,  0.61031055,  0.7562188 ],\n",
+            "       [-0.16294095,  0.32617345,  0.8284336 ],\n",
+            "       [-1.0555416 ,  0.2393776 ,  1.0930885 ]], dtype=float32), array([ 4.038886 , -0.6193422, -3.8767061], dtype=float32)]\n",
+            "[array([[ 1.1765401 ],\n",
+            "       [ 0.13738182],\n",
+            "       [-1.4074044 ]], dtype=float32), array([3.4825468], dtype=float32)]\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "source": [
+        "Mi primera red neuronal con Ringa Tech - YouTube"
+      ],
+      "metadata": {
+        "id": "o7aeeX4znxqR"
+      }
+    }
+  ]
+}
\ No newline at end of file
