{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "1. Importamos librerías" ], "metadata": { "id": "MqLgBilHVrWQ" } }, { "cell_type": "code", "source": [ "import tensorflow as tf\n", "import numpy as np" ], "metadata": { "id": "aoLa5MFVVu8X" }, "execution_count": 1, "outputs": [] }, { "cell_type": "markdown", "source": [ "2. Introducimos los datos" ], "metadata": { "id": "FIAJLx3uV2DS" } }, { "cell_type": "code", "source": [ "celsius = np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)\n", "fahrenheit = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)" ], "metadata": { "id": "UW0RzbWKV8RS" }, "execution_count": 2, "outputs": [] }, { "cell_type": "markdown", "source": [ "3. Definir el modelo" ], "metadata": { "id": "r2c7poR1WJev" } }, { "cell_type": "code", "source": [ "# Definir el modelo con dos capas ocultas\n", "modelo = tf.keras.Sequential([\n", " tf.keras.layers.Input(shape=[1]), # Capa de entrada con 1 neurona\n", " tf.keras.layers.Dense(3, activation='relu'), # Capa oculta 1 con 3 neuronas\n", " tf.keras.layers.Dense(3, activation='relu'), # Capa oculta 2 con 3 neuronas\n", " tf.keras.layers.Dense(1) # Capa de salida con 1 neurona\n", "])\n" ], "metadata": { "id": "bmoOUBlDWPpf" }, "execution_count": 3, "outputs": [] }, { "cell_type": "markdown", "source": [ "4. Compilamos el modelo" ], "metadata": { "id": "3G9axJbSWezO" } }, { "cell_type": "code", "source": [ "# 4. Compilamos el modelo\n", "modelo.compile(\n", " optimizer=tf.keras.optimizers.Adam(0.1),\n", " loss='mean_squared_error'\n", ")\n" ], "metadata": { "id": "-lVsRLb2Wl7R" }, "execution_count": 4, "outputs": [] }, { "cell_type": "markdown", "source": [ "5. Entrenamos el modelo" ], "metadata": { "id": "pfptkDtqW5Dp" } }, { "cell_type": "code", "source": [ "print(\"Comenzando entrenamiento...\")\n", "historial = modelo.fit(celsius, fahrenheit, epochs=1000, verbose=False)\n", "print(\"Modelo entrenado!\")\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0QVmSITfW7Ma", "outputId": "6bff11c8-84f2-4ad8-ac81-8531ad52c356" }, "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Comenzando entrenamiento...\n", "Modelo entrenado!\n" ] } ] }, { "cell_type": "markdown", "source": [ "6. Graficamos" ], "metadata": { "id": "QyZpf0aiXBPc" } }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt # Importa la biblioteca matplotlib.pyplot y le asigna el alias plt\n", "plt.xlabel(\"# Epoca\")#Definimos el eje X como las épocas de entrenamiento\n", "plt.ylabel(\"Magnitud de pérdida\") #Definimos el eje Y\n", "plt.plot(historial.history[\"loss\"]) #La función plot dibuja una línea uniendo los puntos\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, "id": "7ohCCyFzXGnI", "outputId": "04b46108-605f-4474-8c77-e408d346ee44" }, "execution_count": 6, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[]" ] }, "metadata": {}, "execution_count": 6 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAGwCAYAAABIC3rIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHgklEQVR4nO3deXyU5b3///csmck6CVsSkARQLIssIiDEih5KNCJtUbF1QYuC7U9FK9Lj1ipal8IBS91Fayv2K4py3CoolIJg1cgmUXbbAxoEEpCQTAgks92/P5K5ybBmYDaY1/PxmJOZ674y+cydI3n3uq77ui2GYRgCAABIYtZ4FwAAABBvBCIAAJD0CEQAACDpEYgAAEDSIxABAICkRyACAABJj0AEAACSnj3eBZwsAoGAtm/frqysLFkslniXAwAAWsAwDNXW1qpDhw6yWo88DkQgaqHt27eroKAg3mUAAIDjsHXrVnXs2PGIxwlELZSVlSWp8YS6XK44VwMAAFrC7XaroKDA/Dt+JASiFgpOk7lcLgIRAAAnmWMtd2FRNQAASHoEIgAAkPQIRAAAIOkRiAAAQNIjEAEAgKRHIAIAAEmPQAQAAJIegQgAACQ9AhEAAEh6BCIAAJD0CEQAACDpEYgAAEDS4+aucVa9z6Paep9caSnKTkuJdzkAACQlRoji7H/mb9SQqR/pb599E+9SAABIWgSiOLNaLJIkv2HEuRIAAJIXgSjObNbGQBQIEIgAAIgXAlGcBQORj0AEAEDcEIjizMaUGQAAcUcgijOmzAAAiD8CUZxZmwKRPxDnQgAASGIJFYimTJkii8WiCRMmmG319fUaP3682rRpo8zMTI0aNUqVlZUh31deXq4RI0YoPT1dubm5uuuuu+Tz+UL6LFmyROecc46cTqe6du2qmTNnxuATHZs9OELElBkAAHGTMIFoxYoVeuGFF9SnT5+Q9jvvvFPvv/++5syZo6VLl2r79u264oorzON+v18jRoyQx+PRZ599pldeeUUzZ87UpEmTzD5btmzRiBEjNHToUJWVlWnChAm66aabtGDBgph9viMJXnbvCzBEBABAvCREINq7d69Gjx6tP//5z2rVqpXZXlNTo7/85S+aPn26fvSjH6l///56+eWX9dlnn+nzzz+XJP3jH//Q+vXr9eqrr+rss8/W8OHD9cgjj+jZZ5+Vx+ORJM2YMUNdunTRH//4R/Xo0UO33XabrrzySv3pT3+Ky+dtzsaUGQAAcZcQgWj8+PEaMWKEiouLQ9pXrVolr9cb0t69e3cVFhaqtLRUklRaWqrevXsrLy/P7FNSUiK3261169aZfQ5+75KSEvM9DqehoUFutzvkEQ0sqgYAIP7ifi+z2bNn64svvtCKFSsOOVZRUSGHw6GcnJyQ9ry8PFVUVJh9moeh4PHgsaP1cbvd2r9/v9LS0g752ZMnT9bvf//74/5cLcVO1QAAxF9cR4i2bt2qO+64Q7NmzVJqamo8SznEfffdp5qaGvOxdevWqPwcuzllRiACACBe4hqIVq1apZ07d+qcc86R3W6X3W7X0qVL9dRTT8lutysvL08ej0fV1dUh31dZWan8/HxJUn5+/iFXnQVfH6uPy+U67OiQJDmdTrlcrpBHNFgJRAAAxF1cA9GwYcO0Zs0alZWVmY8BAwZo9OjR5vOUlBQtWrTI/J5NmzapvLxcRUVFkqSioiKtWbNGO3fuNPssXLhQLpdLPXv2NPs0f49gn+B7xJOtMQ8xZQYAQBzFdQ1RVlaWevXqFdKWkZGhNm3amO3jxo3TxIkT1bp1a7lcLt1+++0qKirS4MGDJUkXX3yxevbsqeuvv15Tp05VRUWF7r//fo0fP15Op1OSdPPNN+uZZ57R3XffrbFjx2rx4sV68803NW/evNh+4MNgUTUAAPEX90XVx/KnP/1JVqtVo0aNUkNDg0pKSvTcc8+Zx202m+bOnatbbrlFRUVFysjI0JgxY/Twww+bfbp06aJ58+bpzjvv1JNPPqmOHTvqpZdeUklJSTw+UgibtXGQjikzAADix2IYzNW0hNvtVnZ2tmpqaiK6nuiNFeW65601GtY9V3+5YWDE3hcAALT873dC7EOUzLjsHgCA+CMQxZmNq8wAAIg7AlGc2bi5KwAAcUcgijNGiAAAiD8CUZzZLAQiAADijUAUZ+xUDQBA/BGI4swcISIPAQAQNwSiOGOnagAA4o9AFGfBQOQjEAEAEDcEojhjhAgAgPgjEMUZO1UDABB/BKI4Y4QIAID4IxDFmbkxIyNEAADEDYEozsxF1Vx3DwBA3BCI4iy4DxH3MgMAIH4IRHFmbfoNsFM1AADxQyCKM+52DwBA/BGI4szOxowAAMQdgSjOrNztHgCAuCMQxVmKrfFXQCACACB+CERxFgxEXn8gzpUAAJC8CERxlmJrnDLz+g0ZLKwGACAuCERxZrcd+BV42ZwRAIC4IBDFmSMkEDFtBgBAPBCI4iw4ZSZx+w4AAOKFQBRnNqtFTVfey8MIEQAAcUEgijOLxaIUK1eaAQAQTwSiBHDgSjMCEQAA8UAgSgApdkaIAACIJwJRAjiwOSOLqgEAiAcCUQJwsFs1AABxRSBKAHbWEAEAEFcEogQQnDLz+JgyAwAgHghECYAbvAIAEF8EogTgaJoy8wUIRAAAxAOBKAEwZQYAQHwRiBIAi6oBAIgvAlECYA0RAADxRSBKAA5zyoxABABAPBCIEkCqwyZJ2u/1x7kSAACSE4EoAWQ67JKkfR4CEQAA8UAgSgDpzsYRoroGX5wrAQAgORGIEkAGI0QAAMQVgSgBMEIEAEB8EYgSQHCEqM5DIAIAIB4IRAkgw9kUiBqYMgMAIB4IRAkgo+my+32MEAEAEBcEogSQzggRAABxRSBKAK7UxkBUvc8T50oAAEhOBKIE0D47TZJUWdsgf4A73gMAEGsEogTQLsspm9Uif8DQrtqGeJcDAEDSIRAlAJvVorwspyRpR83+OFcDAEDyIRAliI6t0iVJW76vi3MlAAAkHwJRgjjrNJck6avvauJcCQAAyYdAlCD6dMyWJK3bTiACACDWCEQJ4szcLEnSf3bujXMlAAAkHwJRgjijXaYkac8+r3bv5UozAABiiUCUINIcNrXPTpUkfVu1L87VAACQXAhECSS36dL779mLCACAmCIQJZC2mU2BaC+38AAAIJYIRAnkQCBihAgAgFgiECWQtlkOSQQiAABijUCUQNpkNI4Q7a5jygwAgFgiECWQrFS7JGlvvS/OlQAAkFwIRAkkKzVFkrS3gUAEAEAsEYgSSHCEqLbeG+dKAABILgSiBMKUGQAA8UEgSiCZzuAIEYEIAIBYIhAlkMzgCJHHp0DAiHM1AAAkDwJRAnE1Lao2DGmf1x/nagAASB4EogTitFtls1oksY4IAIBYimsgev7559WnTx+5XC65XC4VFRXpww8/NI/X19dr/PjxatOmjTIzMzVq1ChVVlaGvEd5eblGjBih9PR05ebm6q677pLPFxomlixZonPOOUdOp1Ndu3bVzJkzY/HxwmaxWJSeYpMk7WeECACAmIlrIOrYsaOmTJmiVatWaeXKlfrRj36kkSNHat26dZKkO++8U++//77mzJmjpUuXavv27briiivM7/f7/RoxYoQ8Ho8+++wzvfLKK5o5c6YmTZpk9tmyZYtGjBihoUOHqqysTBMmTNBNN92kBQsWxPzztkSqoykQeQhEAADEisUwjIRavdu6dWtNmzZNV155pdq1a6fXXntNV155pSRp48aN6tGjh0pLSzV48GB9+OGH+vGPf6zt27crLy9PkjRjxgzdc8892rVrlxwOh+655x7NmzdPa9euNX/G1Vdfrerqas2fP7/FdbndbmVnZ6umpkYulyuyH7qZC6Z+pPKqfXrrlvPUv1OrqP0cAACSQUv/fifMGiK/36/Zs2errq5ORUVFWrVqlbxer4qLi80+3bt3V2FhoUpLSyVJpaWl6t27txmGJKmkpERut9scZSotLQ15j2Cf4HscSUNDg9xud8gjFtKapszqmTIDACBm4h6I1qxZo8zMTDmdTt18881655131LNnT1VUVMjhcCgnJyekf15enioqKiRJFRUVIWEoeDx47Gh93G639u/ff8S6Jk+erOzsbPNRUFBwoh+1RZgyAwAg9uIeiLp166aysjItW7ZMt9xyi8aMGaP169fHuyzdd999qqmpMR9bt26Nyc9lUTUAALFnj3cBDodDXbt2lST1799fK1as0JNPPqmrrrpKHo9H1dXVIaNElZWVys/PlyTl5+dr+fLlIe8XvAqteZ+Dr0yrrKyUy+VSWlraEetyOp1yOp0n/PnClcYIEQAAMRf3EaKDBQIBNTQ0qH///kpJSdGiRYvMY5s2bVJ5ebmKiookSUVFRVqzZo127txp9lm4cKFcLpd69uxp9mn+HsE+wfdINGmMEAEAEHNxHSG67777NHz4cBUWFqq2tlavvfaalixZogULFig7O1vjxo3TxIkT1bp1a7lcLt1+++0qKirS4MGDJUkXX3yxevbsqeuvv15Tp05VRUWF7r//fo0fP94c3bn55pv1zDPP6O6779bYsWO1ePFivfnmm5o3b148P/oRpRKIAACIubgGop07d+oXv/iFduzYoezsbPXp00cLFizQRRddJEn605/+JKvVqlGjRqmhoUElJSV67rnnzO+32WyaO3eubrnlFhUVFSkjI0NjxozRww8/bPbp0qWL5s2bpzvvvFNPPvmkOnbsqJdeekklJSUx/7wtkeZoHLRjygwAgNg57n2I9u3bp/Lycnk8npD2Pn36RKSwRBOrfYgem7def/7XFv3qgtP120t7RO3nAACQDFr69zvsEaJdu3bpxhtvDLnFRnN+PyMbJ8Jpb5wy8/gCca4EAIDkEfai6gkTJqi6ulrLli1TWlqa5s+fr1deeUVnnnmm/v73v0ejxqTisDf+ShoIRAAAxEzYI0SLFy/We++9pwEDBshqtapTp0666KKL5HK5NHnyZI0YMSIadSaNFFtjIGKECACA2Al7hKiurk65ubmSpFatWmnXrl2SpN69e+uLL76IbHVJKDhC5PETiAAAiJWwA1G3bt20adMmSVLfvn31wgsvaNu2bZoxY4bat28f8QKTjRmIfKzFAgAgVsKeMrvjjju0Y8cOSdKDDz6oSy65RLNmzZLD4dDMmTMjXV/ScTJlBgBAzIUdiK677jrzef/+/fXtt99q48aNKiwsVNu2bSNaXDIKjhB5/ce1GwIAADgOJ7wxY3p6us4555xI1AI1nzJjhAgAgFhpUSCaOHFii99w+vTpx10MJEfTlFkDi6oBAIiZFgWi1atXh7z+4osv5PP51K1bN0nS119/LZvNpv79+0e+wiTDCBEAALHXokD00Ucfmc+nT5+urKwsvfLKK2rVqpUkac+ePbrxxhs1ZMiQ6FSZRLjKDACA2Av7svs//vGPmjx5shmGpMb9iB599FH98Y9/jGhxyYh9iAAAiL2wA5Hb7TY3Y2xu165dqq2tjUhRyczBZfcAAMRc2IHo8ssv14033qi3335b3333nb777ju99dZbGjdunK644opo1JhUnKwhAgAg5sK+7H7GjBn67//+b1177bXyer2Nb2K3a9y4cZo2bVrEC0w23MsMAIDYCzsQpaen67nnntO0adP0f//3f5KkM844QxkZGREvLhmxhggAgNg77o0ZMzIy1KdPn0jWAoXuVB0IGLJaLXGuCACAU1+LAtEVV1yhmTNnyuVyHXOd0Ntvvx2RwpJVMBBJkjcQkNNqi2M1AAAkhxYFouzsbFksFvM5oid4lZnUuI7IaScQAQAQbS0KRC+//PJhnyPyDg5EAAAg+sK+7B7RZbValGJrHI1jYTUAALHRohGifv36mVNmx/LFF1+cUEFoHCXy+v2MEAEAECMtCkSXXXaZ+by+vl7PPfecevbsqaKiIknS559/rnXr1unWW2+NSpHJxmG3qs5DIAIAIFZaFIgefPBB8/lNN92kX//613rkkUcO6bN169bIVpekgleaNRCIAACIibDXEM2ZM0e/+MUvDmm/7rrr9NZbb0WkqGTH5owAAMRW2IEoLS1Nn3766SHtn376qVJTUyNSVLLj9h0AAMRW2DtVT5gwQbfccou++OILnXvuuZKkZcuW6a9//aseeOCBiBeYjLjjPQAAsRV2ILr33nt1+umn68knn9Srr74qSerRo4defvll/fznP494gcmIO94DABBbYQUin8+nP/zhDxo7dizhJ4oO3M+MQAQAQCyEtYbIbrdr6tSp8vl80aoHYlE1AACxFvai6mHDhmnp0qXRqAVNgmuIuOweAIDYCHsN0fDhw3XvvfdqzZo16t+/vzIyMkKO//SnP41YccnKwRoiAABiKuxAFNyNevr06Yccs1gs8vv9J15VknM03eGeQAQAQGyEHYgCAf5IR1vw5q4sqgYAIDZO6G739fX1kaoDzaRYG38tvoAR50oAAEgOYQciv9+vRx55RKeddpoyMzO1efNmSdIDDzygv/zlLxEvMBnZGSECACCmjhmI3njjDZWXl5uvH3vsMc2cOVNTp06Vw+Ew23v16qWXXnopOlUmmeCtO3x+RogAAIiFYwai1NRUXXDBBfryyy8lSa+88opefPFFjR49WjabzezXt29fbdy4MXqVJhG7tWmEiPVaAADExDEXVY8cOVJ5eXm67rrrtGbNGm3fvl1du3Y9pF8gEJDX641KkcnGzggRAAAx1aI1RIMHDzY3Y+zZs6f+9a9/HdLnf//3f9WvX7/IVpekgleZ+VhDBABATLT4svvWrVtLkiZNmqQxY8Zo27ZtCgQCevvtt7Vp0yb97W9/09y5c6NWaDKxN11l5uUqMwAAYiLsq8xGjhyp999/X//85z+VkZGhSZMmacOGDXr//fd10UUXRaPGpGNnhAgAgJgKe2NGSRoyZIgWLlwY6VrQ5MCUGSNEAADEwnEFIklauXKlNmzYIKlxXVH//v0jVlSyY8oMAIDYCjsQfffdd7rmmmv06aefKicnR5JUXV2t8847T7Nnz1bHjh0jXWPSYVE1AACxFfYaoptuukler1cbNmxQVVWVqqqqtGHDBgUCAd10003RqDHpBC+79zJlBgBATIQ9QrR06VJ99tln6tatm9nWrVs3Pf300xoyZEhEi0tWwY0ZfWzMCABA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Q4cOnOckxpRZnLRt21Y2m+2Qq3AqKyuVn58fp6pOXrfddpvmzp2rjz76SB07djTb8/Pz5fF4VF1dHdK/+XnOz88/7O8heAyNU2I7d+7UOeecI7vdLrvdrqVLl+qpp56S3W5XXl4e5zkC2rdvr549e4a09ejRQ+Xl5ZIOnKej/buRn5+vnTt3hhz3+XyqqqriPDe56667dO+99+rqq69W7969df311+vOO+/U5MmTJXGeoyVS5zVa/5YQiOLE4XCof//+WrRokdkWCAS0aNEiFRUVxbGyk4thGLrtttv0zjvvaPHixYcMo/bv318pKSkh53nTpk0qLy83z3NRUZHWrFkT8h/hwoUL5XK5DvnjlKyGDRumNWvWqKyszHwMGDBAo0ePNp9znk/cD3/4w0O2jfj666/VqVMnSVKXLl2Un58fcp7dbreWLVsWcp6rq6u1atUqs8/ixYsVCAQ0aNCgGHyKxLdv3z5ZraF//mw2mwKBgCTOc7RE6rwWFRXp448/ltfrNfssXLhQ3bp1O+7pMklcdh9Ps2fPNpxOpzFz5kxj/fr1xq9+9SsjJycn5CocHN0tt9xiZGdnG0uWLDF27NhhPvbt22f2ufnmm43CwkJj8eLFxsqVK42ioiKjqKjIPB68HPziiy82ysrKjPnz5xvt2rXjcvBjaH6VmWFwniNh+fLlht1uNx577DHj3//+tzFr1iwjPT3dePXVV80+U6ZMMXJycoz33nvP+Oqrr4yRI0ce9rLlfv36GcuWLTM++eQT48wzz0z6y8GbGzNmjHHaaaeZl92//fbbRtu2bY27777b7MN5Pj61tbXG6tWrjdWrVxuSjOnTpxurV682vv32W8MwInNeq6urjby8POP666831q5da8yePdtIT0/nsvuT3dNPP20UFhYaDofDOPfcc43PP/883iWdVCQd9vHyyy+bffbv32/ceuutRqtWrYz09HTj8ssvN3bs2BHyPt98840xfPhwIy0tzWjbtq3xm9/8xvB6vTH+NCeXgwMR5zky3n//faNXr16G0+k0unfvbrz44oshxwOBgPHAAw8YeXl5htPpNIYNG2Zs2rQppM/u3buNa665xsjMzDRcLpdx4403GrW1tbH8GAnN7XYbd9xxh1FYWGikpqYap59+uvG73/0u5DJuzvPx+eijjw77b/KYMWMMw4jcef3yyy+N888/33A6ncZpp51mTJky5YRrtxhGs605AQAAkhBriAAAQNIjEAEAgKRHIAIAAEmPQAQAAJIegQgAACQ9AhEAAEh6BCIAAJD0CEQAACDpEYgAAEDSIxABSHi7du2Sw+FQXV2dvF6vMjIyzDvAH8lDDz0ki8VyyKN79+4xqhrAycQe7wIA4FhKS0vVt29fZWRkaNmyZWrdurUKCwuP+X1nnXWW/vnPf4a02e38swfgUIwQAUh4n332mX74wx9Kkj755BPz+bHY7Xbl5+eHPNq2bWse79y5sx555BFdc801ysjI0GmnnaZnn3025D3Ky8s1cuRIZWZmyuVy6ec//7kqKytD+rz//vsaOHCgUlNT1bZtW11++eXmsf/3//6fBgwYoKysLOXn5+vaa6/Vzp07j/dUAIgSAhGAhFReXq6cnBzl5ORo+vTpeuGFF5STk6Pf/va3evfdd5WTk6Nbb731hH/OtGnT1LdvX61evVr33nuv7rjjDi1cuFCSFAgENHLkSFVVVWnp0qVauHChNm/erKuuusr8/nnz5unyyy/XpZdeqtWrV2vRokU699xzzeNer1ePPPKIvvzyS7377rv65ptvdMMNN5xw3QAii7vdA0hIPp9P3333ndxutwYMGKCVK1cqIyNDZ599tubNm6fCwkJlZmaGjPg099BDD+mRRx5RWlpaSPt1112nGTNmSGocIerRo4c+/PBD8/jVV18tt9utDz74QAsXLtTw4cO1ZcsWFRQUSJLWr1+vs846S8uXL9fAgQN13nnn6fTTT9err77aos+1cuVKDRw4ULW1tcrMzDyeUwMgChghApCQ7Ha7OnfurI0bN2rgwIHq06ePKioqlJeXpwsuuECdO3c+YhgK6tatm8rKykIeDz/8cEifoqKiQ15v2LBBkrRhwwYVFBSYYUiSevbsqZycHLNPWVmZhg0bdsQaVq1apZ/85CcqLCxUVlaWLrzwQkk65qJwALHF6kIACemss87St99+K6/Xq0AgoMzMTPl8Pvl8PmVmZqpTp05at27dUd/D4XCoa9euUa3z4BGo5urq6lRSUqKSkhLNmjVL7dq1U3l5uUpKSuTxeKJaF4DwMEIEICF98MEHKisrU35+vl599VWVlZWpV69eeuKJJ1RWVqYPPvggIj/n888/P+R1jx49JEk9evTQ1q1btXXrVvP4+vXrVV1drZ49e0qS+vTpo0WLFh32vTdu3Kjdu3drypQpGjJkiLp3786CaiBBMUIEICF16tRJFRUVqqys1MiRI2WxWLRu3TqNGjVK7du3b9F7+Hw+VVRUhLRZLBbl5eWZrz/99FNNnTpVl112mRYuXKg5c+Zo3rx5kqTi4mL17t1bo0eP1hNPPCGfz6dbb71VF154oQYMGCBJevDBBzVs2DCdccYZuvrqq+Xz+fTBBx/onnvuUWFhoRwOh55++mndfPPNWrt2rR555JEInSEAkcQIEYCEtWTJEvNy9uXLl6tjx44tDkOStG7dOrVv3z7k0alTp5A+v/nNb7Ry5Ur169dPjz76qKZPn66SkhJJjeHpvffeU6tWrXTBBReouLhYp59+ut544w3z+//rv/5Lc+bM0d///nedffbZ+tGPfqTly5dLktq1a6eZM2dqzpw56tmzp6ZMmaLHH388AmcGQKRxlRmApNW5c2dNmDBBEyZMiHcpAOKMESIAAJD0CEQAACDpMWUGAACSHiNEAAAg6RGIAABA0iMQAQCApEcgAgAASY9ABAAAkh6BCAAAJD0CEQAASHoEIgAAkPT+f+gYqVxMsOMtAAAAAElFTkSuQmCC\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "7. Hacer una predicción" ], "metadata": { "id": "rwYpZQ0uXPlB" } }, { "cell_type": "code", "source": [ "print(\"Hagamos una predicción!\")\n", "\n", "# Asegúrate de pasar un array bidimensional (1, 1)\n", "resultado = modelo.predict(np.array([[100.0]])) # Aseguramos que sea un array 2D\n", "print(\"El resultado es \" + str(resultado[0][0]) + \" fahrenheit!\")\n", "\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cYlMz4YMXUL9", "outputId": "67c264fa-04fb-49e4-dd07-7c0fcbcbbc36" }, "execution_count": 7, "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 52ms/step\n", "El resultado es 211.73682 fahrenheit!\n" ] } ] } ] }