{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "<img src=\"../imagenes/logo-final-ap.png\" width=\"80\" height=\"80\" align=\"left\"/> \n", "</figure>\n", "\n", "# <span style=\"color:blue\"><left>Aprendizaje Profundo</left></span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# <span style=\"color:red\"><center>Diplomado en Inteligencia Artificial y Aprendizaje Profundo</center></span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <span style=\"color:green\"><center>Ambientes Virtuales<center></span>" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "## <span style=\"color:#4361EE\">Profesores</span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Alvaro Montenegro, PhD, ammontenegrod@unal.edu.co\n", "1. Camilo José Torres Jiménez, Msc, cjtorresj@unal.edu.co\n", "1. Daniel Montenegro, Msc, dextronomo@gmail.com " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "source": [ "## <span style=\"color:#4361EE\">Asesora Medios y Marketing digital</span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Maria del Pilar Montenegro, pmontenegro88@gmail.com\n", "5. Jessica López Mejía, jelopezme@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "source": [ "## <span style=\"color:#4361EE\">Jefe Jurídica</span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "6. Paula Andrea Guzmán, guzmancruz.paula@gmail.com" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "source": [ "## <span style=\"color:#4361EE\">Coordinador Jurídico</span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "7. David Fuentes, fuentesd065@gmail.com" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" }, "tags": [] }, "source": [ "## <span style=\"color:#4361EE\">Desarrolladores Principales</span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "8. Dairo Moreno, damoralesj@unal.edu.co\n", "9. Joan Castro, jocastroc@unal.edu.co\n", "10. Bryan Riveros, briveros@unal.edu.co\n", "11. Rosmer Vargas, rovargasc@unal.edu.co\n", "12. Venus Puertas, vpuertasg@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "source": [ "## <span style=\"color:#4361EE\">Expertos en Bases de Datos</span>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "13. Giovvani Barrera, udgiovanni@gmail.com\n", "14. Camilo Chitivo, cchitivo@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## <span style=\"color:#4361EE\">Creando Ambientes de Trabajo con Anaconda</span>\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### <span style=\"color:#4CC9F0\">Motivación</span>" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "YpCjMi-eESDM" }, "source": [ "Ha llegado el momento de utilizar los lenguajes de programación **inteligentemente**.\n", "\n", "Imaginemos que por alguna razón, algún genio informático ha diseñado un código para **predecir la bolsa de valores**.\n", "\n", "Como el genio informático no tiene mucha idea de lo que ha hecho es algo grande, ha decidido publicarlo en alguna parte (Drive, GitHub, etc).\n", "\n", "Nosotros, **curiosos como siempre**, hemos decidido darle un vistazo a su código y por qué no, ejecutarlo.\n", "\n", "Sin embargo, existe un gran problema:\n", "\n", "**¡La sintáxis del código está escrita en versiones anteriores de Python (3.5 por ejemplo) y nosotros poseemos la version 3.7.6 en nuestro ambiente de Jupyter!**\n", "\n", "El secreto detrás de la **creación de ambientes de trabajo** es poder ejecutar ese trabajo que otras personas han hecho en el pasado y poder obtener sus resultados\n", "\n", "**¡Good News!**\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "yAQ45Kp0ESDV" }, "source": [ "## <span style=\"color:#4361EE\">Anaconda Prompt</span>\n", "\n", "Para comenzar a programar en serio, es necesario usar la consola que viene con Anaconda.\n", "\n", "Es **fundamental** para instalar paquetes y crear ambientes, iniciar como Administrador\n", "\n", "\n", "<img src=\"https://raw.githubusercontent.com/ucmadcursoPythonyR/2020/master/images/Prompt.png\" />\n", "<img src=\"https://raw.githubusercontent.com/ucmadcursoPythonyR/2020/master/images/Prompt2.png\" />" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "LxIrPJdtESDb" }, "source": [ "Notemos el **(base)** antes de la ruta **(path)** en el computador.\n", "\n", "Este **(base)** representa nuestro ambiente base instalado en el PC por defecto que hace Anaconda.\n", "\n", "Al ejecutar el comando \n", "\n", "```conda list```\n", "\n", "Podremos observar todos los paquetes instalados por defecto (150+), útiles para hacer cálculos científicos y muchos otros fines.\n", "\n", "**conda** es el manejador de paquetes de Anaconda (Siendo Anaconda el Software)\n", "\n", "Usaremos con mucha frecuencia el comando **```conda```** de aquí en adelante." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "_s8ODm60ESDi" }, "source": [ "### <span style=\"color:#4CC9F0\">Mantener Actualizados los Paquetes de Anaconda</span>\n", "\n", "Ejecutamos los siguientes comandos:\n", "\n", "```conda update conda```\n", "\n", "```conda update anaconda```\n", "\n", "para ver qué paquetes con mejoras están disponibles a tiempo real.\n", "\n", "No es necesario hacer este paso, pero es una buena práctica de programación.\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "xfVeIPOVESDm" }, "source": [ "## <span style=\"color:#4361EE\">Creando Nuevos Ambientes de Trabajo</span>\n", "\n", "Crear un nuevo ambiente de trabajo es tan fácil como ejecutar\n", "\n", "```conda create -n myenv```\n", "\n", "donde **myenv** es el nombre que uno quiere darle a dicho ambiente.\n", "\n", "**-n** es un shortcut para decir **name** (también se puede usar **--name**)\n", "\n", "**Ejemplo:**\n", "\n", "```conda create -n clase```\n", "\n", "Pedirá confirmación del usuario para crear el ambiente.\n", "\n", "Para visualizar los ambientes disponibles, se debe ejecutar\n", "\n", "```conda env list``` \n", "\n", "(env = environment = ambiente)\n", "\n", "<img src=\"https://raw.githubusercontent.com/ucmadcursoPythonyR/2020/master/images/env_list.png\" />\n", "\n", "En este caso, podemos ver que están disponibles tres ambientes de trabajo:\n", "\n", "* base ( * significa que es el ambiente que por defecto se inicializa al iniciar Anaconda)\n", "* clase\n", "* tf2" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "KdoqEbi5ESDu" }, "source": [ "## <span style=\"color:#4361EE\">Activando Ambientes</span>\n", "\n", "Para **activar** un ambiente de trabajo, se ejecuta\n", "\n", "```conda activate myenv```\n", "\n", "Para **desactivar** el ambiente se ejecuta\n", "\n", "```conda deactivate```\n", "\n", "**Ejemplo:**\n", "\n", "<img src=\"https://raw.githubusercontent.com/ucmadcursoPythonyR/2020/master/images/conda_activate.png\" />\n", "\n", "Podemos ver como se cambia de **(base)** a **(clase)** y luego se desactiva y se vuelve a **(base)**\n", "\n", "Veamos que hay dentro del ambiente **(clase)**:\n", "\n", "<img src=\"https://raw.githubusercontent.com/ucmadcursoPythonyR/2020/master/images/conda_list.png\" />\n", "\n", "Como no hemos pedido que instale ningún paquete, éste ambiente está **vacío**.\n", "\n", "Vamos entonces a agregar unas cuantas cosas." ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "qiNU7evtESDz" }, "source": [ "## <span style=\"color:#4361EE\">Instalando Paquetes en Ambientes Diferentes del (base)</span>\n", "\n", "Es importante hacer esto, sobre todo cuando se hacen proyectos profesionales.\n", "\n", "Queremos administrar versiones compatibles de paquetes, ya sean anteriores o nuevas, para poder ejecutar cualquier tipo de código existente en la Web.\n", "\n", "Para **instalar un paquete** en un ambiente de trabajo, debemos activarlo y usar el comando ```conda install pkgname``` (pkgname = nombre del paquete):\n", "\n", "**Ejemplo**\n", "\n", "```conda activate clase```\n", "\n", "```conda install python=3.5 -y```\n", "\n", "**-y** es un shortcut para no pedir confirmación del usuario (algo parecido a \"*yes, you will!*\" )\n", "\n", "<img src=\"https://raw.githubusercontent.com/ucmadcursoPythonyR/2020/master/images/conda_install.png\" />\n", "\n", "Ahora podemos ver los **nuevos paquetes** instalados en el nuevo ambiente de trabajo:\n", "\n", "<img src=\"https://raw.githubusercontent.com/ucmadcursoPythonyR/2020/master/images/conda_list2.png\" />" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "R_Feki0-ESD4" }, "source": [ "## <span style=\"color:#4361EE\">¿Cómo Eliminar Ambientes y Por Qué es Importante Todo Esto?</span>\n", "\n", "La idea detrás de los ambientes de trabajo es poder tener una alternativa a la configuración por default que tiene Anaconda.\n", "\n", "Si algo llegase a fallar en el (base) por algún paquete que instalemos mal, es muy posible que toque **reinstalar** todo el software de Anaconda desde cero, lo cual es bastante largo en Windows.\n", "\n", "En cambio, si tenemos un ambiente separado del (base) y lo dañamos, podremos eliminarlo facilmente sin afectar al (base), ejecutando \n", "\n", "```conda env remove --name myenv -y```\n", "\n", "Esto es una manera bastante inteligente de trabajar con software.\n", "\n", "Muchos lenguajes cerrados de programación no tienen estas opciones, por lo que si falla algo interno, es necesario llamar a soporte y esperar un buen tiempo a que se solucione el problema. \n", "\n", "En algunas ocasiones, se tendrá que esperar a que se realice una nueva versión del programa.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zpVD6VkHESD7" }, "source": [ "## <span style=\"color:#4361EE\">Tareas:</span>\n", "\n", "- Crear un ambiente llamado tf2 que contenga jupyter, jupyterlab y tensorflow.\n", "\n", "- ¿Qué versión de Python es implicada por la instalación?, ¿Es la más actual?\n", "\n", "- Crear un ambiente llamado clase que contenga jupyter, jupyterlab, numpy y pandas.\n", "\n", "- ¿Qué versión de Numpy es implicada por la instalación?, ¿Es la más actual?\n", "\n", "- Halle en la Web algún código que ejecute en versiones viejas de Python no compatibles con las actuales." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "<figure>\n", "<img src=\"../imagenes/logo-final-ap.png\" width=\"80\" height=\"80\" align=\"right\"/> \n", "</figure>" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "Ambientes.ipynb", "provenance": [] }, "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.9" } }, "nbformat": 4, "nbformat_minor": 4 }