{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Flujo de la implementación\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configuración de pipeline\n", "Tus pipelines son configurados por dos archivos, shoot-config.json y layout-config.json. Puedes editar cosas como los hiperparámetros, las variables ambientales de implementación y los tipos de instancias. A continuación se describen las propiedades que cambias o debes cambiar. \n", "\n", "|Nombre del parámetro| Descripción | Valor sugerido|\n", "|---|---|---|\n", "|frameworkversion|versión del marco de trabajo|\"1.3.0\"|\n", "|inputmode|\"Archivo\" o \"Tubería\" según qué modo de entrada desees|\"File\"|\n", "|hyperparameters|hiperparámetros de valores clave para enviar a tu trabajo de entrenamiento|{}|\n", "|channels|los canales de datos para la instancia, el valor sugerido creará un canal de datos de entrenamiento que apuntará a datos con el prefijo \"data/train\" en el bucket de datos|{\"train\":{\"path\":\"data/train\"}}|\n", "|trainvolumesize|qué cantidad de almacenamiento EBS adjuntar a las instancias de entrenamiento|\"5\"|\n", "|traininstancecount|cuántas instancias deseas usar para la capacitación|1|\n", "|hostinstancetype|inference instance type|\"ml.t2.medium\"|\n", "|traininstancetype|tipo de instancia de entrenamiento|\"ml.m5.large\"|\n", "\n", "para los detalles sobre posibles parámetros y valores, consulta la [documentación aws-sagemaker-build](https://github.com/aws-samples/aws-sagemaker-build#Parameters). Cuando ejecutes el script startPipeline.js, estos archivos de configuración se fusionarán en el almacén de parámetros SSM que configura los pipelines.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Probar el punto final implementado\n", "para probar el punto final (tu modelo implementado) ejecuta:\n", "- (opcionalmente) edita /bin/testLayout.py o /bin/testShoot.py para configurar/personalizar tu prueba\n", "- ejecuta \n", "```shell\n", "/bin/testLayout.py # test for Defensive team\n", "/bin/testShoot.py # test for Offensive team\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aplicar tus cambios\n", "una vez que hayas hecho tus cambios y estés listo para implementarlos en la producción, sigue los pasos a continuación\n", "1. ejecuta el siguiente comando para aplicar los archivos de la etapa que cambies\n", "```shell\n", "git add \n", "```\n", "1. aplica tus cambios con un mensaje\n", "```shell\n", "git commit -m \"\"\n", "```\n", "1. aplica tus cambios en el repositorio remoto\n", "```shell\n", "git push origin shoot #for offense\n", "git push origin layout # for defense\n", "```\n", "1. informa a tus operaciones que hay cambios para implementar" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Datos\n", "Todos los juegos se graban y están disponibles en el bucket de archivos de juegos. No podrás acceder al bucket de datos hasta que el grupo de operaciones haya inscrito a tu equipo.\n", "\n", "### Descargar\n", "El siguiente script descargará todos los datos del bucket S3 (configurado en config.js), descomprímelo y fusiónalo en un solo archivo en /data/data.json\n", "```shell\n", "./bin/download_data.sh\n", "```\n", "\n", "### Formato:\n", "El archivo /data/data.json es un archivo json nuevo con una línea eliminada con el siguiente formato\n", "```json\n", "{ \n", " \"Status\":\"Finished\",\n", " \"winner\":\"B\",\n", " \"start_time\":\"\",\n", " \"end_time\":\"\",\n", "\t\"GameId\":\"d0d73e64-bd47-4bb2-ab50-ed0bd1935066\",\n", " \"TeamA\":{\n", " \"layout\":[[0,0 ...],...],\n", " \"score\":0,\n", " \"session\":{},\n", " \"name\":\"purple people eaters\",\n", "\t\t\"shots\":[{\"x\":6,\"y\":1},....]\n", " },\n", " \"TeamB\":{\n", " \"layout\":[[0,0 ...],...],\n", " \"score\":0,\n", " \"session\":{},\n", " \"name\":\"the dr strange loves\",\n", "\t\t\"shots\":[{\"x\":1,\"y\":4},....]\n", "\t }\n", "}\n", "```\n", "|Campo de nivel superior|Descripción|\n", "|---|---|\n", "|Status| Finalizado o Fallido, dependiendo del estado del juego|\n", "|winner| el nombre del equipo ganador|\n", "|start_time| cuándo comenzó el juego|\n", "|end_time| cuándo terminó el juego|\n", "|GameId| Un ID único del juegoPuede ser usado con la página web de replay para ver un juego específico|\n", "\n", "|Campo del Equipo*|Descripción|\n", "|---|---|\n", "|layout|la distribución de barcos en este juego|\n", "|score| cuántos casilleros de barcos fueron acertados por este equipo|\n", "|session| el último estado de la sesión en este juego para este equipo|\n", "|shots| una lista ordenada de disparos para este juego. disparos[0] es el primer disparo, disparos[1] es el segundo etc.|\n", "|name| el nombre de equipo para este equipo|\n", "\n", "### Cargar datos de entrenamiento\n", "después de haber hecho cualquier modificación a los datos, deberás cargarlos al bucket de datos correspondiente ejecutando lo siguiente\n", "```shell\n", "./bin/upload_data.json\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Transferir y aplicar\n", "Cuando tengas un nuevo código escrito y terminado para entrenar e implementar tu modelo, aplica los cambios a tu módulo git e indica al equipo de operaciones que incorpore tus cambios e implemente tu código.\n", "\n", "```shell\n", "git commit -a -m \"I am adding these features \"\n", "git push -u origin $(git branch-name)\n", "```" ] }, { "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }