diff --git a/Bases_de_datos/Cuadernos/Pendientes/Curso_Compass.ipynb b/Bases_de_datos/Cuadernos/Pendientes/Curso_Compass.ipynb
deleted file mode 100644
index ca6bdf83..00000000
--- a/Bases_de_datos/Cuadernos/Pendientes/Curso_Compass.ipynb
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "2f5eb4f9-be85-4139-be5e-7b758edd8097",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "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.10.8"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/Bases_de_datos/Cuadernos/Pendientes/Instalacion_mongo_mac.ipynb b/Bases_de_datos/Cuadernos/Pendientes/Instalacion_mongo_mac.ipynb
deleted file mode 100644
index 93d2379c..00000000
--- a/Bases_de_datos/Cuadernos/Pendientes/Instalacion_mongo_mac.ipynb
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "cf460f54-715f-46f6-a5f1-c1d1cabb35c9",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "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.10.8"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/Bases_de_datos/Cuadernos/Pendientes/instalacion_mongo_ubuntu.ipynb b/Bases_de_datos/Cuadernos/Pendientes/instalacion_mongo_ubuntu.ipynb
deleted file mode 100644
index 0dd562fc..00000000
--- a/Bases_de_datos/Cuadernos/Pendientes/instalacion_mongo_ubuntu.ipynb
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "20597c68-135e-4a8b-99d9-1553987cb4b0",
- "metadata": {},
- "source": [
- "Instalación: traducir de [mongodb.com](https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/)."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "b2ebecea-1de0-4ac4-af15-ac53f80db294",
- "metadata": {
- "tags": []
- },
- "source": [
- "### Inicializar base de datos"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c5ab006e-ae34-441a-bd49-9565887f4f97",
- "metadata": {},
- "source": [
- "```bash\n",
- "sudo systemctl start mongod\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "61a76e57-bd34-4024-abbf-dbfc77d85761",
- "metadata": {},
- "source": [
- "Para detener poner la palabra `start` por `stop`"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "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.10.8"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/Fundamentacion_Estadistica/Cuadernos/.ipynb_checkpoints/Intro_Tensores_II-checkpoint.ipynb b/Fundamentacion_Estadistica/Cuadernos/.ipynb_checkpoints/Intro_Tensores_II-checkpoint.ipynb
deleted file mode 100644
index d3f4a79e..00000000
--- a/Fundamentacion_Estadistica/Cuadernos/.ipynb_checkpoints/Intro_Tensores_II-checkpoint.ipynb
+++ /dev/null
@@ -1,1123 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Tensores"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "
Introducción"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "\n",
- "Fuente: Alvaro Montenegro"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Introducción"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "En esta lección aprenderemos los conceptos básicos de tensores y como los usamos para manipular imágenes usando tensores."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Tensor"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Un tensor es un concepto matemático que generaliza los conceptos de escalares, vectores y matrices."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "\n",
- "Fuente: Alvaro Montenegro"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "En términos muy simples, un tensor es un objeto dinámico (*matemáticamente diríamos que es una función entre espacios vectoriales*) que vive dentro de una estructura. \n",
- "\n",
- "Pero no vamos a hacer un tratado matemático aquí. \n",
- "\n",
- "Lo importante en esta clase es entender que en realidad, escalares, vectores, matrices pueden verse como tensores fijos y eso será suficiente para lo que sigue."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Rango"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Diremos que los escalares tienen rango (*shape*) 0, los vectores tiene rango 1, las matrices rango 2 y el tensor de la derecha rango 3. \n",
- "\n",
- "El rango corresponde al número de índices que se requiere para identificar de manera única a cada elemento del tensor.\n",
- "\n",
- "Observe que por ejemplo, en el último tensor, requiere (fila, columna, cajón). \n",
- "\n",
- "También podría ser (cajón, fila, columna)."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Redes Neuronales"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "La siguiente imagen muestra el estado en un instante de una una parte oculta de una red neuronal profunda."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "\n",
- "Fuente: Alvaro Montenegro"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "El proceso puede modelarse en forma simplificada usando matrices y vectores como se ve a continuación."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "$$\n",
- "W_{12}L_1 = L2 \\to \\begin{pmatrix} -1 & 0.4 & 1.5\\\\ 0.8 & 0.5 & 0.75 \\\\ 0.2 & -0.3 & 1\\\\ \\end{pmatrix}\\begin{pmatrix} 2.5\\\\ 4 \\\\ 1.2 \\end{pmatrix} = \\begin{pmatrix} 0.9\\\\ 4.9 \\\\ 0.5 \\end{pmatrix}\n",
- "$$"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Observe por ejemplo que: \n",
- "\n",
- "$$-1\\times 2.5 + 0.4\\times 4 + 1.5\\times 1.2 = 0.9$$"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "En la fase de entrenamiento de la red neuronal, los pesos de la matriz se van modificando hasta que se encuentra un óptimo local. Este proceso ocurre en toda la estructura de la red.\n",
- "\n",
- "Por lo que no parece extraño que las GPU y las TPU pasen todo el tiempo haciendo operaciones de este tipo, que al final se reduce a sumas y multiplicaciones.\n",
- "\n",
- "Por otro lado, lo que ocurre es que los objetos que se procesan no necesariamente son vectores como en el ejemplo, y esto lleva a la necesidad de generalizar los conceptos.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Producto tensorial"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "La operación más ejecutada en aprendizaje profundo es el producto tensorial.\n",
- "\n",
- "Vamos a suponer que cada elemento en los tensores de rango 3 se indexan mediante coordenadas (fila, columna, profundidad) y que los tensores de rango 2 se indexan como (fila, columna).\n",
- "\n",
- "La siguiente imagen ilustra la forma de un producto tensorial. \n",
- "\n",
- "- A la izquierda (azul) se tiene un tensor de tamaño digamos $n \\times p \\times s$. \n",
- "\n",
- "- El tensor que está operando en el centro (rosa) es de tamaño $p \\times r$. Este actúa operando en este caso sobre cada capa del tensor de la izquierda haciendo un producto usual de matrices. \n",
- "\n",
- "- Por lo que el tensor resultante (verde) a la derecha tiene tamaño $n \\times r \\times s$\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "\n",
- "Fuente: Alvaro Montenegro"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Explicación del producto"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "La explicación del proceso es la siguiente:\n",
- "\n",
- "Cada capa frontal del tensor azul es multiplica por el tensor rosa y el resultado es colocando como una capa frontal en el tensor resultante (verde).\n",
- "\n",
- "Cada multiplicación es entre dos matrices (azul * rosa) y el resultado es una matriz (verde).\n",
- "\n",
- "Cada multiplicación de matrices se hace por la fórmula fila (matriz azul) * columna (matriz rosa).\n",
- "\n",
- "Vamos por ejemplo a suponer que una capa roja es $ azul = \\begin{pmatrix} 1 & 2 & 1\\\\ 3 & 4 & 1 \\\\ 4 & 5 & 0\\\\ \\end{pmatrix}$, $rosa = \\begin{pmatrix} 5 & 10\\\\ 20 & 30 \\\\ 4 & 1\\end{pmatrix}$\n",
- "\n",
- "Entonces se tiene que:\n",
- "\n",
- "$$\n",
- "azul \\times rosa = \\begin{pmatrix} 1 & 2 & 1\\\\ 3 & 4 & 1 \\\\ 4 & 5 & 0\\\\ \\end{pmatrix} \\times \\begin{pmatrix} 5 & 10\\\\ 20 & 30\\\\ 4 & 1\\end{pmatrix} = \\begin{pmatrix} 1\\times 5 + 2 \\times 20 + 1 \\times 4 & 1 \\times 10 + 2\\times 30 + 1\\times 1\n",
- "\\\\ 3\\times 5 + 4 \\times 20 + 1 \\times 4 & 3 \\times 10 + 4 \\times 30 + 1 \\times 1\n",
- "\\\\ 4\\times 5 + 5 \\times 20 + 0 \\times 4 & 4 \\times 10 + 5 \\times 30 + 0 \\times 1\\end{pmatrix} = turquesa\n",
- "$$"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Imágenes a color"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "De manera clásica una imagen a color está compuesta de tres colores primarios: rojo (*Red*), verde (*Green*) y azul (*Blue*). Para generar una imagen a color un computador maneja tres planos de color, los cuales son controlados desde tensores tridimensionales. Considere el siguiente ejemplo."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "\n",
- "Fuente: Alvaro Montenegro"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Cada pixel (*punto*) de la imagen es representado por una valor numérico en el rango de 0 a 255, o en rango de valores reales entre cero y 1."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Construcción aleatoria de una imagen"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Considere el siguiente código Python."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[[[ 98 63 41 163 142 77 39 87 226 95]\n",
- " [252 174 172 68 12 62 54 234 45 234]\n",
- " [194 82 212 71 220 65 164 126 34 252]\n",
- " [ 37 81 104 248 192 22 86 176 165 53]\n",
- " [164 222 12 21 163 85 171 168 156 204]\n",
- " [ 95 163 28 156 125 146 171 223 7 242]\n",
- " [ 90 64 58 234 80 158 155 88 81 10]\n",
- " [201 217 185 13 62 166 117 9 172 224]\n",
- " [ 52 131 103 100 205 139 106 158 9 208]\n",
- " [248 86 130 80 170 10 245 95 229 17]]\n",
- "\n",
- " [[ 52 9 111 120 51 167 84 213 110 47]\n",
- " [236 139 185 48 178 139 183 253 238 7]\n",
- " [166 133 246 117 163 69 228 175 241 111]\n",
- " [ 18 191 88 124 229 226 21 217 179 224]\n",
- " [207 38 205 198 83 7 222 52 74 49]\n",
- " [164 151 252 148 219 175 225 60 83 169]\n",
- " [176 80 247 89 121 52 208 219 61 23]\n",
- " [ 90 178 179 68 55 34 55 151 215 28]\n",
- " [ 86 238 5 211 214 164 153 180 150 32]\n",
- " [198 58 92 167 3 31 137 83 252 60]]\n",
- "\n",
- " [[ 52 214 29 236 200 25 193 140 248 207]\n",
- " [ 83 58 166 231 215 10 35 163 167 195]\n",
- " [ 32 190 33 83 25 189 171 89 204 103]\n",
- " [ 81 43 231 64 10 68 215 112 104 212]\n",
- " [162 92 107 184 147 86 58 90 217 245]\n",
- " [124 70 78 217 237 182 238 216 172 214]\n",
- " [ 88 187 246 92 174 44 110 115 32 250]\n",
- " [106 166 145 148 65 17 68 138 223 77]\n",
- " [ 52 222 63 237 136 209 16 11 220 51]\n",
- " [102 107 36 78 244 22 247 60 33 248]]]\n"
- ]
- }
- ],
- "source": [
- "import numpy as np\n",
- "I=np.random.randint(0,255,size=(3,10,10))\n",
- "print(I)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Este tensor representa una imagen de tamaño $10 \\times 10$. Son tres planos de color $10 \\times 10$.\n",
- "\n",
- "Observe que la primera dimensión corresponde a cada plano de color y las restantes dos dimensiones a las intensidades de cada color para cada punto.\n",
- "\n",
- "Renderizar (dibujar en este caso), nos lleva a la siguiente imagen."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "