{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Análisis\n", "Tu primer modelo simplemente coloca barcos de tamaño 2 aleatoriamente. Dado que puedes fabricar barcos de muchos tamaños diferentes, nos gustaría saber cuál es la mejor forma. Quizá también deberás cambiar la forma de tus barcos, ya que los modelos de disparo de otros equipos aprenderán los patrones de tu esquema. En este modelo, en cada juego, tu modelo elegirá una de dos estrategias de distribución diferentes y luego usarás [Amazon Athena](https://aws.amazon.com/athena/) para ver los resultados. Puedes repetir el experimento con nuevos tamaños y formas de barcos para ver si puedes encontrar mejores estrategias." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Código \n", "El código de tu segundo modelo está en /containers/Layout/2vs3 y contiene los siguientes archivos\n", " \n", "- ### /containers/Layout/2vs3/Makefile\n", "Makefile para crear el archivo tar.gz del código para los contenedores del entorno de trabajo de sagemaker\n", "\n", "- ### [/containers/Layout/2vs3/host.py](/edit/GameDayRepo/containers/Layout/2vs3/host.py)\n", "El código para generar inferencias. Además de seleccionar aleatoriamente una estrategia de distribución, también colocará una etiqueta en el atributo de la sesión que usaremos en athena para comparar diferentes juegos. Puedes cambiar el valor de la etiqueta (lo cual deberías hacer por cada modelo) editando el archivo host.py. (no ejecutes este archivo directamente, usa test.py)\n", "\n", "- ### [/containers/Layout/2vs3/test.py](/edit/GameDayRepo/containers/Layout/2vs3/test.py)\n", "código para probar los archivos host.py y train.py localmente. Crea una simulación de tiempo de ejecución de sagemaker para ejecutar train.py y luego test.py. Puedes editar este archivo para personalizar tu prueba. Si recibes un mensaje acerca de dependencias faltantes (como mxnet) simplemente instálalas con:\n", "```shell\n", "pip install mxnet # for example\n", "```\n", "\n", "- ### [/containers/Layout/2vs3/train.py](/edit/GameDayRepo/containers/Layout/2vs3/train.py)\n", "el código de entrenamiento (no ejecutes este archivo directamente, usa test.py)\n", "\n", "\n", "A continuación, ejecuta el script de prueba localmente para confirmar que el script funciona.\n", "```shell\n", "python ./test.py\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configurar\n", "Antes de poder implementar tu segundo modelo, debes configurar la implementación. Como se describe en el [Cuadernillo de punto final](../Endpoint_Reference.ipynb), editarás para la configuración de la implementación en [/layout-config.json](/edit/GameDayRepo/layout-config.json). deberás editar el siguiente campo según los siguientes valores\n", "\n", "|campo de parámetro|Valor|\n", "|---|---|\n", "|trainsourcefile|`layout-2vs3.tar.gz`|\n", "|hostsourcefile|`layout-2vs3.tar.gz`|\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Implementar\n", "1. sigue las instrucciones desde la referencia del punto final para aplicar tu código y los cambios, y luego transferir tus cambios al módulo remoto\n", "2. indica a operaciones que implementen tus cambios" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Siguientes pasos\n", "A continuación, monitorea el desempeño de tu modelo. Consulta [Athena](../Athena.ipynb) para obtener más detalles sobre cómo configurar Athena (reemplaza los valores entre <> como en las instrucciones de Athena). La siguiente consulta mostrará el porcentaje ganado por tamaño de barco (2 o 3).\n", "```sql\n", "SELECT type,\n", " sum(won)/(sum(won)+sum(lost)) as won,\n", " sum(lost)/(sum(won)+sum(lost)) as lost\n", "FROM \n", " (SELECT json_extract(session,'$.size') AS size,\n", " CASE\n", " WHEN winner = '' THEN 1.0\n", " ELSE 0.0\n", " END AS won,\n", " CASE\n", " WHEN winner != '' THEN 1.0\n", " ELSE 0.0\n", " END AS lost\n", " FROM \n", " (SELECT teama.session AS session,\n", " teama.teamname AS team,\n", " winner\n", " FROM \"\".\"\"\n", " UNION\n", " SELECT teamb.session AS session,\n", " teamb.teamname AS team,\n", " winner\n", " FROM \"\".\"\" )\n", " WHERE team = '' )\n", " GROUP BY size\n", "``` \n", "Ahora programa algunos nuevos tamaños o formas de barcos para hacer otra ronda de experimentos, impleméntalos, y vuelve a ejecutar tu consulta de athena para ver el desempeño" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }