{
"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
}