diff --git a/.github/ISSUE_TEMPLATE/example-request.md b/.github/ISSUE_TEMPLATE/example-request.md index ece3f7ae07..4a02f80224 100644 --- a/.github/ISSUE_TEMPLATE/example-request.md +++ b/.github/ISSUE_TEMPLATE/example-request.md @@ -18,3 +18,6 @@ A clear and concise description of the use case for this example. **Describe what other services (other than SageMaker) are involved*** + +**Describe which dataset could be used. Provide its location in s3://sagemaker-sample-files or another source.** + diff --git a/README.md b/README.md index 33e436ff61..20947747e4 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,10 @@ These examples provide a gentle introduction to machine learning concepts as the These examples introduce SageMaker's hyperparameter tuning functionality which helps deliver the best possible predictions by running a large number of training jobs to determine which hyperparameter values are the most impactful. - [XGBoost Tuning](hyperparameter_tuning/xgboost_direct_marketing) shows how to use SageMaker hyperparameter tuning to improve your model fits for the [Targeted Direct Marketing](introduction_to_applying_machine_learning/xgboost_direct_marketing) task. +- [BlazingText Tuning](hyperparameter_tuning/blazingtext_text_classification_20_newsgroups) shows how to use SageMaker hyperparameter tuning with the BlazingText built-in algorithm and 20_newsgroups dataset.. - [TensorFlow Tuning](hyperparameter_tuning/tensorflow_mnist) shows how to use SageMaker hyperparameter tuning with the pre-built TensorFlow container and MNIST dataset. - [MXNet Tuning](hyperparameter_tuning/mxnet_mnist) shows how to use SageMaker hyperparameter tuning with the pre-built MXNet container and MNIST dataset. +- [HuggingFace Tuning](hyperparameter_tuning/huggingface_multiclass_text_classification_20_newsgroups) shows how to use SageMaker hyperparameter tuning with the pre-built HuggingFace container and 20_newsgroups dataset. - [Keras BYO Tuning](hyperparameter_tuning/keras_bring_your_own) shows how to use SageMaker hyperparameter tuning with a custom container running a Keras convolutional network on CIFAR-10 data. - [R BYO Tuning](hyperparameter_tuning/r_bring_your_own) shows how to use SageMaker hyperparameter tuning with the custom container from the [Bring Your Own R Algorithm](advanced_functionality/r_bring_your_own) example. - [Analyzing Results](hyperparameter_tuning/analyze_results) is a shared notebook that can be used after each of the above notebooks to provide analysis on how training jobs with different hyperparameters performed. @@ -244,6 +246,7 @@ These examples show you how to use model-packages and algorithms from AWS Market - [Evaluating ML models from AWS Marketplace for person counting use case](aws_marketplace/using_model_packages/evaluating_aws_marketplace_models_for_person_counting_use_case) will show you how to use two AWS Marketplace GluonCV pre-trained ML models for person counting use case and evaluate each model for performance in different types of crowd images. - [Using Dataset Products](aws_marketplace/using_data) - [Using Dataset Product from AWS Data Exchange with ML model from AWS Marketplace](aws_marketplace/using_data/using_data_with_ml_model) is a sample notebook which shows how a dataset from AWS Data Exchange can be used with an ML Model Package from AWS Marketplace. + - [Using Shutterstock Image Datasets to train Image Classification Models](aws_marketplace/using_data/image_classification_with_shutterstock_image_datasets) provides a detailed walkthrough on how to use the [Free Sample: Images & Metadata of “Whole Foods” Shoppers](https://aws.amazon.com/marketplace/pp/prodview-y6xuddt42fmbu?qid=1623195111604&sr=0-1&ref_=srh_res_product_title#offers) from Shutterstock's Image Datasets to train a multi-label image classification model using Shutterstock's pre-labeled image assets. You can learn more about this implementation [from this blog post](https://aws.amazon.com/blogs/awsmarketplace/using-shutterstocks-image-datasets-to-train-your-computer-vision-models/). ## :balance_scale: License diff --git a/_static/aws-ux-shortbread/index.js b/_static/aws-ux-shortbread/index.js deleted file mode 100644 index e0cf788307..0000000000 --- a/_static/aws-ux-shortbread/index.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Version: 1.0.13 */ -!function(e,c){if("object"==typeof exports&&"object"==typeof module)module.exports=c();else if("function"==typeof define&&define.amd)define([],c);else{var a=c();for(var t in a)("object"==typeof exports?exports:e)[t]=a[t]}}(window,(function(){return function(e){var c={};function a(t){if(c[t])return c[t].exports;var n=c[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=e,a.c=c,a.d=function(e,c,t){a.o(e,c)||Object.defineProperty(e,c,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,c){if(1&c&&(e=a(e)),8&c)return e;if(4&c&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&c&&"string"!=typeof e)for(var n in e)a.d(t,n,function(c){return e[c]}.bind(null,n));return t},a.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(c,"a",c),c},a.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},a.p="",a(a.s=13)}([function(e,c,a){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var c,a=1,t=arguments.length;a0&&r.forEach((function(c){if("string"==typeof c)l.appendChild(t.createTextNode(c));else if("number"==typeof c)l.appendChild(t.createTextNode(r.toString()));else{if(null===c)throw Error("Unsupported child type "+c);e(l,c,t,!0)}})),i?c.appendChild(l):c.insertBefore(l,c.firstChild)}},function(e,c,a){"use strict";var t,n=function(){return void 0===t&&(t=Boolean(window&&document&&document.all&&!window.atob)),t},i=function(){var e={};return function(c){if(void 0===e[c]){var a=document.querySelector(c);if(window.HTMLIFrameElement&&a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head}catch(e){a=null}e[c]=a}return e[c]}}(),o=[];function s(e){for(var c=-1,a=0;a-1?"awsccc-Rtl":"";function b(){return document.querySelector("div[data-id="+s.BANNER_ID+"]")}function f(){return document.querySelector("div[data-id="+s.CUSTOMIZE_ID+"]")}function h(e,c){var a=document.querySelector("label[data-id=awsccc-u-cb-"+e+"-label]"),t=a.classList,n=a.querySelector("input");c?(n.setAttribute("checked",""),t.add("awsccc-u-cb-checkbox-active")):(t.remove("awsccc-u-cb-checkbox-active"),n.removeAttribute("checked")),n.setAttribute("aria-checked",""+c)}var g=function(e){var c=e.event,a=e.category;"checkbox"!==c.target.getAttribute("type")&&"awsccc-cs-s-title"!==c.target.getAttribute("class")||h(a,!p(a))},m=function(c){return function(a,t){var n=b().querySelector("div[data-id=awsccc-cb-tabstart]");document.querySelector("div[data-id="+s.CUSTOMIZE_ID+"]").style.display="none",b().style.display="none",n.setAttribute("tabindex","-1"),e.onSaveConsent(a),document.body.classList.remove("awsccc-cs-modal-open"),e.log("info")(c,{detail:"Save Consent Clicked",source:t,cookie:e.getConsentCookie()})}},k=function(e){"Escape"===e.key&&x()},v=function(){return e.getConsentCookie()||u.DEFAULT_COOKIE},w=function(c){var a;a=v(),o.COOKIE_CATEGORIES.filter((function(e){return e!==o.ESSENTIAL})).forEach((function(e){h(e,a[e])})),f().addEventListener("keydown",k),f().style.display="block",document.body.classList.add("awsccc-cs-modal-open");var t=document.querySelectorAll("div[data-id="+s.TABTRAP_ID+"]");l.convertToArray(t).forEach((function(e,c){0===c&&e.focus({preventScroll:!0}),e.setAttribute("tabindex","0")})),e.log("info")("customizeCookies",{detail:"Customize Consent Clicked",source:c,cookie:e.getConsentCookie()})},x=function(){f().removeEventListener("keydown",k),f().style.display="none",document.body.classList.remove("awsccc-cs-modal-open");var c=f().querySelectorAll("div[data-id="+s.TABTRAP_ID+"]");(l.convertToArray(c).forEach((function(e){e.setAttribute("tabindex","-1")})),"block"===b().style.display)&&b().querySelector("div[data-id=awsccc-cb-tabstart]").focus({preventScroll:!0});e.onModalClose&&e.onModalClose()};return d.default((function(){document.querySelector("#"+s.CONTAINER_ID)||t.render(e.parent||document.body,t.act("div",{id:s.CONTAINER_ID},t.act("div",{id:s.APP_ID,class:a},t.act(n.default,{showConsentSelector:w,handleSaveClick:m("acceptAll"),localizedText:c.consentBanner,hasConsoleNavFooter:e.hasConsoleNavFooter}),t.act(i.default,{consentState:v(),handleSaveClick:m("customize"),handleCheckboxToggle:g,localizedText:c.consentSelector,closeConsentSelector:x,darkModeEnabled:e.hasConsoleNavFooter}))))})),{showConsentSelector:function(e){d.default((function(){w(e)}))},showBanner:function(e){d.default((function(){var c;c=b().querySelector("div[data-id=awsccc-cb-tabstart]"),b().style.display="block",c.setAttribute("tabindex","0"),c.focus({preventScroll:!0}),e()}))}}}c.isChecked=p,c.default={createShortbreadUi:function(e){return b(e)}}},function(e,c,a){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var c,a=1,t=arguments.length;a0)try{var o=JSON.parse(atob(n[n.length-1]));return 1===(t=o).e&&"number"==typeof t.p&&"number"==typeof t.f&&"number"==typeof t.a&&"string"==typeof t.i&&"string"==typeof t.v?{essential:1===(a=o).e,performance:1===a.p,functional:1===a.f,advertising:1===a.a,id:a.i,version:a.v}:void i("getCookie",{detail:"Cookie format is not valid",cookie:o})}catch(e){return void i("getCookie",{detail:"Error parsing cookie",cookie:n[n.length-1]})}}function s(e){document.cookie=e}c.getConsentCookie=function(e,c){void 0===e&&(e=function(){return document.cookie});var a=o(e(),c);if(a)return{essential:a.essential,performance:a.performance,functional:a.functional,advertising:a.advertising}},c.setConsentCookie=function(e,c,a,r,l,u,d,p){void 0===c&&(c=".aws.amazon.com"),void 0===a&&(a=i.DEFAULT_COOKIE_AGE),void 0===r&&(r=n.default),void 0===l&&(l=s);var b,f=function(e){void 0===e&&(e=function(){return document.cookie});var c=o(e());if(c&&c.id)return c.id}()||r(u,d,p),h=t(t({},e),{id:f,version:i.COOKIE_VERSION}),g={e:(b=h).essential?1:0,p:b.performance?1:0,f:b.functional?1:0,a:b.advertising?1:0,i:b.id,v:b.version};return l("awsccc="+btoa(JSON.stringify(g))+"; domain="+c+"; path=/; max-age="+a+"; secure=true; SameSite=Lax"),h}},function(e,c,a){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var t=a(46);c.default=function(e,c,a){void 0===c&&(c=t.v4),void 0===a&&(a=function(){return"ts-"+Date.now().toString()});var n=e?e("error"):function(){};try{return c()}catch(e){return n("uuid",{detail:"Error generating UUID",errorMessage:e.message||""}),a()}}},function(e,c,a){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.queryGeolocationByHttpGetRequest=c.timestampUrl=c.QUERY_PARAM_KEY=void 0;var t=a(12);c.QUERY_PARAM_KEY="awsccc",c.timestampUrl=function(e){if(-1!==e.indexOf("?")){var a=e.split("?");e=a[0]+"?"+c.QUERY_PARAM_KEY+"="+Date.now()+"&"+a[1]}else{if(-1===e.indexOf("#"))return e+"?"+c.QUERY_PARAM_KEY+"="+Date.now();a=e.split("#");e=a[0]+"?"+c.QUERY_PARAM_KEY+"="+Date.now()+"#"+a[1]}return e},c.queryGeolocationByHttpGetRequest=function(e,a,n){function i(c,a,t,n,i){c("info")("geolocationLatency",{metric:a,region:t,detail:n,url:e,status:i.status})}return void 0===e&&(e="https://prod.tools.shortbread.aws.dev/1x1.png"),void 0===a&&(a=5e3),void 0===n&&(n=t.DEFAULT_LOGGER),function(o,s){void 0===s&&(s=n||t.DEFAULT_LOGGER);var r=Date.now(),l=new XMLHttpRequest;l.addEventListener("load",(function(){var e=403===l.status?"NON-EU":"EU";i(s,Date.now()-r,e,"Geolocation Response Received",l),o(e)})),l.addEventListener("timeout",(function(){o("EU");var c="Geolocation Request Timed out";i(s,a,"EU",c,l),s("error")("geolocationRequestTimeout",{url:e,timeoutSetting:a,detail:c})})),l.open("GET",c.timestampUrl(e)),l.timeout=a,l.send()}},c.default=c.queryGeolocationByHttpGetRequest},function(e,c,a){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var c,a=1,t=arguments.length;aspan{color:#687078}",""]),e.exports=c},function(e,c,a){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var t=a(0),n=a(6),i=a(3);a(35);var o=a(5);c.default=function(e){var c=e.handleSaveClick,a=e.handleCancelClick,s=e.localizedText;return t.act("div",{id:"awsccc-cs-f-c"},t.act(n.default,{dataId:i.CUSTOMIZE_CANCEL_BTN_ID,variant:"secondary",events:{onclick:a},text:s["button-cancel"],props:{"aria-label":s["button-cancel-aria-label"]}}),t.act(n.default,{dataId:i.CUSTOMIZE_SAVE_BTN_ID,variant:"primary",events:{onclick:function(){c({essential:!0,performance:o.isChecked("performance"),functional:o.isChecked("functional"),advertising:o.isChecked("advertising")},"preferencesModal")}},text:s["button-save"],props:{"aria-label":s["button-save-aria-label"]}}))}},function(e,c,a){var t=a(1),n=a(36);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var i={insert:"head",singleton:!1};t(n,i);e.exports=n.locals||{}},function(e,c,a){(c=a(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl #awsccc-cs-f-c{text-align:left}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c{text-decoration:none;padding:10px 20px;text-align:right;border-top:1px solid #eaeded;display:flex;justify-content:center;flex-wrap:wrap}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn{margin-left:10px}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary{background-color:#fff;border-color:#fff;color:#545b64;margin-bottom:6px}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary:hover{color:#000;background-color:#fafafa}@media screen and (min-width: 700px){#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c{display:block}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-f-c .awsccc-u-btn.awsccc-u-btn-secondary{margin-bottom:0}}",""]),e.exports=c},function(e,c,a){var t=a(1),n=a(38);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var i={insert:"head",singleton:!1};t(n,i);e.exports=n.locals||{}},function(e,c,a){(c=a(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-container{display:flex;align-items:center;justify-items:center;bottom:0;left:0;right:0;top:0;position:fixed;z-index:10002;outline:0;overflow:hidden}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-container-inner{max-width:820px;box-sizing:border-box;outline:none;margin:10px auto;width:calc(100vw - 20px)}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-content{background-color:#fff;border-radius:0;box-sizing:border-box;margin-bottom:0;word-wrap:break-word;box-shadow:0 1px 1px 0 rgba(0,28,36,.3),1px 1px 1px 0 rgba(0,28,36,.15),-1px 1px 1px 0 rgba(0,28,36,.15)}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-header{background-color:#fafafa;padding:19px 20px;border-bottom:1px solid #eaeded}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-title{min-width:0;word-break:break-word;color:#16191f;flex:auto}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-title h2{font-size:18px;font-weight:700;margin:0}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalBody{overflow-y:auto;max-height:calc(100vh - 200px);padding:19px 20px}@media screen and (max-width: 480px){#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalBody{max-height:calc(100vh - 275px)}}#awsccc-sb-ux-c #awsccc-sb-a #awsccc-cs-modalOverlay{background-color:rgba(242,243,243,.9);position:fixed;z-index:10001;right:0;top:0;bottom:0;left:0}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalOverlay{background-color:rgba(22,25,31,.8)}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-header{background-color:#21252c;border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-title h2{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody #awsccc-cs-i-container{border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody #awsccc-cs-i-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container{border-bottom:1px solid #414750}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container h3{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container p{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container rect{fill:#1a2029}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-cs-s-text{border-top:0}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awscc-u-cb-checkbox-poly-line{display:none}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-u-cb-checkbox-active .awscc-u-cb-checkbox-poly-line{display:inline-block}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-modalBody .awsccc-cs-s-container .awsccc-u-cb-checkbox-active .awscc-u-cb-checkbox-rect{fill:#00a1c9;stroke:#00a1c9}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c{border-top:1px solid #414750;background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary{background-color:#2a2e33}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary span{color:#d5dbdb}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-secondary:hover{background-color:#21252c}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-f-c .awsccc-u-btn-primary span{color:#16191f}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span{color:#eaeded}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span a{display:inline-block}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container span a span{color:#44b9d6}#awsccc-sb-ux-c #awsccc-sb-a .dark-mode-enabled #awsccc-cs-l-container path{color:#44b9d6}div[data-id=awsccc-cs]{display:none}",""]),e.exports=c},function(e,c,a){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var t=a(0);a(40),c.default=function(){return t.act("div",{class:"awsccc-u-i-open-c"},t.act("svg",{class:"awsccc-u-i-open",viewBox:"0 0 16 16",focusable:"false","aria-hidden":"true"},t.act("path",{class:"awsccc-stroke-linecap-square",d:"M10 2h4v4"}),t.act("path",{d:"M6 10l8-8"}),t.act("path",{class:"awsccc-stroke-linejoin-round",d:"M14 9.048V14H2V2h5"})))}},function(e,c,a){var t=a(1),n=a(41);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var i={insert:"head",singleton:!1};t(n,i);e.exports=n.locals||{}},function(e,c,a){(c=a(2)(!1)).push([e.i,"#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c{display:inline-block;vertical-align:middle;line-height:1em;padding-left:.3em}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg{stroke-width:2px;pointer-events:none;fill:none;padding-bottom:1px;height:10px;width:10px}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg .awsccc-stroke-linecap-square{stroke-linecap:square}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg .awsccc-stroke-linejoin-round{stroke-linejoin:round}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-u-i-open-c svg path{stroke:currentColor}",""]),e.exports=c},function(e,c,a){var t=a(1),n=a(43);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var i={insert:"head",singleton:!1};t(n,i);e.exports=n.locals||{}},function(e,c,a){(c=a(2)(!1)).push([e.i,'#awsccc-sb-ux-c #awsccc-sb-a *{font-family:"Amazon Ember","HelveticaNeue","Helvetica Neue","Amazon Ember",Roboto,"Roboto-Regular","Amazon Ember",Helvetica,Arial,sans-serif;font-size:14px;line-height:21px;color:#16191f;text-align:left;background:none;border:0}#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl *{direction:rtl;text-align:right}#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl .awsccc-cs-s-container .awsccc-cs-s-action{right:auto;left:20px}@media screen and (min-width: 1020px){#awsccc-sb-ux-c #awsccc-sb-a.awsccc-Rtl #awsccc-cb-c #awsccc-cb-title{padding-right:40px}}#awsccc-sb-ux-c #awsccc-sb-a a,#awsccc-sb-ux-c #awsccc-sb-a a>span,#awsccc-sb-ux-c #awsccc-sb-a a svg path{color:#0073bb;text-decoration:none}#awsccc-sb-ux-c #awsccc-sb-a a:hover,#awsccc-sb-ux-c #awsccc-sb-a a>span:hover,#awsccc-sb-ux-c #awsccc-sb-a a svg path:hover{color:#0073bb;text-decoration:underline}#awsccc-sb-ux-c #awsccc-sb-a .awsccc-tab-helper{outline:0;text-decoration:none}.awsccc-cs-modal-open{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}',""]),e.exports=c},function(e,c,a){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.convertToArray=c.update=void 0,c.update=function(e,c){return Object.keys(c).forEach((function(a){e[a]=c[a]})),e},c.convertToArray=function(e){return Array.prototype.slice.call(e)}},function(e,c,a){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.default=function(e,c,a){function t(){c.removeEventListener("DOMContentLoaded",t),a.removeEventListener("load",t),e()}void 0===c&&(c=document),void 0===a&&(a=window),"loading"!==c.readyState?a.setTimeout(e):(c.addEventListener("DOMContentLoaded",t),a.addEventListener("load",t))}},function(e,c,a){"use strict";a.r(c),a.d(c,"v1",(function(){return b})),a.d(c,"v3",(function(){return y})),a.d(c,"v4",(function(){return C})),a.d(c,"v5",(function(){return A}));var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),n=new Uint8Array(16);function i(){if(!t)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(n)}for(var o=[],s=0;s<256;++s)o.push((s+256).toString(16).substr(1));var r,l,u=function(e,c){var a=c||0,t=o;return(t[e[a+0]]+t[e[a+1]]+t[e[a+2]]+t[e[a+3]]+"-"+t[e[a+4]]+t[e[a+5]]+"-"+t[e[a+6]]+t[e[a+7]]+"-"+t[e[a+8]]+t[e[a+9]]+"-"+t[e[a+10]]+t[e[a+11]]+t[e[a+12]]+t[e[a+13]]+t[e[a+14]]+t[e[a+15]]).toLowerCase()},d=0,p=0;var b=function(e,c,a){var t=c&&a||0,n=c||[],o=(e=e||{}).node||r,s=void 0!==e.clockseq?e.clockseq:l;if(null==o||null==s){var b=e.random||(e.rng||i)();null==o&&(o=r=[1|b[0],b[1],b[2],b[3],b[4],b[5]]),null==s&&(s=l=16383&(b[6]<<8|b[7]))}var f=void 0!==e.msecs?e.msecs:Date.now(),h=void 0!==e.nsecs?e.nsecs:p+1,g=f-d+(h-p)/1e4;if(g<0&&void 0===e.clockseq&&(s=s+1&16383),(g<0||f>d)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=f,p=h,l=s;var m=(1e4*(268435455&(f+=122192928e5))+h)%4294967296;n[t++]=m>>>24&255,n[t++]=m>>>16&255,n[t++]=m>>>8&255,n[t++]=255&m;var k=f/4294967296*1e4&268435455;n[t++]=k>>>8&255,n[t++]=255&k,n[t++]=k>>>24&15|16,n[t++]=k>>>16&255,n[t++]=s>>>8|128,n[t++]=255&s;for(var v=0;v<6;++v)n[t+v]=o[v];return c||u(n)};var f=function(e,c,a){function t(e,t,n,i){var o=n&&i||0;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var c=[],a=0;a>>9<<4)+1}function g(e,c){var a=(65535&e)+(65535&c);return(e>>16)+(c>>16)+(a>>16)<<16|65535&a}function m(e,c,a,t,n,i){return g((o=g(g(c,e),g(t,i)))<<(s=n)|o>>>32-s,a);var o,s}function k(e,c,a,t,n,i,o){return m(c&a|~c&t,e,c,n,i,o)}function v(e,c,a,t,n,i,o){return m(c&t|a&~t,e,c,n,i,o)}function w(e,c,a,t,n,i,o){return m(c^a^t,e,c,n,i,o)}function x(e,c,a,t,n,i,o){return m(a^(c|~t),e,c,n,i,o)}var y=f("v3",48,(function(e){if("string"==typeof e){var c=unescape(encodeURIComponent(e));e=new Uint8Array(c.length);for(var a=0;a>5]>>>t%32&255,i=parseInt("0123456789abcdef".charAt(n>>>4&15)+"0123456789abcdef".charAt(15&n),16);c.push(i)}return c}(function(e,c){e[c>>5]|=128<>5]|=(255&e[t/8])<>>32-c}var A=f("v5",80,(function(e){var c=[1518500249,1859775393,2400959708,3395469782],a=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=[];for(var n=0;n>>0;v=k,k=m,m=_(g,30)>>>0,g=h,h=y}a[0]=a[0]+h>>>0,a[1]=a[1]+g>>>0,a[2]=a[2]+m>>>0,a[3]=a[3]+k>>>0,a[4]=a[4]+v>>>0}return[a[0]>>24&255,a[0]>>16&255,a[0]>>8&255,255&a[0],a[1]>>24&255,a[1]>>16&255,a[1]>>8&255,255&a[1],a[2]>>24&255,a[2]>>16&255,a[2]>>8&255,255&a[2],a[3]>>24&255,a[3]>>16&255,a[3]>>8&255,255&a[3],a[4]>>24&255,a[4]>>16&255,a[4]>>8&255,255&a[4]]}))}])})); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/_static/aws-ux-shortbread/init.js b/_static/aws-ux-shortbread/init.js deleted file mode 100644 index f8cb6ace3b..0000000000 --- a/_static/aws-ux-shortbread/init.js +++ /dev/null @@ -1,34 +0,0 @@ -(function (w) { -w.URLSearchParams = w.URLSearchParams || function (searchString) { - var self = this; - self.searchString = searchString; - self.get = function (name) { - var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(self.searchString); - if (results === null) { - return null; - } - else { - return decodeURI(results[1]) || 0; - } - }; -} -})(window); - -const queryString = window.location.search; -const urlParams = new URLSearchParams(queryString); -const lang = urlParams.get('lang') -window.onload = function () { -var domainName = window.location.hostname; - -// remove an instance of shortbread if already exists -var existingShortbreadEl = document.getElementById("awsccc-sb-ux-c"); -existingShortbreadEl && existingShortbreadEl.remove(); - -var shortbread = AWSCShortbread({ - domain: domainName, - language: lang, - //queryGeolocation: function (geolocatedIn) { geolocatedIn("EU") }, -}); - -shortbread.checkForCookieConsent(); -} diff --git a/advanced_functionality/README.md b/advanced_functionality/README.md index 37f509fb17..275662f511 100644 --- a/advanced_functionality/README.md +++ b/advanced_functionality/README.md @@ -8,6 +8,7 @@ These examples that showcase unique functionality available in Amazon SageMaker. - [Encrypting Your Data](handling_kms_encrypted_data) shows how to use Server Side KMS encrypted data with Amazon SageMaker training. The IAM role used for S3 access needs to have permissions to encrypt and decrypt data with the KMS key. - [Using Parquet Data](parquet_to_recordio_protobuf) shows how to bring [Parquet](https://parquet.apache.org/) data sitting in S3 into an Amazon SageMaker Notebook and convert it into the recordIO-protobuf format that many SageMaker algorithms consume. - [Connecting to Redshift](working_with_redshift_data) demonstrates how to copy data from Redshift to S3 and vice-versa without leaving Amazon SageMaker Notebooks. +- [Bring Your Own scikit-learn Model](scikit_learn_bring_your_own_model) shows how to use Amazon SageMaker scikit-learn container to bring a pre-trained model to a realtime hosted endpoint without ever needing to think about REST APIs. - [Bring Your Own XGBoost Model](xgboost_bring_your_own_model) shows how to use Amazon SageMaker Algorithms containers to bring a pre-trained model to a realtime hosted endpoint without ever needing to think about REST APIs. - [Bring Your Own k-means Model](kmeans_bring_your_own_model) shows how to take a model that's been fit elsewhere and use Amazon SageMaker Algorithms containers to host it. - [Installing the R Kernel](install_r_kernel) shows how to install the R kernel into an Amazon SageMaker Notebook Instance. diff --git a/advanced_functionality/autogluon-tabular-containers/AutoGluon_Tabular_SageMaker_Containers.ipynb b/advanced_functionality/autogluon-tabular-containers/AutoGluon_Tabular_SageMaker_Containers.ipynb new file mode 100644 index 0000000000..c717e35c94 --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/AutoGluon_Tabular_SageMaker_Containers.ipynb @@ -0,0 +1,765 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8cc97d20", + "metadata": {}, + "source": [ + "# AutoGluon Tabular with Deep Learning Containers on SageMaker" + ] + }, + { + "cell_type": "markdown", + "id": "ed0a4f78", + "metadata": {}, + "source": [ + "[AutoGluon](https://github.com/awslabs/autogluon) automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy deep learning models on tabular, image, and text data.\n", + "This example shows how to use AutoGluon-Tabular with Amazon SageMaker by applying [pre-built deep learning containers](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#autogluon-training-containers)." + ] + }, + { + "cell_type": "markdown", + "id": "4f94e506", + "metadata": {}, + "source": [ + "# Prerequisites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "711d1879", + "metadata": {}, + "outputs": [], + "source": [ + "import sagemaker\n", + "import pandas as pd\n", + "import numpy as np\n", + "from ag_model import AutoGluonTraining, AutoGluonInferenceModel, AutoGluonTabularPredictor\n", + "from sagemaker import utils\n", + "from sagemaker.serializers import CSVSerializer\n", + "import os\n", + "\n", + "role = sagemaker.get_execution_role()\n", + "sagemaker_session = sagemaker.session.Session()\n", + "region = sagemaker_session._region_name\n", + "\n", + "bucket = sagemaker_session.default_bucket()\n", + "s3_prefix = f\"autogluon_sm/{utils.sagemaker_timestamp()}\"\n", + "output_path = f\"s3://{bucket}/{s3_prefix}/output/\"" + ] + }, + { + "cell_type": "markdown", + "id": "187ab748", + "metadata": {}, + "source": [ + "### Get the data\n", + "We'll be using the [Adult Census dataset](https://archive.ics.uci.edu/ml/datasets/adult) for this exercise. \n", + "This data was extracted from the [1994 Census bureau database](http://www.census.gov/en.html) by Ronny Kohavi and Barry Becker (Data Mining and Visualization, Silicon Graphics), with the task being to predict if an individual person makes over 50K a year. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07c8b18f", + "metadata": {}, + "outputs": [], + "source": [ + "!mkdir -p data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "88e63263", + "metadata": {}, + "outputs": [], + "source": [ + "columns = [\n", + " \"age\",\n", + " \"workclass\",\n", + " \"fnlwgt\",\n", + " \"education\",\n", + " \"education-num\",\n", + " \"marital-status\",\n", + " \"occupation\",\n", + " \"relationship\",\n", + " \"race\",\n", + " \"sex\",\n", + " \"capital-gain\",\n", + " \"capital-loss\",\n", + " \"hours-per-week\",\n", + " \"native-country\",\n", + " \"class\",\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d62cf065", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = pd.read_csv(\n", + " \"s3://sagemaker-sample-files/datasets/tabular/uci_adult/adult.data\", header=None\n", + ")\n", + "df_train.columns = columns\n", + "df_train.to_csv(\"data/train.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "008c78e1", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.read_csv(\n", + " \"s3://sagemaker-sample-files/datasets/tabular/uci_adult/adult.test\", header=None, skiprows=1\n", + ")\n", + "df_test.columns = columns\n", + "df_test[\"class\"] = df_test[\"class\"].map(\n", + " {\n", + " \" <=50K.\": \" <=50K\",\n", + " \" >50K.\": \" >50K\",\n", + " }\n", + ")\n", + "df_test.to_csv(\"data/test.csv\")" + ] + }, + { + "cell_type": "markdown", + "id": "47a9b23e", + "metadata": {}, + "source": [ + "# Training" + ] + }, + { + "cell_type": "markdown", + "id": "fa06ade7", + "metadata": {}, + "source": [ + "Users can create their own training/inference scripts using [SageMaker Python SDK examples](https://sagemaker.readthedocs.io/en/stable/overview.html#prepare-a-training-script).\n", + "The scripts we created allow to pass AutoGluon configuration as a YAML file (located in `data/config` directory).\n", + "\n", + "We are using [official AutoGluon Deep Learning Container images](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#autogluon-training-containers) with custom training scripts (see `scripts/` directory)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "255bbb99", + "metadata": {}, + "outputs": [], + "source": [ + "ag = AutoGluonTraining(\n", + " role=role,\n", + " entry_point=\"scripts/tabular_train.py\",\n", + " region=region,\n", + " instance_count=1,\n", + " instance_type=\"ml.m5.2xlarge\",\n", + " framework_version=\"0.3.1\",\n", + " base_job_name=\"autogluon-tabular-train\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "8966dc5c", + "metadata": {}, + "source": [ + "Upload the data to s3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1d2add2", + "metadata": {}, + "outputs": [], + "source": [ + "s3_prefix = f\"autogluon_sm/{utils.sagemaker_timestamp()}\"\n", + "train_input = ag.sagemaker_session.upload_data(\n", + " path=os.path.join(\"data\", \"train.csv\"), key_prefix=s3_prefix\n", + ")\n", + "eval_input = ag.sagemaker_session.upload_data(\n", + " path=os.path.join(\"data\", \"test.csv\"), key_prefix=s3_prefix\n", + ")\n", + "config_input = ag.sagemaker_session.upload_data(\n", + " path=os.path.join(\"config\", \"config-med.yaml\"), key_prefix=s3_prefix\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "3fc2f9d7", + "metadata": {}, + "source": [ + "### Fit The Model\n", + "For local training set `instance_type` to local.\n", + "\n", + "For non-local training the recommended instance type is `ml.m5.2xlarge`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d10602e", + "metadata": {}, + "outputs": [], + "source": [ + "job_name = utils.unique_name_from_base(\"test-autogluon-image\")\n", + "ag.fit({\"config\": config_input, \"train\": train_input, \"test\": eval_input}, job_name=job_name)" + ] + }, + { + "cell_type": "markdown", + "id": "21eaae5c", + "metadata": {}, + "source": [ + "### Model export\n", + "\n", + "AutoGluon models are portable: everything needed to deploy a trained model is in the tarball created by SageMaker.\n", + "\n", + "The artifact can be used locally, on EC2/ECS/EKS or served via SageMaker Inference." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3a67917d", + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp {ag.model_data} ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23542165", + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "!ls -alF model.tar.gz" + ] + }, + { + "cell_type": "markdown", + "id": "79c1c176", + "metadata": { + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "source": [ + "# Endpoint Deployment" + ] + }, + { + "cell_type": "markdown", + "id": "bec424d5", + "metadata": {}, + "source": [ + "Upload the model we trained earlier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71bb5010", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "endpoint_name = sagemaker.utils.unique_name_from_base(\"sagemaker-autogluon-serving-trained-model\")\n", + "\n", + "model_data = sagemaker_session.upload_data(\n", + " path=os.path.join(\".\", \"model.tar.gz\"), key_prefix=f\"{endpoint_name}/models\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "3c23409b", + "metadata": {}, + "source": [ + "Deploy remote or local endpoint" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47de1b5e", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "model = AutoGluonInferenceModel(\n", + " model_data=model_data,\n", + " role=role,\n", + " region=region,\n", + " framework_version=\"0.3.1\",\n", + " source_dir=\"scripts\",\n", + " entry_point=\"tabular_serve.py\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8659a03f", + "metadata": {}, + "outputs": [], + "source": [ + "instance_type = \"ml.m5.2xlarge\"\n", + "# instance_type = 'local'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b377372d", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "predictor = model.deploy(\n", + " initial_instance_count=1, serializer=CSVSerializer(), instance_type=instance_type\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "5cf19121", + "metadata": {}, + "source": [ + "### Predict on unlabeled test data\n", + "\n", + "Remove target variable (`class`) from the data and get predictions for a sample of 100 rows using the deployed endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38b676af", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "df = pd.read_csv(\"data/test.csv\")\n", + "data = df.drop(columns=\"class\")[:100].values" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c1c8854", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "preds = predictor.predict(data)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12191d9c", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "p = pd.DataFrame({\"preds\": pd.DataFrame(preds)[0], \"actual\": df[\"class\"][: len(preds)]})\n", + "p.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9aa09241", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "print(f\"{(p.preds==p.actual).astype(int).sum()}/{len(p)} are correct\")" + ] + }, + { + "cell_type": "markdown", + "id": "cf65ac2e", + "metadata": {}, + "source": [ + "### Cleanup Endpoint" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "972620d2", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "predictor.delete_endpoint()" + ] + }, + { + "cell_type": "markdown", + "id": "2828456e", + "metadata": {}, + "source": [ + "# Batch Transform\n", + "\n", + "Deploying a trained model to a hosted endpoint has been available in SageMaker since launch and is a great way to provide real-time predictions to a service like a website or mobile app. But, if the goal is to generate predictions from a trained model on a large dataset where minimizing latency isn’t a concern, then the batch transform functionality may be easier, more scalable, and more appropriate.\n", + "\n", + "[Read more about Batch Transform](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86befaf0", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "endpoint_name = sagemaker.utils.unique_name_from_base(\n", + " \"sagemaker-autogluon-batch_transform-trained-model\"\n", + ")\n", + "\n", + "model_data = sagemaker_session.upload_data(\n", + " path=os.path.join(\".\", \"model.tar.gz\"), key_prefix=f\"{endpoint_name}/models\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32c9ac73", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "model = AutoGluonInferenceModel(\n", + " model_data=model_data,\n", + " role=role,\n", + " region=region,\n", + " framework_version=\"0.3.1\",\n", + " entry_point=\"tabular_serve-batch.py\",\n", + " source_dir=\"scripts\",\n", + " predictor_cls=AutoGluonTabularPredictor,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7b521b5", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "transformer = model.transformer(\n", + " instance_count=1,\n", + " instance_type=\"ml.m5.2xlarge\",\n", + " strategy=\"MultiRecord\",\n", + " max_payload=6,\n", + " max_concurrent_transforms=1,\n", + " output_path=output_path,\n", + " accept=\"application/json\",\n", + " assemble_with=\"Line\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "463aa8ff", + "metadata": {}, + "source": [ + "Prepare data for batch transform" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "209ecf3a", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "pd.read_csv(f\"data/test.csv\")[:100].to_csv(\"data/test_no_header.csv\", header=False, index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "1b05b046", + "metadata": {}, + "source": [ + "Upload data to sagemaker session" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1b34e930", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "test_input = transformer.sagemaker_session.upload_data(\n", + " path=os.path.join(\"data\", \"test_no_header.csv\"), key_prefix=s3_prefix\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91459b63", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "transformer.transform(\n", + " test_input,\n", + " input_filter=\"$[:14]\", # filter-out target variable\n", + " split_type=\"Line\",\n", + " content_type=\"text/csv\",\n", + " output_filter=\"$['class']\", # keep only prediction class in the output\n", + ")\n", + "\n", + "transformer.wait()" + ] + }, + { + "cell_type": "markdown", + "id": "0c6ab00e", + "metadata": {}, + "source": [ + "Download batch transform outputs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc840f3a", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "!aws s3 cp {transformer.output_path[:-1]}/test_no_header.csv.out ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c505891", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "p = pd.concat(\n", + " [\n", + " pd.read_json(\"test_no_header.csv.out\", orient=\"index\")\n", + " .sort_index()\n", + " .rename(columns={0: \"preds\"}),\n", + " pd.read_csv(\"data/test.csv\")[[\"class\"]].iloc[:100].rename(columns={\"class\": \"actual\"}),\n", + " ],\n", + " axis=1,\n", + ")\n", + "p.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a0a8d5db", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "print(f\"{(p.preds==p.actual).astype(int).sum()}/{len(p)} are correct\")" + ] + }, + { + "cell_type": "markdown", + "id": "15658e6e", + "metadata": { + "jupyter": { + "outputs_hidden": false + }, + "pycharm": { + "name": "#%%\n" + } + }, + "source": [ + "# Conclusion\n", + "\n", + "In this tutorial we successfully trained an AutoGluon model and explored a few options how to deploy it using SageMaker. Any of the sections of this tutorial (training/endpoint inference/batch inference) can be used independently (i.e. train locally, deploy to SageMaker, or vice versa).\n", + "\n", + "Next steps:\n", + "* [Learn more](https://auto.gluon.ai) about AutoGluon, explore [tutorials](https://auto.gluon.ai/stable/tutorials/index.html).\n", + "* Explore [SageMaker inference documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09168df8", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (MXNet 1.8 Python 3.7 CPU Optimized)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/mxnet-1.8-cpu-py37-ubuntu16.04-v1" + }, + "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.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/advanced_functionality/autogluon-tabular-containers/README.md b/advanced_functionality/autogluon-tabular-containers/README.md new file mode 100644 index 0000000000..2caf270ec3 --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/README.md @@ -0,0 +1,6 @@ + + +# AutoGluon Tabular with Amazon SageMaker + +[AutoGluon](https://github.com/awslabs/autogluon) automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy deep learning models on tabular, image, and text data. +This example shows how to use AutoGluon-Tabular with Amazon SageMaker by applying [pre-built deep learning containers](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#autogluon-training-containers). \ No newline at end of file diff --git a/advanced_functionality/autogluon-tabular-containers/ag_model.py b/advanced_functionality/autogluon-tabular-containers/ag_model.py new file mode 100644 index 0000000000..8ffd607c77 --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/ag_model.py @@ -0,0 +1,64 @@ +from sagemaker.estimator import Framework +from sagemaker.predictor import Predictor +from sagemaker.mxnet import MXNetModel +from sagemaker.mxnet.model import MXNetPredictor +from sagemaker import utils +from sagemaker.serializers import CSVSerializer +from sagemaker.deserializers import StringDeserializer + + +ACCOUNT = 763104351884 +ECR_TRAINING_REPO = "autogluon-training" +ECR_INFERENCE_REPO = "autogluon-inference" +TRAINING_IMAGE_CPU = "cpu-py37-ubuntu18.04" +TRAINING_IMAGE_GPU = "gpu-py37-cu102-ubuntu18.04" +INFERENCE_IMAGE_CPU = "cpu-py37-ubuntu16.04" + + +class AutoGluonTraining(Framework): + def __init__( + self, + entry_point, + region, + framework_version, + image_type="cpu", + source_dir=None, + hyperparameters=None, + **kwargs, + ): + image = TRAINING_IMAGE_GPU if image_type == "gpu" else TRAINING_IMAGE_CPU + image = f"{framework_version}-{image}" + image_uri = f"{ACCOUNT}.dkr.ecr.{region}.amazonaws.com/{ECR_TRAINING_REPO}:{image}" + super().__init__(entry_point, source_dir, hyperparameters, image_uri=image_uri, **kwargs) + + def _configure_distribution(self, distributions): + return + + def create_model( + self, + model_server_workers=None, + role=None, + vpc_config_override=None, + entry_point=None, + source_dir=None, + dependencies=None, + image_name=None, + **kwargs, + ): + return None + + +class AutoGluonTabularPredictor(Predictor): + def __init__(self, *args, **kwargs): + super().__init__( + *args, serializer=CSVSerializer(), deserializer=StringDeserializer(), **kwargs + ) + + +class AutoGluonInferenceModel(MXNetModel): + def __init__(self, model_data, role, entry_point, region, framework_version, **kwargs): + image = f"{framework_version}-{INFERENCE_IMAGE_CPU}" + image_uri = f"{ACCOUNT}.dkr.ecr.{region}.amazonaws.com/{ECR_INFERENCE_REPO}:{image}" + super().__init__( + model_data, role, entry_point, image_uri=image_uri, framework_version="1.8.0", **kwargs + ) diff --git a/advanced_functionality/autogluon-tabular-containers/config/config-full.yaml b/advanced_functionality/autogluon-tabular-containers/config/config-full.yaml new file mode 100644 index 0000000000..3f8dacb61f --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/config/config-full.yaml @@ -0,0 +1,14 @@ +# AutoGluon Predictor constructor arguments +# - see https://github.com/awslabs/autogluon/blob/ef3a5312dc2eaa0c6afde042d671860ac42cbafb/tabular/src/autogluon/tabular/predictor/predictor.py#L51-L159 +ag_predictor_args: + eval_metric: roc_auc + label: class + +# AutoGluon Predictor.fit arguments +# - see https://github.com/awslabs/autogluon/blob/ef3a5312dc2eaa0c6afde042d671860ac42cbafb/tabular/src/autogluon/tabular/predictor/predictor.py#L280-L651 +ag_fit_args: + presets: "best_quality" + +output_prediction_format: csv # predictions output format: csv or parquet +feature_importance: true # calculate and save feature importance if true +leaderboard: true # save leaderboard output if true \ No newline at end of file diff --git a/advanced_functionality/autogluon-tabular-containers/config/config-med.yaml b/advanced_functionality/autogluon-tabular-containers/config/config-med.yaml new file mode 100644 index 0000000000..42e4f9a182 --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/config/config-med.yaml @@ -0,0 +1,22 @@ +# AutoGluon Predictor constructor arguments +# - see https://github.com/awslabs/autogluon/blob/ef3a5312dc2eaa0c6afde042d671860ac42cbafb/tabular/src/autogluon/tabular/predictor/predictor.py#L51-L159 +ag_predictor_args: + eval_metric: roc_auc + label: class + +# AutoGluon Predictor.fit arguments +# - see https://github.com/awslabs/autogluon/blob/ef3a5312dc2eaa0c6afde042d671860ac42cbafb/tabular/src/autogluon/tabular/predictor/predictor.py#L280-L651 +ag_fit_args: + hyperparameters: +# GBM: +# num_boost_round: 20 +# NN: +# num_epochs: 2 + presets: "medium_quality_faster_train" + num_bag_folds: 2 + num_bag_sets: 1 + num_stack_levels: 0 + +output_prediction_format: csv # predictions output format: csv or parquet +feature_importance: true # calculate and save feature importance if true +leaderboard: true # save leaderboard output if true \ No newline at end of file diff --git a/advanced_functionality/autogluon-tabular-containers/scripts/tabular_serve-batch.py b/advanced_functionality/autogluon-tabular-containers/scripts/tabular_serve-batch.py new file mode 100644 index 0000000000..cdc0c3cb74 --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/scripts/tabular_serve-batch.py @@ -0,0 +1,37 @@ +from autogluon.tabular import TabularPredictor +import os +import json +from io import StringIO +import pandas as pd +import numpy as np + + +def model_fn(model_dir): + """loads model from previously saved artifact""" + model = TabularPredictor.load(model_dir) + globals()["column_names"] = model.feature_metadata_in.get_features() + + return model + + +def transform_fn(model, request_body, input_content_type, output_content_type="application/json"): + if input_content_type == "text/csv": + buf = StringIO(request_body) + data = pd.read_csv(buf, header=None) + num_cols = len(data.columns) + if num_cols != len(column_names): + raise Exception( + f"Invalid data format. Input data has {num_cols} while the model expects {len(column_names)}" + ) + + else: + data.columns = column_names + + else: + raise Exception(f"{input_content_type} content type not supported") + + pred = model.predict(data) + pred_proba = model.predict_proba(data) + prediction = pd.concat([pred, pred_proba], axis=1) + + return prediction.to_json(), output_content_type diff --git a/advanced_functionality/autogluon-tabular-containers/scripts/tabular_serve.py b/advanced_functionality/autogluon-tabular-containers/scripts/tabular_serve.py new file mode 100644 index 0000000000..e2d5c427e8 --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/scripts/tabular_serve.py @@ -0,0 +1,39 @@ +from autogluon.tabular import TabularPredictor +import os +import json +from io import StringIO +import pandas as pd +import numpy as np + + +def model_fn(model_dir): + """loads model from previously saved artifact""" + model = TabularPredictor.load(model_dir) + globals()["column_names"] = model.feature_metadata_in.get_features() + + return model + + +def transform_fn(model, request_body, input_content_type, output_content_type="application/json"): + + if input_content_type == "text/csv": + buf = StringIO(request_body) + data = pd.read_csv(buf, header=None) + num_cols = len(data.columns) + + if num_cols != len(column_names): + raise Exception( + f"Invalid data format. Input data has {num_cols} while the model expects {len(column_names)}" + ) + + else: + data.columns = column_names + + else: + raise Exception(f"{input_content_type} content type not supported") + + pred = model.predict(data) + pred_proba = model.predict_proba(data) + prediction = pd.concat([pred, pred_proba], axis=1).values + + return json.dumps(prediction.tolist()), output_content_type diff --git a/advanced_functionality/autogluon-tabular-containers/scripts/tabular_train.py b/advanced_functionality/autogluon-tabular-containers/scripts/tabular_train.py new file mode 100644 index 0000000000..cf178e66b5 --- /dev/null +++ b/advanced_functionality/autogluon-tabular-containers/scripts/tabular_train.py @@ -0,0 +1,98 @@ +import argparse +import os +from pprint import pprint + +import yaml +from autogluon.tabular import TabularDataset, TabularPredictor + + +def get_input_path(path): + file = os.listdir(path)[0] + if len(os.listdir(path)) > 1: + print(f"WARN: more than one file is found in {channel} directory") + print(f"Using {file}") + filename = f"{path}/{file}" + return filename + + +def get_env_if_present(name): + result = None + if name in os.environ: + result = os.environ[name] + return result + + +if __name__ == "__main__": + # Disable Autotune + os.environ["MXNET_CUDNN_AUTOTUNE_DEFAULT"] = "0" + + # ------------------------------------------------------------ Args parsing + print("Starting AG") + parser = argparse.ArgumentParser() + + # Data, model, and output directories + parser.add_argument( + "--output-data-dir", type=str, default=get_env_if_present("SM_OUTPUT_DATA_DIR") + ) + parser.add_argument("--model-dir", type=str, default=get_env_if_present("SM_MODEL_DIR")) + parser.add_argument("--n_gpus", type=str, default=get_env_if_present("SM_NUM_GPUS")) + parser.add_argument("--training_dir", type=str, default=get_env_if_present("SM_CHANNEL_TRAIN")) + parser.add_argument( + "--test_dir", type=str, required=False, default=get_env_if_present("SM_CHANNEL_TEST") + ) + parser.add_argument("--ag_config", type=str, default=get_env_if_present("SM_CHANNEL_CONFIG")) + + args, _ = parser.parse_known_args() + + print(f"Args: {args}") + + # See SageMaker-specific environment variables: https://sagemaker.readthedocs.io/en/stable/overview.html#prepare-a-training-script + os.makedirs(args.output_data_dir, mode=0o777, exist_ok=True) + + config_file = get_input_path(args.ag_config) + with open(config_file) as f: + config = yaml.safe_load(f) # AutoGluon-specific config + + if args.n_gpus: + config["num_gpus"] = int(args.n_gpus) + + print("Running training job with the config:") + pprint(config) + + # ---------------------------------------------------------------- Training + + train_file = get_input_path(args.training_dir) + train_data = TabularDataset(train_file) + + ag_predictor_args = config["ag_predictor_args"] + ag_predictor_args["path"] = args.model_dir + ag_fit_args = config["ag_fit_args"] + + predictor = TabularPredictor(**ag_predictor_args).fit(train_data, **ag_fit_args) + + # --------------------------------------------------------------- Inference + + if args.test_dir: + test_file = get_input_path(args.test_dir) + test_data = TabularDataset(test_file) + + # Predictions + y_pred_proba = predictor.predict_proba(test_data) + if config.get("output_prediction_format", "csv") == "parquet": + y_pred_proba.to_parquet(f"{args.output_data_dir}/predictions.parquet") + else: + y_pred_proba.to_csv(f"{args.output_data_dir}/predictions.csv") + + # Leaderboard + if config.get("leaderboard", False): + lb = predictor.leaderboard(test_data, silent=False) + lb.to_csv(f"{args.output_data_dir}/leaderboard.csv") + + # Feature importance + if config.get("feature_importance", False): + feature_importance = predictor.feature_importance(test_data) + feature_importance.to_csv(f"{args.output_data_dir}/feature_importance.csv") + else: + if config.get("leaderboard", False): + lb = predictor.leaderboard(silent=False) + lb.to_csv(f"{args.output_data_dir}/leaderboard.csv") diff --git a/advanced_functionality/handling_kms_encrypted_data/handling_kms_encrypted_data.ipynb b/advanced_functionality/handling_kms_encrypted_data/handling_kms_encrypted_data.ipynb index 33e55939c8..e683b4ecf0 100644 --- a/advanced_functionality/handling_kms_encrypted_data/handling_kms_encrypted_data.ipynb +++ b/advanced_functionality/handling_kms_encrypted_data/handling_kms_encrypted_data.ipynb @@ -67,14 +67,15 @@ "import numpy as np\n", "import re\n", "from sagemaker import get_execution_role\n", + "import sagemaker\n", "\n", "region = boto3.Session().region_name\n", "\n", "role = get_execution_role()\n", "\n", - "kms_key_arn = \"\"\n", + "kms_key = \"\"\n", "\n", - "bucket = \"\" # put your s3 bucket name here, and create s3 bucket\n", + "bucket = sagemaker.Session().default_bucket()\n", "prefix = \"sagemaker/DEMO-kms\"\n", "# customize to your bucket where you have stored the data\n", "bucket_path = \"s3://{}\".format(bucket)" @@ -90,7 +91,11 @@ "\n", "### Data ingestion\n", "\n", - "We, first, read the dataset from an existing repository into memory. This processing could be done *in situ* by Amazon Athena, Apache Spark in Amazon EMR, Amazon Redshift, etc., assuming the dataset is present in the appropriate location. Then, the next step would be to transfer the data to S3 for use in training. For small datasets, such as the one used below, reading into memory isn't onerous, though it would be for larger datasets." + "We, first, read the dataset from an existing repository into memory. This processing could be done *in situ* by Amazon Athena, Apache Spark in Amazon EMR, Amazon Redshift, etc., assuming the dataset is present in the appropriate location. Then, the next step would be to transfer the data to S3 for use in training. For small datasets, such as the one used below, reading into memory isn't onerous, though it would be for larger datasets.\n", + "\n", + "This example uses the California Housing dataset, initially published in:\n", + "\n", + "> Pace, R. Kelley, and Ronald Barry. \"Sparse spatial autoregressions.\" Statistics & Probability Letters 33.3 (1997): 291-297." ] }, { @@ -99,16 +104,16 @@ "metadata": {}, "outputs": [], "source": [ - "from sklearn.datasets import load_boston\n", + "from sklearn.datasets import fetch_california_housing\n", "\n", - "boston = load_boston()\n", - "X = boston[\"data\"]\n", - "y = boston[\"target\"]\n", - "feature_names = boston[\"feature_names\"]\n", + "california = fetch_california_housing()\n", + "X = california[\"data\"]\n", + "y = california[\"target\"]\n", + "feature_names = california[\"feature_names\"]\n", "data = pd.DataFrame(X, columns=feature_names)\n", "target = pd.DataFrame(y, columns={\"MEDV\"})\n", "data[\"MEDV\"] = y\n", - "local_file_name = \"boston.csv\"\n", + "local_file_name = \"california_housing.csv\"\n", "data.to_csv(local_file_name, header=False, index=False)" ] }, @@ -140,7 +145,7 @@ "outputs": [], "source": [ "def write_file(X, y, fname, include_labels=True):\n", - " feature_names = boston[\"feature_names\"]\n", + " feature_names = california[\"feature_names\"]\n", " data = pd.DataFrame(X, columns=feature_names)\n", " if include_labels:\n", " data.insert(0, \"MEDV\", y)\n", @@ -180,7 +185,7 @@ "\n", "data_train = open(train_file, \"rb\")\n", "key_train = \"{}/train/{}\".format(prefix, train_file)\n", - "kms_key_id = kms_key_arn.split(\":key/\")[1]\n", + "kms_key_id = kms_key.split(\":key/\")[1]\n", "\n", "print(\"Put object...\")\n", "s3.put_object(\n", @@ -227,7 +232,7 @@ "source": [ "## Training the SageMaker XGBoost model\n", "\n", - "Now that we have our data in S3, we can begin training. We'll use Amazon SageMaker XGboost algorithm as an example to demonstrate model training. Note that nothing needs to be changed in the way you'd call the training algorithm. The only requirement for training to succeed is that the IAM role (`role`) used for S3 access has permissions to encrypt and decrypt data with the KMS key (`kms_key_arn`). You can set these permissions using the instructions [here](http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users). If the permissions aren't set, you'll get the `Data download failed` error. Specify a `VolumeKmsKeyId` in the training job parameters to have the volume attached to the ML compute instance encrypted using key provided." + "Now that we have our data in S3, we can begin training. We'll use Amazon SageMaker XGboost algorithm as an example to demonstrate model training. Note that nothing needs to be changed in the way you'd call the training algorithm. The only requirement for training to succeed is that the IAM role (`role`) used for S3 access has permissions to encrypt and decrypt data with the KMS key (`kms_key`). You can set these permissions using the instructions [here](http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users). If the permissions aren't set, you'll get the `Data download failed` error. Specify a `VolumeKmsKeyId` in the training job parameters to have the volume attached to the ML compute instance encrypted using key provided." ] }, { @@ -236,9 +241,11 @@ "metadata": {}, "outputs": [], "source": [ - "from sagemaker.amazon.amazon_estimator import get_image_uri\n", + "from sagemaker import image_uris\n", "\n", - "container = get_image_uri(boto3.Session().region_name, \"xgboost\")" + "container = image_uris.retrieve(\n", + " region=boto3.Session().region_name, framework=\"xgboost\", version=\"latest\"\n", + ")" ] }, { @@ -262,7 +269,7 @@ " \"InstanceCount\": 1,\n", " \"InstanceType\": \"ml.m4.4xlarge\",\n", " \"VolumeSizeInGB\": 5,\n", - " \"VolumeKmsKeyId\": kms_key_arn,\n", + " \"VolumeKmsKeyId\": kms_key,\n", " },\n", " \"TrainingJobName\": job_name,\n", " \"HyperParameters\": {\n", @@ -379,7 +386,7 @@ "print(endpoint_config_name)\n", "create_endpoint_config_response = client.create_endpoint_config(\n", " EndpointConfigName=endpoint_config_name,\n", - " KmsKeyId=kms_key_arn,\n", + " KmsKeyId=kms_key,\n", " ProductionVariants=[\n", " {\n", " \"InstanceType\": \"ml.m4.xlarge\",\n", @@ -509,7 +516,7 @@ "metadata": {}, "source": [ "## Run batch prediction using batch transform\n", - "Create a transform job to do batch prediction using the trained model. Similar to the training section above, the execution role assumed by this notebook must have permissions to encrypt and decrypt data with the KMS key (`kms_key_arn`) used for S3 server-side encryption. Similar to training, specify a `VolumeKmsKeyId` so that the volume attached to the transform instance is encrypted using the key provided." + "Create a transform job to do batch prediction using the trained model. Similar to the training section above, the execution role assumed by this notebook must have permissions to encrypt and decrypt data with the KMS key (`kms_key`) used for S3 server-side encryption. Similar to training, specify a `VolumeKmsKeyId` so that the volume attached to the transform instance is encrypted using the key provided." ] }, { @@ -542,7 +549,7 @@ " \"TransformResources\": {\n", " \"InstanceCount\": 1,\n", " \"InstanceType\": \"ml.c4.xlarge\",\n", - " \"VolumeKmsKeyId\": kms_key_arn,\n", + " \"VolumeKmsKeyId\": kms_key,\n", " },\n", "}\n", "\n", @@ -605,7 +612,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.2" + "version": "3.6.13" }, "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." }, diff --git a/advanced_functionality/multi_model_bring_your_own/container/Dockerfile b/advanced_functionality/multi_model_bring_your_own/container/Dockerfile index 9b72aa65eb..4191801e22 100644 --- a/advanced_functionality/multi_model_bring_your_own/container/Dockerfile +++ b/advanced_functionality/multi_model_bring_your_own/container/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:16.04 +FROM ubuntu:18.04 # Set a docker label to advertise multi-model support on the container LABEL com.amazonaws.sagemaker.capabilities.multi-models=true diff --git a/advanced_functionality/multi_model_pytorch/pytorch_multi_model_endpoint.ipynb b/advanced_functionality/multi_model_pytorch/pytorch_multi_model_endpoint.ipynb index 56e92f319f..9bb6153a32 100644 --- a/advanced_functionality/multi_model_pytorch/pytorch_multi_model_endpoint.ipynb +++ b/advanced_functionality/multi_model_pytorch/pytorch_multi_model_endpoint.ipynb @@ -2,16 +2,16 @@ "cells": [ { "cell_type": "markdown", - "id": "2d49d1af", + "id": "14a93ca6", "metadata": {}, "source": [ "# Amazon SageMaker Multi-Model Endpoints using PyTorch\n", "\n", "> *This notebook works well with SageMaker Studio kernel `Python 3 (Data Science)`, or SageMaker Notebook Instance kernel `conda_python3`*\n", "\n", - "With [Amazon SageMaker multi-model endpoints](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints.html), customers can create an endpoint that seamlessly hosts up to thousands of models. These endpoints are well suited to use cases where any one of a large number of models, which can be served from a common inference container, needs to be invokable on-demand and where it is acceptable for infrequently invoked models to incur some additional latency. For applications which require consistently low inference latency, a traditional endpoint is still the best choice.\n", + "With [Amazon SageMaker multi-model endpoints](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints.html), customers can create an endpoint that seamlessly hosts up to thousands of models. These endpoints are well suited to use cases where any one of many models, which can be served from a common inference container, needs to be callable on-demand and where it is acceptable for infrequently invoked models to incur some additional latency. For applications which require consistently low inference latency, a traditional endpoint is still the best choice.\n", "\n", - "In some cases where the variable latency is tolerable and cost optimization is more important, customers may also decide to use MMEs for A/B/n testing, in place of the more typical [production variant based strategy discussed here](https://aws.amazon.com/blogs/machine-learning/a-b-testing-ml-models-in-production-using-amazon-sagemaker/).\n", + "In some cases where the variable latency is tolerable, and cost optimization is more important, customers may also decide to use MMEs for A/B/n testing, in place of the more typical [production variant based strategy discussed here](https://aws.amazon.com/blogs/machine-learning/a-b-testing-ml-models-in-production-using-amazon-sagemaker/).\n", "\n", "To demonstrate how multi-model endpoints can be created and used, this notebook provides an example using models trained with the [SageMaker PyTorch framework container](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html). We'll take an A/B scenario for simplicity, training and deploying just two models to our endpoint.\n", "\n", @@ -23,7 +23,7 @@ }, { "cell_type": "markdown", - "id": "385984fe", + "id": "446701de", "metadata": {}, "source": [ "## Contents\n", @@ -44,7 +44,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9c1d5b02", + "id": "c7c6f24b", "metadata": {}, "outputs": [], "source": [ @@ -75,7 +75,7 @@ }, { "cell_type": "markdown", - "id": "411388e1", + "id": "10d1b8ac", "metadata": {}, "source": [ "## The example use case: MNIST\n", @@ -88,7 +88,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e79cc834", + "id": "f94bafde", "metadata": {}, "outputs": [], "source": [ @@ -135,7 +135,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d9b3681e", + "id": "bdd2050d", "metadata": {}, "outputs": [], "source": [ @@ -147,7 +147,7 @@ }, { "cell_type": "markdown", - "id": "01272e25", + "id": "6c1caf03", "metadata": {}, "source": [ "## Train multiple models\n", @@ -160,7 +160,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a5bf5989", + "id": "8f74a102", "metadata": {}, "outputs": [], "source": [ @@ -179,7 +179,9 @@ " entry_point=\"train.py\",\n", " source_dir=\"code\", # directory of your training script\n", " role=role,\n", - " framework_version=\"1.8\",\n", + " # At the time of writing, this example gives a deployment error in container v1.8.1 with\n", + " # upgraded TorchServe: so specifically setting \"1.8.0\". But \"1.7\" and \"1.6\" should be fine.\n", + " framework_version=\"1.8.0\",\n", " py_version=\"py3\",\n", " instance_type=\"ml.c4.xlarge\",\n", " instance_count=1,\n", @@ -194,7 +196,7 @@ }, { "cell_type": "markdown", - "id": "024bd190", + "id": "7f3b6817", "metadata": {}, "source": [ "By default, calling the [SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/)'s [Estimator.fit()](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.EstimatorBase.fit) method waits for the training job to complete, streaming progress information and logs to the notebook.\n", @@ -207,7 +209,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d29f6c77", + "id": "d48aad81", "metadata": { "scrolled": true }, @@ -225,7 +227,7 @@ }, { "cell_type": "markdown", - "id": "2fabc90f", + "id": "30112fc5", "metadata": {}, "source": [ "## Check single-model deployment\n", @@ -236,7 +238,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1548d75b", + "id": "dcead338", "metadata": {}, "outputs": [], "source": [ @@ -246,7 +248,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0ed21ed1", + "id": "59f58085", "metadata": {}, "outputs": [], "source": [ @@ -261,7 +263,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f48c5876", + "id": "9b9e4430", "metadata": {}, "outputs": [], "source": [ @@ -282,7 +284,7 @@ }, { "cell_type": "markdown", - "id": "04c7172c", + "id": "84737f76", "metadata": {}, "source": [ "Assuming the test worked, this endpoint is no longer needed so can be disposed:" @@ -291,7 +293,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45c360fe", + "id": "c60c2486", "metadata": {}, "outputs": [], "source": [ @@ -300,7 +302,7 @@ }, { "cell_type": "markdown", - "id": "60a9485f", + "id": "9acd33e1", "metadata": {}, "source": [ "## Create the Multi-Model Endpoint with the SageMaker SDK\n", @@ -313,7 +315,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13c842ac", + "id": "9b8b69ac", "metadata": {}, "outputs": [], "source": [ @@ -322,7 +324,7 @@ }, { "cell_type": "markdown", - "id": "1fea2e91", + "id": "7d7c9f75", "metadata": {}, "source": [ "### Create the Amazon SageMaker MultiDataModel entity\n", @@ -331,13 +333,13 @@ "\n", "You can create a MultiDataModel by directly passing in a `sagemaker.model.Model` object - in which case, the Endpoint will inherit information about the image to use, as well as any environmental variables, network isolation, etc., once the MultiDataModel is deployed.\n", "\n", - "In addition, a MultiDataModel can also be created without explictly passing a `sagemaker.model.Model` object. Please refer to the documentation for additional details." + "In addition, a MultiDataModel can also be created without explicitly passing a `sagemaker.model.Model` object. Please refer to the documentation for additional details." ] }, { "cell_type": "code", "execution_count": null, - "id": "7367b356", + "id": "f60d597d", "metadata": {}, "outputs": [], "source": [ @@ -350,7 +352,7 @@ { "cell_type": "code", "execution_count": null, - "id": "127ae6ea", + "id": "f50efe26", "metadata": {}, "outputs": [], "source": [ @@ -364,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "1318f613", + "id": "f6abb202", "metadata": {}, "source": [ "### Deploy the Multi-Model Endpoint\n", @@ -375,7 +377,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11ae8761", + "id": "a86e8be2", "metadata": {}, "outputs": [], "source": [ @@ -396,14 +398,14 @@ }, { "cell_type": "markdown", - "id": "e81b7f70", + "id": "fbe8e6dc", "metadata": {}, "source": [ "### Our endpoint has launched! Let's look at what models are available to the endpoint!\n", "\n", - "By 'available', what we mean is, what model artfiacts are currently stored under the S3 prefix we defined when setting up the `MultiDataModel` above i.e. `model_data_prefix`.\n", + "By 'available', what we mean is, what model artifacts are currently stored under the S3 prefix we defined when setting up the `MultiDataModel` above i.e. `model_data_prefix`.\n", "\n", - "Currently, since we have no artifacts (i.e. `tar.gz` files) stored under our defined S3 prefix, our endpoint, will have no models 'available' to serve inference requests.\n", + "Currently, since we have no artifacts (i.e. `tar.gz` files) stored under our defined S3 prefix, our endpoint, will have no models 'available' to serve inference requests.\n", "\n", "We will demonstrate how to make models 'available' to our endpoint below." ] @@ -411,7 +413,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b2c2c450", + "id": "1a174381", "metadata": {}, "outputs": [], "source": [ @@ -421,7 +423,7 @@ }, { "cell_type": "markdown", - "id": "e30c0200", + "id": "e42ae3e9", "metadata": {}, "source": [ "### Dynamically deploying models to the endpoint\n", @@ -445,7 +447,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b82fd397", + "id": "387900c3", "metadata": {}, "outputs": [], "source": [ @@ -457,7 +459,7 @@ }, { "cell_type": "markdown", - "id": "04aa25b7", + "id": "4d1470f7", "metadata": {}, "source": [ "### Our models are ready to invoke!\n", @@ -468,7 +470,7 @@ { "cell_type": "code", "execution_count": null, - "id": "692db269", + "id": "26261ce4", "metadata": {}, "outputs": [], "source": [ @@ -477,7 +479,7 @@ }, { "cell_type": "markdown", - "id": "817bddd5", + "id": "289d28e7", "metadata": {}, "source": [ "## Get predictions from the endpoint\n", @@ -490,7 +492,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bb9ad0e6", + "id": "04b1de15", "metadata": {}, "outputs": [], "source": [ @@ -506,7 +508,7 @@ }, { "cell_type": "markdown", - "id": "b661cde2", + "id": "2880e078", "metadata": {}, "source": [ "## Updating a model\n", @@ -520,7 +522,7 @@ }, { "cell_type": "markdown", - "id": "951d6b63", + "id": "5bb05ed2", "metadata": {}, "source": [ "## Clean up\n", @@ -531,7 +533,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b25ccbaa", + "id": "deee6c61", "metadata": {}, "outputs": [], "source": [ @@ -541,7 +543,7 @@ { "cell_type": "code", "execution_count": null, - "id": "518ac926", + "id": "ffe61045", "metadata": {}, "outputs": [], "source": [] diff --git a/advanced_functionality/pipe_bring_your_own/Dockerfile b/advanced_functionality/pipe_bring_your_own/Dockerfile index 31ded3bb06..fc12c2b764 100644 --- a/advanced_functionality/pipe_bring_your_own/Dockerfile +++ b/advanced_functionality/pipe_bring_your_own/Dockerfile @@ -1,5 +1,7 @@ +ARG region + # SageMaker PyTorch image -FROM 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.5.1-cpu-py36-ubuntu16.04 +FROM 763104351884.dkr.ecr.${region}.amazonaws.com/pytorch-training:1.5.1-cpu-py36-ubuntu16.04 ENV PATH="/opt/ml/code:${PATH}" diff --git a/advanced_functionality/pipe_bring_your_own/pipe_bring_your_own.ipynb b/advanced_functionality/pipe_bring_your_own/pipe_bring_your_own.ipynb index 0e695822a0..32e05c3714 100644 --- a/advanced_functionality/pipe_bring_your_own/pipe_bring_your_own.ipynb +++ b/advanced_functionality/pipe_bring_your_own/pipe_bring_your_own.ipynb @@ -46,10 +46,14 @@ "\n", "Let's start by specifying:\n", "\n", - "- S3 URIs `s3_training_input` and `s3_model_output` that you want to use for training input and model data respectively. These should be within the same region as the Notebook Instance, training, and hosting. Since the \"algorithm\" you're building here doesn't really have any specific data-format, feel free to point `s3_training_input` to any s3 dataset you have, the bigger the dataset the better to test the raw IO throughput performance. For this example, the Boston Housing dataset will be copied over to your s3 bucket.\n", + "- S3 URIs `s3_training_input` and `s3_model_output` that you want to use for training input and model data respectively. These should be within the same region as the Notebook Instance, training, and hosting. Since the \"algorithm\" you're building here doesn't really have any specific data-format, feel free to point `s3_training_input` to any s3 dataset you have, the bigger the dataset the better to test the raw IO throughput performance. For this example, the California Housing dataset will be copied over to your s3 bucket.\n", "- The `training_instance_type` to use for training. More powerful instance types have more CPU and bandwidth which would result in higher throughput.\n", "- The IAM role arn used to give training access to your data.\n", "\n", + "The California Housing dataset was originally published in:\n", + "\n", + "> Pace, R. Kelley, and Ronald Barry. \\\"Sparse spatial autoregressions.\\\" Statistics & Probability Letters 33.3 (1997): 291-297.\n", + "\n", "### Permissions\n", "\n", "Running this notebook requires permissions in addition to the normal `SageMakerFullAccess` permissions. This is because you'll be creating a new repository in Amazon ECR. The easiest way to add these permissions is simply to add the managed policy `AmazonEC2ContainerRegistryFullAccess` to the role that you used to start your notebook instance. There's no need to restart your notebook instance when you do this, the new permissions will be available immediately." @@ -67,8 +71,7 @@ "import pandas as pd\n", "import sagemaker\n", "\n", - "# to load the boston housing dataset\n", - "from sklearn.datasets import *\n", + "from sklearn.datasets import fetch_california_housing\n", "\n", "# Get SageMaker session & default S3 bucket\n", "role = sagemaker.get_execution_role()\n", @@ -110,9 +113,9 @@ "metadata": {}, "outputs": [], "source": [ - "filename = \"boston_house.csv\"\n", + "filename = \"california_housing.csv\"\n", "# Download files from sklearns.datasets\n", - "tabular_data = load_boston()\n", + "tabular_data = fetch_california_housing()\n", "tabular_data_full = pd.DataFrame(tabular_data.data, columns=tabular_data.feature_names)\n", "tabular_data_full[\"target\"] = pd.DataFrame(tabular_data.target)\n", "tabular_data_full.to_csv(filename, index=False)" @@ -198,7 +201,9 @@ "outputs": [], "source": [ "%%sh\n", - "aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 763104351884.dkr.ecr.us-east-1.amazonaws.com" + "REGION=$(aws configure get region)\n", + "account=$(aws sts get-caller-identity --query Account --output text)\n", + "aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin ${account}.dkr.ecr.${REGION}.amazonaws.com" ] }, { @@ -215,7 +220,7 @@ "outputs": [], "source": [ "%%sh\n", - "docker build -t pipe_bring_your_own ." + "docker build -t pipe_bring_your_own . --build-arg region=$(aws configure get region)" ] }, { @@ -319,7 +324,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" }, "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." }, diff --git a/advanced_functionality/pytorch_bring_your_own_gan/build_gan_with_pytorch.ipynb b/advanced_functionality/pytorch_bring_your_own_gan/build_gan_with_pytorch.ipynb new file mode 100644 index 0000000000..3806057b0b --- /dev/null +++ b/advanced_functionality/pytorch_bring_your_own_gan/build_gan_with_pytorch.ipynb @@ -0,0 +1,928 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Build GAN (Generative Adversarial Networks) with PyTorch and SageMaker" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### About GAN\n", + "\n", + "Generative Adversarial Network (GAN) is a generative machine learning model, which is widely used in advertising, games, entertainment, media, pharmaceuticals and other industries. It can be used to create fictional characters and scenes, simulate facial aging, and change image styles, and produce chemical formulas and so on.\n", + "\n", + "GAN was proposed by Ian Goodfellow in 2014, it is a deep neural network architecture consisting of a generative network and a discriminant network. The generation network generates \"fake\" data and tries to deceive the discrimination network; the discrimination network authenticates the generated data and tries to correctly identify all \"fake\" data. In the process of training iterations, the two networks continue to evolve and confront until they reach an equilibrium state (reference: Nash equilibrium), the discriminant network can no longer recognize \"fake\" data, and the training ends.\n", + "\n", + "This example will lead you to build a GAN model leveraging the PyTorch framework, introducing GAN from the perspective of engineering practice, and opening a new and interesting AI/ML experience in generative models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Environment setup\n", + "Upgrade packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip install --upgrade pip sagemaker awscli boto3 numpy ipywidgets\n", + "!pip install Pillow==7.1.2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create folders" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!mkdir -p data src tmp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Download data\n", + "There are many public datasets on the Internet, which are very helpful for machine learning engineering and scientific research, such as algorithm study and evaluation. We will use MNIST dataset, which is a handwritten digits dataset, we will use it to train a GAN model, and eventually generate some fake \"handwritten\" digits." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.s3 import S3Downloader as s3down\n", + "\n", + "s3down.download('s3://sagemaker-sample-files/datasets/image/MNIST/pytorch/', './data')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "isConfigCell": true + }, + "source": [ + "### Data preparation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "isConfigCell": true + }, + "source": [ + "PyTorch framework has a torchvision.datasets package, which provides access to a number of datasets, you may use the following commands to read MNIST pre-downloaded dataset from local storage, for later use.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "from torchvision import datasets\n", + "\n", + "dataroot = './data'\n", + "trainset = datasets.MNIST(root=dataroot, train=True, download=False)\n", + "testset = datasets.MNIST(root=dataroot, train=False, download=False)\n", + "print(trainset)\n", + "print(testset)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "isConfigCell": true + }, + "source": [ + "SageMaker SDK will create a default Amazon S3 bucket for you to access various files and data, that you may need in the machine learning engineering lifecycle. We can get the name of this bucket through the default_bucket method of the sagemaker.session.Session class in the SageMaker SDK." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "from sagemaker.session import Session\n", + "\n", + "sess = Session()\n", + "\n", + "# S3 bucket for saving code and model artifacts.\n", + "# Feel free to specify a different bucket here if you wish.\n", + "bucket = sess.default_bucket()\n", + "prefix = 'byos-pytorch-gan'\n", + "\n", + "# Location to save your custom code in tar.gz format.\n", + "s3_custom_code_upload_location = f's3://{bucket}/{prefix}/customcode'\n", + "\n", + "# Location where results of model training are saved.\n", + "s3_model_artifacts_location = f's3://{bucket}/{prefix}/artifacts/'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The SageMaker SDK provides tools for operating AWS services. For example, the S3Downloader class is used to download objects in S3, and the S3Uploader is used to upload local files to S3. You will upload the dataset files to Amazon S3 for model training. During model training, we do not download data from the Internet to avoid network latency caused by fetching data from the Internet, and at the same time avoiding possible security risks due to direct access to the Internet.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import os\n", + "from sagemaker.s3 import S3Uploader as s3up\n", + "\n", + "s3_data_location = s3up.upload(os.path.join(dataroot, \"MNIST\"), f\"s3://{bucket}/{prefix}/data/mnist\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Training\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "DCGAN (Deep Convolutional Generative Adversarial Networks) is a variant of the GAN families. This architecture essentially leverages Deep Convolutional Neural Networks to generate images belonging to a given distribution from noisy data using the Generator-Discriminator framework." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile src/train.py\n", + "\n", + "from __future__ import print_function\n", + "import argparse\n", + "import json\n", + "import logging\n", + "import os\n", + "import sys\n", + "import random\n", + "\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.parallel\n", + "import torch.nn.functional as F\n", + "\n", + "import torch.optim as optim\n", + "import torch.backends.cudnn as cudnn\n", + "import torch.utils.data\n", + "import torchvision.datasets as dset\n", + "import torchvision.transforms as transforms\n", + "import torchvision.utils as vutils\n", + "\n", + "\n", + "cudnn.benchmark = True\n", + "\n", + "logger = logging.getLogger(__name__)\n", + "logger.setLevel(logging.DEBUG)\n", + "logger.addHandler(logging.StreamHandler(sys.stdout))\n", + "\n", + "\n", + "class Generator(nn.Module):\n", + " def __init__(self, *, nz, nc, ngf, ngpu=1):\n", + " super(Generator, self).__init__()\n", + " self.ngpu = ngpu\n", + " self.main = nn.Sequential(\n", + " # input is Z, going into a convolution\n", + " nn.ConvTranspose2d( nz, ngf * 8, 4, 1, 0, bias=False),\n", + " nn.BatchNorm2d(ngf * 8),\n", + " nn.ReLU(True),\n", + " # state size. (ngf*8) x 4 x 4\n", + " nn.ConvTranspose2d(ngf * 8, ngf * 4, 4, 2, 1, bias=False),\n", + " nn.BatchNorm2d(ngf * 4),\n", + " nn.ReLU(True),\n", + " # state size. (ngf*4) x 8 x 8\n", + " nn.ConvTranspose2d(ngf * 4, ngf * 2, 4, 2, 1, bias=False),\n", + " nn.BatchNorm2d(ngf * 2),\n", + " nn.ReLU(True),\n", + " # state size. (ngf*2) x 16 x 16\n", + " nn.ConvTranspose2d(ngf * 2, ngf, 4, 2, 1, bias=False),\n", + " nn.BatchNorm2d(ngf),\n", + " nn.ReLU(True),\n", + " # state size. (ngf) x 32 x 32\n", + " nn.ConvTranspose2d( ngf, nc, 4, 2, 1, bias=False),\n", + " nn.Tanh()\n", + " # state size. (nc) x 64 x 64\n", + " )\n", + "\n", + " def forward(self, input):\n", + " if input.is_cuda and self.ngpu > 1:\n", + " output = nn.parallel.data_parallel(self.main, input, range(self.ngpu))\n", + " else:\n", + " output = self.main(input)\n", + " return output\n", + "\n", + " def save(self, path, *, filename=None, device='cpu'):\n", + " # recommended way from http://pytorch.org/docs/master/notes/serialization.html\n", + " self.to(device)\n", + " if not filename is None:\n", + " path = os.path.join(path, filename)\n", + " torch.save(self.state_dict(), path)\n", + "\n", + " def load(self, path, *, filename=None):\n", + " if not filename is None:\n", + " path = os.path.join(path, filename)\n", + " with open(path, 'rb') as f:\n", + " self.load_state_dict(torch.load(f))\n", + "\n", + " \n", + "class Discriminator(nn.Module):\n", + " def __init__(self, *, nc, ndf, ngpu=1):\n", + " super(Discriminator, self).__init__()\n", + " self.ngpu = ngpu\n", + " self.main = nn.Sequential(\n", + " # input is (nc) x 64 x 64\n", + " nn.Conv2d(nc, ndf, 4, 2, 1, bias=False),\n", + " nn.LeakyReLU(0.2, inplace=True),\n", + " # state size. (ndf) x 32 x 32\n", + " nn.Conv2d(ndf, ndf * 2, 4, 2, 1, bias=False),\n", + " nn.BatchNorm2d(ndf * 2),\n", + " nn.LeakyReLU(0.2, inplace=True),\n", + " # state size. (ndf*2) x 16 x 16\n", + " nn.Conv2d(ndf * 2, ndf * 4, 4, 2, 1, bias=False),\n", + " nn.BatchNorm2d(ndf * 4),\n", + " nn.LeakyReLU(0.2, inplace=True),\n", + " # state size. (ndf*4) x 8 x 8\n", + " nn.Conv2d(ndf * 4, ndf * 8, 4, 2, 1, bias=False),\n", + " nn.BatchNorm2d(ndf * 8),\n", + " nn.LeakyReLU(0.2, inplace=True),\n", + " # state size. (ndf*8) x 4 x 4\n", + " nn.Conv2d(ndf * 8, 1, 4, 1, 0, bias=False),\n", + " nn.Sigmoid()\n", + " )\n", + "\n", + " def forward(self, input):\n", + " if input.is_cuda and self.ngpu > 1:\n", + " output = nn.parallel.data_parallel(self.main, input, range(self.ngpu))\n", + " else:\n", + " output = self.main(input)\n", + "\n", + " return output.view(-1, 1).squeeze(1)\n", + "\n", + " def save(self, path, *, filename=None, device='cpu'):\n", + " # recommended way from http://pytorch.org/docs/master/notes/serialization.html\n", + " self.to(device)\n", + " if not filename is None:\n", + " path = os.path.join(path, filename)\n", + " torch.save(self.state_dict(), path)\n", + "\n", + "\n", + " def load(self, path, *, filename=None):\n", + " if not filename is None:\n", + " path = os.path.join(path, filename)\n", + " with open(path, 'rb') as f:\n", + " self.load_state_dict(torch.load(f))\n", + " \n", + " \n", + "class DCGAN(object):\n", + " \"\"\"\n", + " A wrapper class for Generator and Discriminator,\n", + " 'train_step' method is for single batch training.\n", + " \"\"\"\n", + "\n", + " fixed_noise = None\n", + " criterion = None\n", + " device = None\n", + " netG = None\n", + " netD = None\n", + " optimizerG = None\n", + " optimizerD = None\n", + " nz = None\n", + " nc = None\n", + " ngf = None\n", + " ndf = None\n", + " real_cpu = None\n", + " \n", + " def __init__(self, *, batch_size, nz, nc, ngf, ndf, device, weights_init,\n", + " learning_rate, betas, real_label, fake_label):\n", + "\n", + " super(DCGAN, self).__init__()\n", + "\n", + " import torch\n", + " \n", + " self.nz = nz\n", + " self.nc = nc\n", + " self.ngf = ngf\n", + " self.ndf = ndf\n", + " \n", + " self.real_label = real_label\n", + " self.fake_label = fake_label\n", + " \n", + " self.fixed_noise = torch.randn(batch_size, nz, 1, 1, device=device)\n", + " self.criterion = nn.BCELoss()\n", + " self.device = device\n", + " \n", + " self.netG = Generator(nz=nz, nc=nc, ngf=ngf).to(device)\n", + " # print(netG)\n", + " self.netD = Discriminator(nc=nc, ndf=ndf).to(device)\n", + " # print(netD)\n", + " \n", + " self.netG.apply(weights_init)\n", + " self.netD.apply(weights_init)\n", + " \n", + " # setup optimizer\n", + " self.optimizerG = optim.Adam(self.netG.parameters(), lr=learning_rate, betas=betas)\n", + " self.optimizerD = optim.Adam(self.netD.parameters(), lr=learning_rate, betas=betas)\n", + "\n", + "\n", + " def train_step(self, data, *, epoch, epochs):\n", + " import torch\n", + "\n", + " ############################\n", + " # (1) Update D network: maximize log(D(x)) + log(1 - D(G(z)))\n", + " ###########################\n", + " # train with real\n", + " self.netD.zero_grad()\n", + " self.real_cpu = data[0]\n", + " real = data[0].to(self.device)\n", + " batch_size = real.size(0)\n", + " label = torch.full((batch_size,), self.real_label, device=self.device)\n", + " \n", + " output = self.netD(real).view(-1)\n", + " errD_real = self.criterion(output, label)\n", + " errD_real.backward()\n", + " D_x = output.mean().item()\n", + "\n", + "\n", + " # train with fake\n", + " noise = torch.randn(batch_size, self.nz, 1, 1, device=self.device)\n", + " fake = self.netG(noise)\n", + " label.fill_(self.fake_label)\n", + " output = self.netD(fake.detach()).view(-1)\n", + " errD_fake = self.criterion(output, label)\n", + " errD_fake.backward()\n", + " D_G_z1 = output.mean().item()\n", + " errD = errD_real + errD_fake\n", + " self.optimizerD.step()\n", + " \n", + "\n", + " ############################\n", + " # (2) Update G network: maximize log(D(G(z)))\n", + " ###########################\n", + " self.netG.zero_grad()\n", + " label.fill_(self.real_label) # fake labels are real for generator cost\n", + " output = self.netD(fake).view(-1)\n", + " errG = self.criterion(output, label)\n", + " errG.backward()\n", + " D_G_z2 = output.mean().item()\n", + " self.optimizerG.step()\n", + "\n", + "\n", + " return errG.item(), errD.item(), D_x, D_G_z1, D_G_z2\n", + " \n", + "\n", + " \n", + "# custom weights initialization called on netG and netD\n", + "def weights_init(m):\n", + " classname = m.__class__.__name__\n", + " if classname.find('Conv') != -1:\n", + " torch.nn.init.normal_(m.weight, 0.0, 0.02)\n", + " elif classname.find('BatchNorm') != -1:\n", + " torch.nn.init.normal_(m.weight, 1.0, 0.02)\n", + " torch.nn.init.zeros_(m.bias)\n", + "\n", + "\n", + "def log_batch(epoch, epochs, batch, batches, errD, errG, D_x, D_G_z1, D_G_z2, *, log_interval=10, output_dir):\n", + "\n", + " if batch % log_interval == 0:\n", + " logger.info(f\"Epoch[{epoch}/{epochs}], Batch[{batch}/{batches}], \" +\n", + " f\"Loss_D: {errD:.4}, Loss_G: {errG:.4}, D(x): {D_x:.4}, D(G(z)): {D_G_z1:.4}/{D_G_z2:.4}\")\n", + "\n", + "\n", + "\n", + "def get_device(use_cuda):\n", + " import torch\n", + "\n", + " device = \"cpu\"\n", + " num_gpus = 0\n", + " \n", + " if torch.cuda.is_available():\n", + " if use_cuda:\n", + " device = \"cuda\"\n", + " torch.cuda.set_device(0)\n", + " num_gpus = torch.cuda.device_count()\n", + " else:\n", + " logger.debug(\"WARNING: You have a CUDA device, so you should probably run with --cuda 1\")\n", + "\n", + " logger.debug(f\"Number of gpus available: {num_gpus}\")\n", + " \n", + " return device, num_gpus\n", + "\n", + "\n", + "def train(dataloader, hps, test_batch_size,\n", + " device, model_dir, output_dir, seed, log_interval):\n", + " \n", + " epochs = hps['epochs']\n", + " batch_size = hps['batch-size']\n", + " nz = hps['nz']\n", + " ngf = hps['ngf']\n", + " ndf = hps['ndf']\n", + " learning_rate = hps['learning-rate']\n", + " beta1 = hps['beta1']\n", + " \n", + " dcgan = DCGAN(batch_size=batch_size, nz=nz, nc=1, ngf=ngf, ndf=ndf,\n", + " device=device, weights_init=weights_init, learning_rate=learning_rate,\n", + " betas=(beta1, 0.999), real_label=1, fake_label=0)\n", + "\n", + " for epoch in range(epochs):\n", + " batches = len(dataloader)\n", + " for batch, data in enumerate(dataloader, 0):\n", + " errG, errD, D_x, D_G_z1, D_G_z2 = dcgan.train_step(data,\n", + " epoch=epoch, epochs=epochs)\n", + " \n", + " log_batch(epoch, epochs, batch, batches, errD, errG,\n", + " D_x, D_G_z1, D_G_z2, log_interval=log_interval, output_dir=output_dir)\n", + "\n", + " \n", + " save_model(model_dir, dcgan.netG)\n", + "\n", + " return\n", + "\n", + "\n", + "def save_model(model_dir, model):\n", + " logger.info(\"Saving the model.\")\n", + " model.save(model_dir, filename=\"model.pth\")\n", + "\n", + " \n", + "def load_model(model_dir, device=None):\n", + " logger.info(\"Loading the model.\")\n", + " if device is None:\n", + " device = get_training_device_name(1)\n", + "\n", + " netG.load(model_dir, filename=\"model.pth\", device=device)\n", + "\n", + " return netG\n", + "\n", + "\n", + "def parse_args():\n", + " # Training settings\n", + " parser = argparse.ArgumentParser(description='PyTorch Example')\n", + " \n", + " parser.add_argument('--batch-size', type=int, default=1000, metavar='N',\n", + " help='input batch size (default: 1000)')\n", + " parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N',\n", + " help='input batch size for testing (default: 1000)')\n", + " parser.add_argument('--seed', type=int, default=None, metavar='S',\n", + " help='random seed')\n", + " parser.add_argument('--log-interval', type=int, default=10, metavar='N',\n", + " help='how many batches to wait before logging training status')\n", + "\n", + " parser.add_argument('--save-model', action='store_true', default=False,\n", + " help='For Saving the current Model')\n", + "\n", + " parser.add_argument('--model-dir', type=str, default=os.environ.get('SM_MODEL_DIR', None))\n", + " \n", + " parser.add_argument('--cuda', type=int, default=1)\n", + " parser.add_argument('--num-gpus', type=int, default=os.environ.get('SM_NUM_GPUS', None))\n", + " \n", + " parser.add_argument('--pin-memory', type=bool, default=os.environ.get('SM_PIN_MEMORY', False))\n", + "\n", + " parser.add_argument('--data-dir', required=False, default=None, help='path to data dir')\n", + " parser.add_argument('--workers', type=int, help='number of data loading workers', default=2)\n", + " parser.add_argument('--output-dir', default=os.environ.get('SM_OUTPUT_DATA_DIR', None), help='folder to output images and model checkpoints')\n", + " parser.add_argument('--hps', default=os.environ.get('SM_HPS', None), help='Hyperparameters')\n", + " \n", + " return parser.parse_known_args()\n", + "\n", + "\n", + "def get_datasets(*, dataroot='/opt/ml/input/data', classes=None):\n", + "\n", + " dataset = dset.MNIST(root=dataroot,\n", + " transform=transforms.Compose([\n", + " transforms.Resize(64),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.5,), (0.5,)),\n", + " ]))\n", + "\n", + " return dataset\n", + " \n", + "\n", + "if __name__ == '__main__':\n", + " args, unknown = parse_args()\n", + " \n", + " # get training options\n", + " hps = json.loads(args.hps)\n", + "\n", + " try:\n", + " os.makedirs(args.output_dir)\n", + " except OSError:\n", + " pass\n", + "\n", + " if args.seed is None:\n", + " random_seed = random.randint(1, 10000)\n", + " logger.debug(f\"Generated Random Seed: {random_seed}\")\n", + " cudnn.benchmark = True\n", + " else:\n", + " logger.debug(f\"Provided Random Seed: {args.seed}\")\n", + " random_seed = args.seed\n", + " cudnn.deterministic = True\n", + " cudnn.benchmark = False\n", + " \n", + " random.seed(random_seed)\n", + " torch.manual_seed(random_seed)\n", + "\n", + " pin_memory=args.pin_memory\n", + " num_workers = int(args.workers)\n", + " \n", + " device, num_gpus = get_device(args.cuda)\n", + " \n", + " if device == 'cuda':\n", + " num_workers = 1\n", + " pin_memory = True\n", + "\n", + " \n", + " if args.data_dir is None:\n", + " input_dir = os.environ.get('SM_INPUT_DIR', None)\n", + " if input_dir is None and str(args.dataset).lower() != 'fake':\n", + " raise ValueError(f\"`--data-dir` parameter is required for dataset \\\"{args.dataset}\\\"\")\n", + "\n", + " dataroot = input_dir + \"/data\"\n", + " else:\n", + " dataroot = args.data_dir\n", + "\n", + " dataset = get_datasets(dataroot=dataroot)\n", + "\n", + " assert dataset\n", + " dataloader = torch.utils.data.DataLoader(dataset, batch_size=args.batch_size,\n", + " shuffle=True, num_workers=num_workers, pin_memory=pin_memory)\n", + "\n", + " \n", + " train(dataloader, hps, args.test_batch_size, device, args.model_dir, args.output_dir, args.seed, args.log_interval)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Per sagemaker.get_execution_role() method, the notebook can get the role pre-assigned to the notebook instance. This role will be used to obtain training resources, such as downloading training framework images, allocating Amazon EC2 instances, and so on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from sagemaker import get_execution_role\n", + "\n", + "# IAM execution role that gives SageMaker access to resources in your AWS account.\n", + "# We can use the SageMaker Python SDK to get the role from our notebook environment. \n", + "role = get_execution_role()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The hyperparameters, that used in the model training tasks, can be defined in the notebook so that it is separated from the algorithm and training code. The hyperparameters are passed in when the training task is created and dynamically combined with the training task." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "hps = {\n", + " 'seed': 0,\n", + " 'learning-rate': 0.0002,\n", + " 'epochs': 18,\n", + " 'pin-memory': 1,\n", + " 'beta1': 0.5,\n", + " 'nz': 100,\n", + " 'ngf': 28,\n", + " 'ndf': 28,\n", + " 'batch-size': 128,\n", + " 'log-interval': 20,\n", + " }\n", + "\n", + "\n", + "str_hps = json.dumps(hps, indent = 4)\n", + "print(str_hps)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```PyTorch``` class from sagemaker.pytorch package, is an estimator for PyTorch framework, it can be used to create and execute training tasks, as well as to deploy trained models. In the parameter list, ``instance_type`` is used to specify the instance type, such as CPU or GPU instances. The directory containing training script and the model code are specified by ``source_dir``, and the training script file name must be clearly defined by ``entry_point``. These parameters will be passed to the training task along with other parameters, and they determine the environment settings of the training task." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from sagemaker.pytorch import PyTorch\n", + "\n", + "estimator = PyTorch(role=role,\n", + " entry_point='train.py',\n", + " source_dir='./src',\n", + " output_path=s3_model_artifacts_location,\n", + " code_location=s3_custom_code_upload_location,\n", + " instance_count=1,\n", + " instance_type='ml.g4dn.2xlarge',\n", + " framework_version='1.5.0',\n", + " py_version='py3',\n", + " hyperparameters=hps,\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Please pay special attention to the ``train_use_spot_instances`` parameter. The value of ``True`` means that you want to use SPOT instances first. Since machine learning training usually requires a large amount of computing resources to run for a long time, leveraging SPOT instances can help you control your cost. The SPOT instances may save cost up to 90% of the on-demand instances, depending on the instance type, region, and time, the actual price might be different." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You have created a PyTorch object, and you can use it to fit pre-uploaded data on Amazon S3. The following command will initiate the training task, and the training data will be imported into the training environment in the form of an input channel named **MNIST**. When the training task starts, the training data was already downloaded from S3 to the local file system of the training instance, and the training script ```train.py``` will load the data from the local disk afterwards." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Start training\n", + "estimator.fit({\"MNIST\": s3_data_location}, wait=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Depending on the training instance you choose, the training process may last from tens of minutes to several hours. It is recommended to set the ``wait`` parameter to ``False``, this option will detach the notebook from the training task. In scenarios with long training time and many training logs, it can prevent the notebook context from being lost due to network interruption or session timeout. After the notebook detached from the training task, the output will be temporarily invisible. You can execute the following code, and the notebook will obtain and resume the previous training session." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "%%time\n", + "from sagemaker.estimator import Estimator\n", + "\n", + "# Attaching previous training session\n", + "training_job_name = estimator.latest_training_job.name\n", + "attached_estimator = Estimator.attach(training_job_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the model was designed to leverage the GPU power to accelerate training, it will be much faster on GPU instances than on CPU instances. For example, the g4dn.2xlarge instance will take about 12 minutes, while the c5.xlarge instance may take more than 6 hours. The current model does not support multi-instance training, so instance_count parameter, with value more than 1, will not bring extra benefits in training time optimisation.\n", + "\n", + "When the training completes, the trained model will be uploaded to S3. The upload location is specified by the `output_path` parameter provided when creating the `PyTorch` object." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "isConfigCell": true + }, + "source": [ + "### Model verification" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "isConfigCell": true + }, + "source": [ + "You will download the trained model from Amazon S3 to the local file system of the instance where the notebook is located. The following code will load the model, and then generate a picture with a random number as input, then display picture.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "from sagemaker.s3 import S3Downloader as s3down\n", + "\n", + "model_url = attached_estimator.model_data\n", + "s3down.download(model_url, './tmp')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "!tar -zxf tmp/model.tar.gz -C ./tmp" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "isConfigCell": true + }, + "source": [ + "Execute the following instructions to load the trained model, and generate a set of \"handwritten\" digits." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "def generate_fake_handwriting(model, *, num_images, nz, device=None):\n", + "\n", + " import torch\n", + " import torchvision.utils as vutils\n", + " from io import BytesIO\n", + " from PIL import Image\n", + " \n", + "\n", + " z = torch.randn(num_images, nz, 1, 1, device=device)\n", + " fake = model(z)\n", + "\n", + " imgio = BytesIO()\n", + " vutils.save_image(fake.detach(), imgio, normalize=True, format=\"PNG\")\n", + " img = Image.open(imgio)\n", + " \n", + " return img\n", + "\n", + "\n", + "def load_model(path, *, model_cls=None, params=None, filename=None, device=None, strict=True):\n", + "\n", + " import os\n", + " import torch\n", + " \n", + " model_pt_path = path\n", + " if not filename is None:\n", + " model_pt_path = os.path.join(path, filename)\n", + " \n", + " if device is None:\n", + " device = 'cpu'\n", + " \n", + " if not model_cls is None:\n", + " model = model_cls(**params)\n", + " model.load_state_dict(torch.load(model_pt_path, map_location=torch.device(device)), strict=strict)\n", + " else:\n", + " model = torch.jit.load(model_pt_path, map_location=torch.device(device))\n", + "\n", + " model.to(device)\n", + " \n", + " return model\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import torch\n", + "from src.train import Generator\n", + "\n", + "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n", + "\n", + "params = {'nz': hps['nz'], 'nc': 1, 'ngf': hps['ngf']}\n", + "model = load_model(\"./tmp/model.pth\", model_cls=Generator, params=params, device=device, strict=False)\n", + "img = generate_fake_handwriting(model, num_images=64, nz=hps['nz'], device=device)\n", + "\n", + "plt.imshow(np.asarray(img))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "isConfigCell": true + }, + "source": [ + "### Clean up\n", + "\n", + "Run the following commandline in a terminal, to remove files generated by this notebook from S3 and local storage\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "print(f\"aws s3 rm --recursive s3://{bucket}/{prefix}\")\n", + "print(f\"rm -rf {os.path.abspath(dataroot)}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The PyTorch framework, as one of the most popular deep learning framework, is being widely recognised and applied, has become one of the de facto mainstream frameworks.\n", + "\n", + "Amazon SageMaker is tightly integrated with a variety of AWS services, such as Amazon EC2 instances of various types and sizes, Amazon S3, Amazon ECR, etc., providing an end-to-end, consistent machine learning experience for all framework practitioners. Amazon SageMaker continues to support mainstream machine learning frameworks, including PyTorch. Machine learning algorithms and models developed with PyTorch can be easily transplanted to Amazon SageMaker environment, by using Amazon SageMaker's fully managed Jupyter Notebook, SPOT training instances, Amazon Elastic Container Registry, SageMaker SDK, and so on, the complexity of machine learning engineering and infrastracture operation are simplified, productivity and efficiency are improved, operation and maintenance costs reduced.\n", + "\n", + "DCGAN is a landmark in the field of generative adversarial networks, and it is the cornerstone of many complex GANs today. We will explore some of the most recent and interesting variants of GAN in later examples.\n", + "\n", + "I believe that through the introduction and engineering practice of this example, it will be helpful for you to understand the principles and engineering methods for GAN in general." + ] + } + ], + "metadata": { + "instance_type": "ml.g4dn.xlarge", + "kernelspec": { + "display_name": "Python 3 (PyTorch 1.6 Python 3.6 GPU Optimized)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/pytorch-1.6-gpu-py36-cu110-ubuntu18.04-v3" + }, + "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.13" + }, + "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.", + "toc-autonumbering": false, + "toc-showcode": false, + "toc-showmarkdowntxt": false + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/advanced_functionality/scikit_learn_bring_your_own_model/code/inference.py b/advanced_functionality/scikit_learn_bring_your_own_model/code/inference.py new file mode 100644 index 0000000000..586143a9c2 --- /dev/null +++ b/advanced_functionality/scikit_learn_bring_your_own_model/code/inference.py @@ -0,0 +1,17 @@ +import os +import joblib + +def predict_fn(input_object, model): + ########################################### + # Do your custom preprocessing logic here # + ########################################### + + print("calling model") + predictions = model.predict(input_object) + return predictions + + +def model_fn(model_dir): + print("loading model.joblib from: {}".format(model_dir)) + loaded_model = joblib.load(os.path.join(model_dir, "model.joblib")) + return loaded_model diff --git a/advanced_functionality/scikit_learn_bring_your_own_model/code/requirements.txt b/advanced_functionality/scikit_learn_bring_your_own_model/code/requirements.txt new file mode 100644 index 0000000000..1944c20d04 --- /dev/null +++ b/advanced_functionality/scikit_learn_bring_your_own_model/code/requirements.txt @@ -0,0 +1,3 @@ +boto3 +requests +nltk \ No newline at end of file diff --git a/advanced_functionality/scikit_learn_bring_your_own_model/scikit_learn_bring_your_own_model.ipynb b/advanced_functionality/scikit_learn_bring_your_own_model/scikit_learn_bring_your_own_model.ipynb new file mode 100644 index 0000000000..6510b6951d --- /dev/null +++ b/advanced_functionality/scikit_learn_bring_your_own_model/scikit_learn_bring_your_own_model.ipynb @@ -0,0 +1,494 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0d1bf0a9", + "metadata": {}, + "source": [ + "# Amazon SageMaker scikit-learn Bring Your Own Model\n", + "_**Hosting a pre-trained scikit-learn Model in Amazon SageMaker scikit-learn Container**_\n", + "\n", + "---\n", + "\n", + "---\n", + "\n", + "## Background\n", + "\n", + "Amazon SageMaker includes functionality to support a hosted notebook environment, distributed, serverless training, and real-time hosting. We think it works best when all three of these services are used together, but they can also be used independently. Some use cases may only require hosting. Maybe the model was trained prior to Amazon SageMaker existing, in a different service.\n", + "\n", + "This notebook shows how to use a pre-trained scikit-learn model with the Amazon SageMaker scikit-learn container to quickly create a hosted endpoint for that model.\n", + "We use the California Housing dataset, present in Scikit-Learn: https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html. The California Housing dataset was originally published in:\n", + "\n", + "> Pace, R. Kelley, and Ronald Barry. \"Sparse spatial auto-regressions.\" Statistics & Probability Letters 33.3 (1997): 291-297.\n", + "\n", + "---\n", + "## Setup\n", + "\n", + "Let's start by specifying:\n", + "\n", + "* AWS region.\n", + "* The IAM role arn used to give learning and hosting access to your data.\n", + "* The S3 bucket that you want to use for training and model data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc7bec22", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import boto3\n", + "import re\n", + "import json\n", + "import pandas as pd\n", + "import numpy as np\n", + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "from sagemaker.sklearn.model import SKLearnModel\n", + "from sklearn.datasets import fetch_california_housing\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "\n", + "region = boto3.Session().region_name\n", + "\n", + "role = get_execution_role()\n", + "\n", + "bucket = sagemaker.Session().default_bucket()\n", + "prefix = \"sagemaker/DEMO-sklearn-byo-model\"\n", + "\n", + "print(f\"bucket: {bucket}\")" + ] + }, + { + "cell_type": "markdown", + "id": "61240ddf", + "metadata": {}, + "source": [ + "## Prepare data for model inference\n", + "\n", + "We load the California housing dataset from sklearn, and will use it to invoke SageMaker Endpoint" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a10d2340", + "metadata": {}, + "outputs": [], + "source": [ + "data = fetch_california_housing()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cee9c5a", + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(\n", + " data.data, data.target, test_size=0.25, random_state=42\n", + ")\n", + "\n", + "# we don't train a model, so we will need only the testing data\n", + "testX = pd.DataFrame(X_test, columns=data.feature_names)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ca83f5b0", + "metadata": {}, + "outputs": [], + "source": [ + "testX.head(10)" + ] + }, + { + "cell_type": "markdown", + "id": "e9f9c09f", + "metadata": {}, + "source": [ + "## Download a pre-trained model file\n", + "\n", + "Download a pretrained Scikit-Learn Random Forest model.\n", + "\n", + "We used the California Housing dataset, present in Scikit-Learn: https://scikit-learn.org/stable/datasets/real_world.html#california-housing-dataset to train the model.\n", + "\n", + "For more details on how to train the model with Amazon SageMaker, please refer to the [Develop, Train, Optimize and Deploy Scikit-Learn Random Forest notebook](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ccaece6", + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp s3://aws-ml-blog/artifacts/scikit_learn_bring_your_own_model/model.joblib ." + ] + }, + { + "cell_type": "markdown", + "id": "a425243b", + "metadata": {}, + "source": [ + "### Compressed the model file to a GZIP tar archive \n", + "\n", + "Note that the model file name must satisfy the regular expression pattern: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*;`. The model file needs to be tar-zipped. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47b9153e", + "metadata": {}, + "outputs": [], + "source": [ + "model_file_name = \"model.joblib\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa131b42", + "metadata": {}, + "outputs": [], + "source": [ + "!tar czvf model.tar.gz $model_file_name" + ] + }, + { + "cell_type": "markdown", + "id": "6ea55281", + "metadata": {}, + "source": [ + "## Upload the pre-trained model `model.tar.gz` file to S3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "385ef0d6", + "metadata": {}, + "outputs": [], + "source": [ + "fObj = open(\"model.tar.gz\", \"rb\")\n", + "key = os.path.join(prefix, \"model.tar.gz\")\n", + "boto3.Session().resource(\"s3\").Bucket(bucket).Object(key).upload_fileobj(fObj)" + ] + }, + { + "cell_type": "markdown", + "id": "2f6e19f0", + "metadata": {}, + "source": [ + "## Set up hosting for the model\n", + "\n", + "This involves creating a SageMaker model from the model file previously uploaded to S3." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b848a666", + "metadata": {}, + "outputs": [], + "source": [ + "model_data = \"s3://{}/{}\".format(bucket, key)\n", + "print(f\"model data: {model_data}\")" + ] + }, + { + "cell_type": "markdown", + "id": "8f2c9b40", + "metadata": {}, + "source": [ + "### Write the Inference Script\n", + "\n", + "When using endpoints with the Amazon SageMaker managed `Scikit Learn` container, we need to provide an entry point script for inference that will **at least** load the saved model.\n", + "\n", + "After the SageMaker model server has loaded your model by calling `model_fn`, SageMaker will serve your model. Model serving is the process of responding to inference requests, received by SageMaker `InvokeEndpoint` API calls.\n", + "\n", + "\n", + "We will implement also the `predict_fn()` function that takes the deserialized request object and performs inference against the loaded model.\n", + "\n", + "We will now create this script and call it `inference.py` and store it at the root of a directory called `code`.\n", + "\n", + "**Note:** You would modify the script below to implement your own inferencing logic.\n", + "\n", + "Additional information on model loading and model serving for scikit-learn on SageMaker can be found in the [SageMaker Scikit-learn Model Server documentation](https://sagemaker.readthedocs.io/en/stable/frameworks/sklearn/using_sklearn.html#deploy-a-scikit-learn-model)\n", + "\n", + "There are also several functions for hosting which we won't define,\n", + " - `input_fn()` - Takes request data and deserializes the data into an object for prediction.\n", + " - `output_fn()` - Takes the result of prediction and serializes this according to the response content type.\n", + "\n", + "These will take on their default values as described [SageMaker Scikit-learn Serve a Model documentation](https://sagemaker.readthedocs.io/en/stable/frameworks/sklearn/using_sklearn.html#serve-a-model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e8e0fe49", + "metadata": {}, + "outputs": [], + "source": [ + "!pygmentize ./code/inference.py" + ] + }, + { + "cell_type": "markdown", + "id": "1ad63dfa", + "metadata": {}, + "source": [ + "### Installing additional Python dependencies\n", + "\n", + "It also may be necessary to supply a `requirements.txt` file to ensure any necessary dependencies are installed in the container along with the script. For this script, in addition to the Python standard libraries, we showcase how to install the `boto3` `requests`, and `nltk` libraries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98372621", + "metadata": {}, + "outputs": [], + "source": [ + "!pygmentize ./code/requirements.txt" + ] + }, + { + "cell_type": "markdown", + "id": "93217e26", + "metadata": {}, + "source": [ + "### Deploy with Python SDK\n", + "\n", + "Here we showcase the process of creating a model from s3 artifacts, that could be used to deploy a model that was trained in a different session or even out of SageMaker." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c408083", + "metadata": {}, + "outputs": [], + "source": [ + "model = SKLearnModel(\n", + " role=role,\n", + " model_data=model_data,\n", + " framework_version=\"0.23-1\",\n", + " py_version=\"py3\",\n", + " source_dir=\"code\",\n", + " entry_point=\"inference.py\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "5e05fe2b", + "metadata": {}, + "source": [ + "### Create endpoint\n", + "Lastly, you create the endpoint that serves up the model, through specifying the name and configuration defined above. The end result is an endpoint that can be validated and incorporated into production applications. This takes 5-10 minutes to complete." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b06fb61a", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "predictor = model.deploy(instance_type=\"ml.t2.medium\", initial_instance_count=1)" + ] + }, + { + "cell_type": "markdown", + "id": "e7d0c01a", + "metadata": {}, + "source": [ + "## Validate the model for use\n", + "Now you can obtain the endpoint from the client library using the result from previous operations and generate classifications from the model using that endpoint." + ] + }, + { + "cell_type": "markdown", + "id": "9407488f", + "metadata": {}, + "source": [ + "### Invoke with the Python SDK" + ] + }, + { + "cell_type": "markdown", + "id": "2b263bbf", + "metadata": {}, + "source": [ + "Let's generate the prediction for a single data point. We'll pick one from the test data generated earlier." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79227345", + "metadata": {}, + "outputs": [], + "source": [ + "# the SKLearnPredictor does the serialization from pandas for us\n", + "predictions = predictor.predict(testX[data.feature_names])\n", + "print(predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "5a30e6af", + "metadata": {}, + "source": [ + "### Alternative: invoke with `boto3`\n", + "\n", + "This is useful when invoking the model from external clients, e.g. Lambda Functions, or other micro-services." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "775c1b18", + "metadata": {}, + "outputs": [], + "source": [ + "runtime = boto3.client(\"sagemaker-runtime\")" + ] + }, + { + "cell_type": "markdown", + "id": "2f34e183", + "metadata": {}, + "source": [ + "#### Option 1: `csv` serialization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "783a343d", + "metadata": {}, + "outputs": [], + "source": [ + "# csv serialization\n", + "response = runtime.invoke_endpoint(\n", + " EndpointName=predictor.endpoint,\n", + " Body=testX[data.feature_names].to_csv(header=False, index=False).encode(\"utf-8\"),\n", + " ContentType=\"text/csv\",\n", + ")\n", + "\n", + "print(response[\"Body\"].read())" + ] + }, + { + "cell_type": "markdown", + "id": "f78ab683", + "metadata": {}, + "source": [ + "#### Option 2: `npy` serialization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9bb751f6", + "metadata": {}, + "outputs": [], + "source": [ + "# npy serialization\n", + "from io import BytesIO\n", + "\n", + "\n", + "# Serialise numpy ndarray as bytes\n", + "buffer = BytesIO()\n", + "# Assuming testX is a data frame\n", + "np.save(buffer, testX[data.feature_names].values)\n", + "\n", + "response = runtime.invoke_endpoint(\n", + " EndpointName=predictor.endpoint, Body=buffer.getvalue(), ContentType=\"application/x-npy\"\n", + ")\n", + "\n", + "print(response[\"Body\"].read())" + ] + }, + { + "cell_type": "markdown", + "id": "a3b13de5", + "metadata": {}, + "source": [ + "### (Optional) Delete the Endpoint\n", + "\n", + "If you're ready to be done with this notebook, please run the delete_endpoint line in the cell below. This will remove the hosted endpoint you created and avoid any charges from a stray instance being left on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5398938", + "metadata": {}, + "outputs": [], + "source": [ + "predictor.delete_endpoint()" + ] + }, + { + "cell_type": "markdown", + "id": "9145ac7c", + "metadata": {}, + "source": [ + "## Conclusion" + ] + }, + { + "cell_type": "markdown", + "id": "4543c65a", + "metadata": {}, + "source": [ + "In this notebook you successfully deployed a pre-trained scikit-learn model with the Amazon SageMaker scikit-learn container to quickly create a hosted endpoint for that model.\n", + "You then used the Python SDK and `boto3` to invoke the endpoint with `csv` payload, and then with `npy` payload to get predictions from the model.\n", + "\n", + "As next steps you can try to [Automatically Scale Amazon SageMaker Models](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html), [Register and Deploy Models with Model Registry](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html) or [Train your Model with Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html).\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4937421", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (Data Science)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/datascience-1.0" + }, + "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.10" + }, + "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/advanced_functionality/xgboost_bring_your_own_model/out.sh b/advanced_functionality/xgboost_bring_your_own_model/out.sh new file mode 100644 index 0000000000..f268b7b511 --- /dev/null +++ b/advanced_functionality/xgboost_bring_your_own_model/out.sh @@ -0,0 +1,324 @@ +c4b301c88fc1:amazon-sagemaker-examples julkroll$ git diff +diff --git a/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb b/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb +index 8df40914..f9b5a511 100644 +--- a/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb ++++ b/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb +@@ -1,18 +1,7 @@ + { + "cells": [ +- { +- "cell_type": "code", +- "execution_count": null, +- "id": "canadian-powell", +- "metadata": {}, +- "outputs": [], +- "source": [ +- "!pip install -Uq xgboost" +- ] +- }, + { + "cell_type": "markdown", +- "id": "animal-static", + "metadata": {}, + "source": [ + "# Amazon SageMaker XGBoost Bring Your Own Model\n", +@@ -54,7 +43,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "comic-jonathan", + "metadata": {}, + "outputs": [], + "source": [ +@@ -77,7 +65,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "revolutionary-egypt", + "metadata": {}, + "outputs": [], + "source": [ +@@ -88,30 +75,15 @@ + }, + { + "cell_type": "markdown", +- "id": "second-traffic", + "metadata": {}, + "source": [ + "## Optionally, train a scikit learn XGBoost model\n", + "\n", +- "These steps are optional and are needed to generate the scikit-learn model that will eventually be hosted using the SageMaker Algorithm contained. \n", +- "\n", +- "### Install XGboost\n", +- "Note that for conda based installation, you'll need to change the Notebook kernel to the environment with conda and Python3. " +- ] +- }, +- { +- "cell_type": "code", +- "execution_count": null, +- "id": "expanded-dress", +- "metadata": {}, +- "outputs": [], +- "source": [ +- "!conda install -y -c conda-forge xgboost==0.90" ++ "These steps are optional and are needed to generate the scikit-learn model that will eventually be hosted using the SageMaker Algorithm contained. \n" + ] + }, + { + "cell_type": "markdown", +- "id": "little-still", + "metadata": {}, + "source": [ + "### Fetch the dataset" +@@ -120,7 +92,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "injured-crawford", + "metadata": {}, + "outputs": [], + "source": [ +@@ -129,7 +100,6 @@ + }, + { + "cell_type": "markdown", +- "id": "tough-facial", + "metadata": {}, + "source": [ + "### Prepare the dataset for training" +@@ -138,7 +108,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "bright-powder", + "metadata": {}, + "outputs": [], + "source": [ +@@ -162,7 +131,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "wooden-thesis", + "metadata": {}, + "outputs": [], + "source": [ +@@ -178,7 +146,6 @@ + }, + { + "cell_type": "markdown", +- "id": "strong-height", + "metadata": {}, + "source": [ + "### Train the XGBClassifier" +@@ -187,7 +154,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "sought-genome", + "metadata": {}, + "outputs": [], + "source": [ +@@ -202,7 +168,6 @@ + }, + { + "cell_type": "markdown", +- "id": "patient-endorsement", + "metadata": {}, + "source": [ + "### Save the trained model file\n", +@@ -212,7 +177,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "arctic-retail", + "metadata": {}, + "outputs": [], + "source": [ +@@ -223,7 +187,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "fatty-chapel", + "metadata": {}, + "outputs": [], + "source": [ +@@ -232,7 +195,6 @@ + }, + { + "cell_type": "markdown", +- "id": "forced-illustration", + "metadata": {}, + "source": [ + "## Upload the pre-trained model to S3" +@@ -241,7 +203,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "molecular-admission", + "metadata": {}, + "outputs": [], + "source": [ +@@ -252,7 +213,6 @@ + }, + { + "cell_type": "markdown", +- "id": "willing-miami", + "metadata": {}, + "source": [ + "## Set up hosting for the model\n", +@@ -264,19 +224,17 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "juvenile-glossary", + "metadata": {}, + "outputs": [], + "source": [ +- "from sagemaker.amazon.amazon_estimator import get_image_uri\n", ++ "from sagemaker import image_uris\n", + "\n", +- "container = get_image_uri(boto3.Session().region_name, \"xgboost\", \"0.90-2\")" ++ "container = image_uris.retrieve(region=boto3.Session().region_name, framework=\"xgboost\", version=\"0.90-2\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, +- "id": "competitive-mozambique", + "metadata": {}, + "outputs": [], + "source": [ +@@ -303,7 +261,6 @@ + }, + { + "cell_type": "markdown", +- "id": "announced-affect", + "metadata": {}, + "source": [ + "### Create endpoint configuration\n", +@@ -314,7 +271,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "alike-experience", + "metadata": {}, + "outputs": [], + "source": [ +@@ -340,7 +296,6 @@ + }, + { + "cell_type": "markdown", +- "id": "otherwise-wiring", + "metadata": {}, + "source": [ + "### Create endpoint\n", +@@ -350,7 +305,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "experienced-makeup", + "metadata": {}, + "outputs": [], + "source": [ +@@ -380,7 +334,6 @@ + }, + { + "cell_type": "markdown", +- "id": "specific-sheffield", + "metadata": {}, + "source": [ + "## Validate the model for use\n", +@@ -390,7 +343,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "pediatric-subject", + "metadata": {}, + "outputs": [], + "source": [ +@@ -399,7 +351,6 @@ + }, + { + "cell_type": "markdown", +- "id": "saving-ghost", + "metadata": {}, + "source": [ + "Lets generate the prediction for a single datapoint. We'll pick one from the test data generated earlier." +@@ -408,7 +359,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "polish-laugh", + "metadata": {}, + "outputs": [], + "source": [ +@@ -423,7 +373,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "reported-coalition", + "metadata": {}, + "outputs": [], + "source": [ +@@ -447,7 +396,6 @@ + }, + { + "cell_type": "markdown", +- "id": "pursuant-cemetery", + "metadata": {}, + "source": [ + "### Post process the output\n", +@@ -457,7 +405,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "broken-individual", + "metadata": {}, + "outputs": [], + "source": [ +@@ -469,7 +416,6 @@ + }, + { + "cell_type": "markdown", +- "id": "going-popularity", + "metadata": {}, + "source": [ + "### (Optional) Delete the Endpoint\n", +@@ -480,7 +426,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "foster-steps", + "metadata": {}, + "outputs": [], + "source": [ +@@ -490,10 +435,11 @@ + ], + "metadata": { + "anaconda-cloud": {}, ++ "instance_type": "ml.t3.medium", + "kernelspec": { +- "display_name": "Environment (conda_anaconda3)", ++ "display_name": "Python 3 (Data Science)", + "language": "python", +- "name": "conda_anaconda3" ++ "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/datascience-1.0" + }, + "language_info": { + "codemirror_mode": { +@@ -504,10 +450,11 @@ + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", +- "pygments_lexer": "ipython3" ++ "pygments_lexer": "ipython3", ++ "version": "3.6.13" + }, + "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." + }, + "nbformat": 4, + "nbformat_minor": 5 +-} +\ No newline at end of file ++} +c4b301c88fc1:amazon-sagemaker-examples julkroll$ diff --git a/advanced_functionality/xgboost_bring_your_own_model/out.txt b/advanced_functionality/xgboost_bring_your_own_model/out.txt new file mode 100644 index 0000000000..f268b7b511 --- /dev/null +++ b/advanced_functionality/xgboost_bring_your_own_model/out.txt @@ -0,0 +1,324 @@ +c4b301c88fc1:amazon-sagemaker-examples julkroll$ git diff +diff --git a/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb b/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb +index 8df40914..f9b5a511 100644 +--- a/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb ++++ b/advanced_functionality/xgboost_bring_your_own_model/xgboost_bring_your_own_model.ipynb +@@ -1,18 +1,7 @@ + { + "cells": [ +- { +- "cell_type": "code", +- "execution_count": null, +- "id": "canadian-powell", +- "metadata": {}, +- "outputs": [], +- "source": [ +- "!pip install -Uq xgboost" +- ] +- }, + { + "cell_type": "markdown", +- "id": "animal-static", + "metadata": {}, + "source": [ + "# Amazon SageMaker XGBoost Bring Your Own Model\n", +@@ -54,7 +43,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "comic-jonathan", + "metadata": {}, + "outputs": [], + "source": [ +@@ -77,7 +65,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "revolutionary-egypt", + "metadata": {}, + "outputs": [], + "source": [ +@@ -88,30 +75,15 @@ + }, + { + "cell_type": "markdown", +- "id": "second-traffic", + "metadata": {}, + "source": [ + "## Optionally, train a scikit learn XGBoost model\n", + "\n", +- "These steps are optional and are needed to generate the scikit-learn model that will eventually be hosted using the SageMaker Algorithm contained. \n", +- "\n", +- "### Install XGboost\n", +- "Note that for conda based installation, you'll need to change the Notebook kernel to the environment with conda and Python3. " +- ] +- }, +- { +- "cell_type": "code", +- "execution_count": null, +- "id": "expanded-dress", +- "metadata": {}, +- "outputs": [], +- "source": [ +- "!conda install -y -c conda-forge xgboost==0.90" ++ "These steps are optional and are needed to generate the scikit-learn model that will eventually be hosted using the SageMaker Algorithm contained. \n" + ] + }, + { + "cell_type": "markdown", +- "id": "little-still", + "metadata": {}, + "source": [ + "### Fetch the dataset" +@@ -120,7 +92,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "injured-crawford", + "metadata": {}, + "outputs": [], + "source": [ +@@ -129,7 +100,6 @@ + }, + { + "cell_type": "markdown", +- "id": "tough-facial", + "metadata": {}, + "source": [ + "### Prepare the dataset for training" +@@ -138,7 +108,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "bright-powder", + "metadata": {}, + "outputs": [], + "source": [ +@@ -162,7 +131,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "wooden-thesis", + "metadata": {}, + "outputs": [], + "source": [ +@@ -178,7 +146,6 @@ + }, + { + "cell_type": "markdown", +- "id": "strong-height", + "metadata": {}, + "source": [ + "### Train the XGBClassifier" +@@ -187,7 +154,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "sought-genome", + "metadata": {}, + "outputs": [], + "source": [ +@@ -202,7 +168,6 @@ + }, + { + "cell_type": "markdown", +- "id": "patient-endorsement", + "metadata": {}, + "source": [ + "### Save the trained model file\n", +@@ -212,7 +177,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "arctic-retail", + "metadata": {}, + "outputs": [], + "source": [ +@@ -223,7 +187,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "fatty-chapel", + "metadata": {}, + "outputs": [], + "source": [ +@@ -232,7 +195,6 @@ + }, + { + "cell_type": "markdown", +- "id": "forced-illustration", + "metadata": {}, + "source": [ + "## Upload the pre-trained model to S3" +@@ -241,7 +203,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "molecular-admission", + "metadata": {}, + "outputs": [], + "source": [ +@@ -252,7 +213,6 @@ + }, + { + "cell_type": "markdown", +- "id": "willing-miami", + "metadata": {}, + "source": [ + "## Set up hosting for the model\n", +@@ -264,19 +224,17 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "juvenile-glossary", + "metadata": {}, + "outputs": [], + "source": [ +- "from sagemaker.amazon.amazon_estimator import get_image_uri\n", ++ "from sagemaker import image_uris\n", + "\n", +- "container = get_image_uri(boto3.Session().region_name, \"xgboost\", \"0.90-2\")" ++ "container = image_uris.retrieve(region=boto3.Session().region_name, framework=\"xgboost\", version=\"0.90-2\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, +- "id": "competitive-mozambique", + "metadata": {}, + "outputs": [], + "source": [ +@@ -303,7 +261,6 @@ + }, + { + "cell_type": "markdown", +- "id": "announced-affect", + "metadata": {}, + "source": [ + "### Create endpoint configuration\n", +@@ -314,7 +271,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "alike-experience", + "metadata": {}, + "outputs": [], + "source": [ +@@ -340,7 +296,6 @@ + }, + { + "cell_type": "markdown", +- "id": "otherwise-wiring", + "metadata": {}, + "source": [ + "### Create endpoint\n", +@@ -350,7 +305,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "experienced-makeup", + "metadata": {}, + "outputs": [], + "source": [ +@@ -380,7 +334,6 @@ + }, + { + "cell_type": "markdown", +- "id": "specific-sheffield", + "metadata": {}, + "source": [ + "## Validate the model for use\n", +@@ -390,7 +343,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "pediatric-subject", + "metadata": {}, + "outputs": [], + "source": [ +@@ -399,7 +351,6 @@ + }, + { + "cell_type": "markdown", +- "id": "saving-ghost", + "metadata": {}, + "source": [ + "Lets generate the prediction for a single datapoint. We'll pick one from the test data generated earlier." +@@ -408,7 +359,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "polish-laugh", + "metadata": {}, + "outputs": [], + "source": [ +@@ -423,7 +373,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "reported-coalition", + "metadata": {}, + "outputs": [], + "source": [ +@@ -447,7 +396,6 @@ + }, + { + "cell_type": "markdown", +- "id": "pursuant-cemetery", + "metadata": {}, + "source": [ + "### Post process the output\n", +@@ -457,7 +405,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "broken-individual", + "metadata": {}, + "outputs": [], + "source": [ +@@ -469,7 +416,6 @@ + }, + { + "cell_type": "markdown", +- "id": "going-popularity", + "metadata": {}, + "source": [ + "### (Optional) Delete the Endpoint\n", +@@ -480,7 +426,6 @@ + { + "cell_type": "code", + "execution_count": null, +- "id": "foster-steps", + "metadata": {}, + "outputs": [], + "source": [ +@@ -490,10 +435,11 @@ + ], + "metadata": { + "anaconda-cloud": {}, ++ "instance_type": "ml.t3.medium", + "kernelspec": { +- "display_name": "Environment (conda_anaconda3)", ++ "display_name": "Python 3 (Data Science)", + "language": "python", +- "name": "conda_anaconda3" ++ "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/datascience-1.0" + }, + "language_info": { + "codemirror_mode": { +@@ -504,10 +450,11 @@ + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", +- "pygments_lexer": "ipython3" ++ "pygments_lexer": "ipython3", ++ "version": "3.6.13" + }, + "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." + }, + "nbformat": 4, + "nbformat_minor": 5 +-} +\ No newline at end of file ++} +c4b301c88fc1:amazon-sagemaker-examples julkroll$ diff --git a/async-inference/Async-Inference-Walkthrough.ipynb b/async-inference/Async-Inference-Walkthrough.ipynb new file mode 100755 index 0000000000..d8175871a9 --- /dev/null +++ b/async-inference/Async-Inference-Walkthrough.ipynb @@ -0,0 +1,683 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Amazon SageMaker Asynchronous Inference\n", + "_**A new near real-time Inference option for generating machine learning model predictions**_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Table of Contents**\n", + "\n", + "* [Background](#background)\n", + "* [Notebook Scope](#scope)\n", + "* [Overview and sample end to end flow](#overview)\n", + "* [Section 1 - Setup](#setup) \n", + " * [Create Model](#createmodel)\n", + " * [Create EndpointConfig](#endpoint-config)\n", + " * [Create Endpoint](#create-endpoint)\n", + " * [Setup AutoScaling policy (Optional)](#setup-autoscaling)\n", + "* [Section 2 - Using the Endpoint](#endpoint) \n", + " * [Invoke Endpoint](#invoke-endpoint)\n", + " * [Check Output Location](#check-output)\n", + " * [Multiple Invocations](#multiple-invoke) \n", + "* [Section 3 - Clean up](#clean)\n", + "\n", + "### Background \n", + "Amazon SageMaker Asynchronous Inference is a new capability in SageMaker that queues incoming requests and processes them asynchronously. SageMaker currently offers two inference options for customers to deploy machine learning models: 1) a real-time option for low-latency workloads 2) Batch transform, an offline option to process inference requests on batches of data available upfront. Real-time inference is suited for workloads with payload sizes of less than 6 MB and require inference requests to be processed within 60 seconds. Batch transform is suitable for offline inference on batches of data. \n", + "\n", + "Asynchronous inference is a new inference option for near real-time inference needs. Requests can take up to 15 minutes to process and have payload sizes of up to 1 GB. Asynchronous inference is suitable for workloads that do not have sub-second latency requirements and have relaxed latency requirements. For example, you might need to process an inference on a large image of several MBs within 5 minutes. In addition, asynchronous inference endpoints let you control costs by scaling down endpoints instance count to zero when they are idle, so you only pay when your endpoints are processing requests. \n", + "\n", + "### Notebook scope \n", + "This notebook provides an introduction to the SageMaker Asynchronous inference capability. This notebook will cover the steps required to create an asynchonous inference endpoint and test it with some sample requests. \n", + "\n", + "### Overview and sample end to end flow \n", + "Asynchronous inference endpoints have many similarities (and some key differences) compared to real-time endpoints. The process to create asynchronous endpoints is similar to real-time endpoints. You need to create: a model, an endpoint configuration, and then an endpoint. However, there are specific configuration parameters specific to asynchronous inference endpoints which we will explore below. \n", + "\n", + "Invocation of asynchronous endpoints differ from real-time endpoints. Rather than pass request payload inline with the request, you upload the payload to Amazon S3 and pass an Amazon S3 URI as a part of the request. Upon receiving the request, SageMaker provides you with a token with the output location where the result will be placed once processed. Internally, SageMaker maintains a queue with these requests and processes them. During endpoint creation, you can optionally specify an Amazon SNS topic to receive success or error notifications. Once you receive the notification that your inference request has been successfully processed, you can access the result in the output Amazon S3 location. \n", + "\n", + "The diagram below provides a visual overview of the end-to-end flow with Asynchronous inference endpoint." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![title](images/e2e.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're about to work with the [Titanic dataset](https://www.openml.org/d/40945)[1]. From the dataset documentation:\n", + "\n", + "> The original Titanic dataset, describing the survival status of individual passengers on the Titanic. The titanic data does not contain information from the crew, but it does contain actual ages of half of the passengers. The principal source for data about Titanic passengers is the Encyclopedia Titanica. The datasets used here were begun by a variety of researchers. One of the original sources is Eaton & Haas (1994) Titanic: Triumph and Tragedy, Patrick Stephens Ltd, which includes a passenger list created by many researchers and edited by Michael A. Findlay.\n", + ">\n", + "> Thomas Cason of UVa has greatly updated and improved the Titanic data frame using the Encyclopedia Titanica and created the dataset here. Some duplicate passengers have been dropped, many errors corrected, many missing ages filled in, and new variables created.\n", + ">\n", + "> For more information about how this dataset was constructed:\n", + "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3info.txt\n", + ">\n", + "> [1] Author: Frank E. Harrell Jr., Thomas Cason\n", + "Source: [Vanderbilt Biostatistics](http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 1. Setup " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we ensure we have an updated version of boto3, which includes the latest SageMaker features:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Import the required python libraries:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!python -m pip install --upgrade pip --quiet\n", + "!pip install -U awscli --quiet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sagemaker\n", + "import boto3\n", + "from time import gmtime, strftime\n", + "\n", + "boto_session = boto3.session.Session()\n", + "sm_session = sagemaker.session.Session()\n", + "sm_client = boto_session.client(\"sagemaker\")\n", + "sm_runtime = boto_session.client(\"sagemaker-runtime\")\n", + "region = boto_session.region_name" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify your IAM role. Go the AWS IAM console (https://console.aws.amazon.com/iam/home) and add the following policies to your IAM Role:\n", + "* SageMakerFullAccessPolicy\n", + "* Amazon S3 access: Apply this to get and put objects in your Amazon S3 bucket. Replace `bucket_name` with the name of your Amazon S3 bucket: \n", + "\n", + "```json\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Action\": [\n", + " \"s3:GetObject\",\n", + " \"s3:PutObject\",\n", + " \"s3:AbortMultipartUpload\",\n", + " \"s3:ListBucket\"\n", + " ],\n", + " \"Effect\": \"Allow\",\n", + " \"Resource\": \"arn:aws:s3:::bucket_name/*\"\n", + " }\n", + " ]\n", + "}\n", + "```\n", + "\n", + "* (Optional) Amazon SNS access: Add `sns:Publish` on the topics you define. Apply this if you plan to use Amazon SNS to receive notifications.\n", + "\n", + "```json\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Action\": [\n", + " \"sns:Publish\"\n", + " ],\n", + " \"Effect\": \"Allow\",\n", + " \"Resource\": \"arn:aws:sns:us-east-2:123456789012:MyTopic\"\n", + " }\n", + " ]\n", + "}\n", + "```\n", + "\n", + "* (Optional) KMS decrypt, encrypt if your Amazon S3 bucket is encrypte." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Download the Input files and model from S3 bucket\n", + "!aws s3 cp --recursive s3://sagemaker-sample-files/models/async-inference/input-files/ input/\n", + "!aws s3 cp s3://sagemaker-sample-files/models/async-inference/demo-xgboost-model.tar.gz model/" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify your SageMaker IAM Role (`sm_role`) and Amazon S3 bucket (`s3_bucket`). You can optionally use a default SageMaker Session IAM Role and Amazon S3 bucket. Make sure the role you use has the necessary permissions for SageMaker, Amazon S3, and optionally Amazon SNS." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sm_role = sagemaker.get_execution_role()\n", + "# Feel free to use your own role here\n", + "# sm_role = \"arn:aws:iam::123456789012:role/sagemaker-custom-role\"\n", + "print(f\"Using Role: {sm_role}\")\n", + "s3_bucket = sm_session.default_bucket()\n", + "print(f\"Will use bucket '{s3_bucket}' for storing all resources related to this notebook\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bucket_prefix = \"async-inference-demo\"\n", + "resource_name = \"AsyncInferenceDemo\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, you will create a model with `CreateModel`, an endpoint configuration with `CreateEndpointConfig`, and then an endpoint with the `CreateEndpoint` API.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.1 Create Model \n", + "Specify the location of the pre-trained model stored in Amazon S3. This example uses a pre-trained XGBoost model name demo-xgboost-model.tar.gz. The full Amazon S3 URI is stored in a string variable `model_url`. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model_s3_key = f\"{bucket_prefix}/demo-xgboost-model.tar.gz\"\n", + "model_url = f\"s3://{s3_bucket}/{model_s3_key}\"\n", + "print(f\"Uploading Model to {model_url}\")\n", + "\n", + "with open(\"model/demo-xgboost-model.tar.gz\", \"rb\") as model_file:\n", + " boto_session.resource(\"s3\").Bucket(s3_bucket).Object(model_s3_key).upload_fileobj(model_file)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify a primary container. For the primary container, you specify the Docker image that contains inference code, artifacts (from prior training), and a custom environment map that the inference code uses when you deploy the model for predictions. In this example, we specify an XGBoost built-in algorithm container image." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker import image_uris\n", + "\n", + "# Specify an AWS container image and region as desired\n", + "container = image_uris.retrieve(region=region, framework=\"xgboost\", version=\"0.90-1\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a model by specifying the `ModelName`, the `ExecutionRoleARN` (the ARN of the IAM role that Amazon SageMaker can assume to access model artifacts/ docker images for deployment), and the `PrimaryContainer`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model_name = resource_name.format(\"Model\")\n", + "create_model_response = sm_client.create_model(\n", + " ModelName=model_name,\n", + " ExecutionRoleArn=sm_role,\n", + " PrimaryContainer={\n", + " \"Image\": container,\n", + " \"ModelDataUrl\": model_url,\n", + " },\n", + ")\n", + "\n", + "print(f\"Created Model: {create_model_response['ModelArn']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.2 Create EndpointConfig " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once you have a model, create an endpoint configuration with `CreateEndpointConfig`. Amazon SageMaker hosting services uses this configuration to deploy models. In the configuration, you identify one or more model that were created using with `CreateModel` API, to deploy the resources that you want Amazon SageMaker to provision. Specify the `AsyncInferenceConfig` object and provide an output Amazon S3 location for `OutputConfig`. You can optionally specify Amazon SNS topics on which to send notifications about prediction results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "endpoint_config_name = resource_name.format(\"EndpointConfig\")\n", + "create_endpoint_config_response = sm_client.create_endpoint_config(\n", + " EndpointConfigName=endpoint_config_name,\n", + " ProductionVariants=[\n", + " {\n", + " \"VariantName\": \"variant1\",\n", + " \"ModelName\": model_name,\n", + " \"InstanceType\": \"ml.m5.xlarge\",\n", + " \"InitialInstanceCount\": 1,\n", + " }\n", + " ],\n", + " AsyncInferenceConfig={\n", + " \"OutputConfig\": {\n", + " \"S3OutputPath\": f\"s3://{s3_bucket}/{bucket_prefix}/output\",\n", + " # Optionally specify Amazon SNS topics\n", + " # \"NotificationConfig\": {\n", + " # \"SuccessTopic\": \"arn:aws:sns:us-east-2:123456789012:MyTopic\",\n", + " # \"ErrorTopic\": \"arn:aws:sns:us-east-2:123456789012:MyTopic\",\n", + " # }\n", + " },\n", + " \"ClientConfig\": {\"MaxConcurrentInvocationsPerInstance\": 4},\n", + " },\n", + ")\n", + "print(f\"Created EndpointConfig: {create_endpoint_config_response['EndpointConfigArn']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.3 Create Endpoint " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once you have your model and endpoint configuration, use the `CreateEndpoint` API to create your endpoint. The endpoint name must be unique within an AWS Region in your AWS account." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "endpoint_name = resource_name.format(\"Endpoint\")\n", + "create_endpoint_response = sm_client.create_endpoint(\n", + " EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name\n", + ")\n", + "print(f\"Created Endpoint: {create_endpoint_response['EndpointArn']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Validate that the endpoint is created before invoking it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "waiter = sm_client.get_waiter(\"endpoint_in_service\")\n", + "print(\"Waiting for endpoint to create...\")\n", + "waiter.wait(EndpointName=endpoint_name)\n", + "resp = sm_client.describe_endpoint(EndpointName=endpoint_name)\n", + "print(f\"Endpoint Status: {resp['EndpointStatus']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.4 Setup AutoScaling policy (Optional) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This section describes how to configure autoscaling on your asynchronous endpoint using Application Autoscaling. You need to first register your endpoint variant with Application Autoscaling, define a scaling policy, and then apply the scaling policy. In this configuration, we use a custom metric, `CustomizedMetricSpecification`, called `ApproximateBacklogSizePerInstance`. Please refer to the SageMaker Developer guide for a detailed list of metrics available with your asynchronous inference endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = boto3.client(\n", + " \"application-autoscaling\"\n", + ") # Common class representing Application Auto Scaling for SageMaker amongst other services\n", + "\n", + "resource_id = (\n", + " \"endpoint/\" + endpoint_name + \"/variant/\" + \"variant1\"\n", + ") # This is the format in which application autoscaling references the endpoint\n", + "\n", + "# Configure Autoscaling on asynchronous endpoint down to zero instances\n", + "response = client.register_scalable_target(\n", + " ServiceNamespace=\"sagemaker\",\n", + " ResourceId=resource_id,\n", + " ScalableDimension=\"sagemaker:variant:DesiredInstanceCount\",\n", + " MinCapacity=0,\n", + " MaxCapacity=5,\n", + ")\n", + "\n", + "response = client.put_scaling_policy(\n", + " PolicyName=\"Invocations-ScalingPolicy\",\n", + " ServiceNamespace=\"sagemaker\", # The namespace of the AWS service that provides the resource.\n", + " ResourceId=resource_id, # Endpoint name\n", + " ScalableDimension=\"sagemaker:variant:DesiredInstanceCount\", # SageMaker supports only Instance Count\n", + " PolicyType=\"TargetTrackingScaling\", # 'StepScaling'|'TargetTrackingScaling'\n", + " TargetTrackingScalingPolicyConfiguration={\n", + " \"TargetValue\": 5.0, # The target value for the metric. - here the metric is - SageMakerVariantInvocationsPerInstance\n", + " \"CustomizedMetricSpecification\": {\n", + " \"MetricName\": \"ApproximateBacklogSizePerInstance\",\n", + " \"Namespace\": \"AWS/SageMaker\",\n", + " \"Dimensions\": [{\"Name\": \"EndpointName\", \"Value\": endpoint_name}],\n", + " \"Statistic\": \"Average\",\n", + " },\n", + " \"ScaleInCooldown\": 600, # The cooldown period helps you prevent your Auto Scaling group from launching or terminating\n", + " # additional instances before the effects of previous activities are visible.\n", + " # You can configure the length of time based on your instance startup time or other application needs.\n", + " # ScaleInCooldown - The amount of time, in seconds, after a scale in activity completes before another scale in activity can start.\n", + " \"ScaleOutCooldown\": 300 # ScaleOutCooldown - The amount of time, in seconds, after a scale out activity completes before another scale out activity can start.\n", + " # 'DisableScaleIn': True|False - ndicates whether scale in by the target tracking policy is disabled.\n", + " # If the value is true , scale in is disabled and the target tracking policy won't remove capacity from the scalable resource.\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The endpoint is now ready for invocation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "--- \n", + "## 2. Using the Endpoint \n", + "\n", + "### 2.1 Uploading the Request Payload " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, you need to upload the request to Amazon S3. We define a function called, `upload_file`, to make it easier to make multiple invocations in a later step." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "\n", + "def upload_file(input_location):\n", + " prefix = f\"{bucket_prefix}/input\"\n", + " return sm_session.upload_data(\n", + " input_location,\n", + " bucket=sm_session.default_bucket(),\n", + " key_prefix=prefix,\n", + " extra_args={\"ContentType\": \"text/libsvm\"},\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "input_1_location = \"input/test_point_0.libsvm\"\n", + "input_1_s3_location = upload_file(input_1_location)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.1 Invoke Endpoint " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get inferences from the model hosted at your asynchronous endpoint with `InvokeEndpointAsync`. Specify the location of your inference data in the `InputLocation` field and the name of your endpoint for `EndpointName`. The response payload contains the output Amazon S3 location where the result will be placed. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = sm_runtime.invoke_endpoint_async(\n", + " EndpointName=endpoint_name, InputLocation=input_1_s3_location\n", + ")\n", + "output_location = response[\"OutputLocation\"]\n", + "print(f\"OutputLocation: {output_location}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.2 Check Output Location " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check the output location to see if the inference has been processed. We make multiple requests (beginning of the `while True` statement in the `get_output` function) every two seconds until there is an output of the inference request: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import urllib, time\n", + "from botocore.exceptions import ClientError\n", + "\n", + "\n", + "def get_output(output_location):\n", + " output_url = urllib.parse.urlparse(output_location)\n", + " bucket = output_url.netloc\n", + " key = output_url.path[1:]\n", + " while True:\n", + " try:\n", + " return sm_session.read_s3_file(bucket=output_url.netloc, key_prefix=output_url.path[1:])\n", + " except ClientError as e:\n", + " if e.response[\"Error\"][\"Code\"] == \"NoSuchKey\":\n", + " print(\"waiting for output...\")\n", + " time.sleep(2)\n", + " continue\n", + " raise" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "output = get_output(output_location)\n", + "print(f\"Output: {output}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.3 Multiple Invocations " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following shows how you can invoke the endpoint with multiple requests:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "inferences = []\n", + "for i in range(25):\n", + " input_file = f\"input/test_point_{i}.libsvm\"\n", + " input_file_s3_location = upload_file(input_file)\n", + " print(f\"Invoking Endpoint with {input_file}\")\n", + " response = sm_runtime.invoke_endpoint_async(\n", + " EndpointName=endpoint_name, InputLocation=input_file_s3_location\n", + " )\n", + " output_location = response[\"OutputLocation\"]\n", + " inferences += [(input_file, output_location)]\n", + " time.sleep(0.5)\n", + "\n", + "for input_file, output_location in inferences:\n", + " output = get_output(output_location)\n", + " print(f\"Input File: {input_file}, Output: {output}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3. Clean up " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you enabled auto-scaling for your endpoint, ensure you deregister the endpoint as a scalable target before deleting the endpoint. To do this, run the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "response = client.deregister_scalable_target(\n", + " ServiceNamespace='sagemaker',\n", + " ResourceId='resource_id',\n", + " ScalableDimension='sagemaker:variant:DesiredInstanceCount'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remember to delete your endpoint after use as you will be charged for the instances used in this Demo. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sm_client.delete_endpoint(EndpointName=endpoint_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You may also want to delete any other resources you might have created such as SNS topics, S3 objects, etc." + ] + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/async-inference/HuggingFace-Async-Inference-Walkthrough.ipynb b/async-inference/HuggingFace-Async-Inference-Walkthrough.ipynb new file mode 100644 index 0000000000..56e31e622a --- /dev/null +++ b/async-inference/HuggingFace-Async-Inference-Walkthrough.ipynb @@ -0,0 +1,498 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Amazon SageMaker Asynchronous Inference with Hugging Face Model\n", + "_**A new near real-time Inference option for generating machine learning model predictions**_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Table of Contents**\n", + "\n", + "* [Background](#background)\n", + "* [Notebook Scope](#scope)\n", + "* [Overview and sample end to end flow](#overview)\n", + "* [Section 1 - Setup](#setup) \n", + " * [Create Model](#createmodel)\n", + " * [Create EndpointConfig](#endpoint-config)\n", + " * [Create Endpoint](#create-endpoint)\n", + "* [Section 2 - Using the Endpoint](#endpoint) \n", + " * [Invoke Endpoint](#invoke-endpoint)\n", + " * [Check Output Location](#check-output) \n", + "* [Section 3 - Clean up](#clean)\n", + "\n", + "### Background \n", + "Amazon SageMaker Asynchronous Inference is a new capability in SageMaker that queues incoming requests and processes them asynchronously. SageMaker currently offers two inference options for customers to deploy machine learning models: 1) a real-time option for low-latency workloads 2) Batch transform, an offline option to process inference requests on batches of data available upfront. Real-time inference is suited for workloads with payload sizes of less than 6 MB and require inference requests to be processed within 60 seconds. Batch transform is suitable for offline inference on batches of data. \n", + "\n", + "Asynchronous inference is a new inference option for near real-time inference needs. Requests can take up to 15 minutes to process and have payload sizes of up to 1 GB. Asynchronous inference is suitable for workloads that do not have sub-second latency requirements and have relaxed latency requirements. For example, you might need to process an inference on a large image of several MBs within 5 minutes. In addition, asynchronous inference endpoints let you control costs by scaling down endpoints instance count to zero when they are idle, so you only pay when your endpoints are processing requests. \n", + "\n", + "### Notebook scope \n", + "This notebook provides an introduction on how to use the SageMaker Asynchronous inference capability with Hugging Face models. This notebook will cover the steps required to create an Asynchronous inference endpoint and test it with some sample requests. \n", + "\n", + "### Overview \n", + "Asynchronous inference endpoints have many similarities (and some key differences) compared to real-time endpoints. The process to create asynchronous endpoints is similar to real-time endpoints. You need to create: a model, an endpoint configuration, and then an endpoint. However, there are specific configuration parameters specific to asynchronous inference endpoints which we will explore below. \n", + "\n", + "Invocation of asynchronous endpoints differ from real-time endpoints. Rather than pass request payload inline with the request, you upload the payload to Amazon S3 and pass an Amazon S3 URI as a part of the request. Upon receiving the request, SageMaker provides you with a token with the output location where the result will be placed once processed. Internally, SageMaker maintains a queue with these requests and processes them. During endpoint creation, you can optionally specify an Amazon SNS topic to receive success or error notifications. Once you receive the notification that your inference request has been successfully processed, you can access the result in the output Amazon S3 location. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## 1. Setup " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we ensure we have an updated version of Sagemaker, which includes the latest SageMaker features:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Import the required python libraries:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!python -m pip install --upgrade pip --quiet\n", + "!pip install -U awscli --quiet\n", + "!pip install --upgrade sagemaker --quiet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from time import gmtime, strftime\n", + "from sagemaker import image_uris\n", + "import sagemaker\n", + "import logging\n", + "import boto3\n", + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "logger = logging.getLogger(\"__name__\")\n", + "logger.setLevel(logging.DEBUG)\n", + "logger.addHandler(logging.StreamHandler())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "logger.info(f\"Using SageMaker version: {sagemaker.__version__}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "region = sagemaker.Session().boto_region_name\n", + "role = sagemaker.get_execution_role()\n", + "boto3.setup_default_session(region_name=region)\n", + "boto_session = boto3.Session(region_name=region)\n", + "sm_session = sagemaker.session.Session()\n", + "sagemaker_client = boto_session.client(\"sagemaker\")\n", + "sm_runtime = boto_session.client(\"sagemaker-runtime\")\n", + "s3_bucket = sm_session.default_bucket()\n", + "current_timestamp = strftime(\"%m-%d-%H-%M\", gmtime())\n", + "logger.info(f\"Region = {region}\")\n", + "logger.info(f\"Role = {role}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify your IAM role. Go the AWS IAM console (https://console.aws.amazon.com/iam/home) and add the following policies to your IAM Role:\n", + "* SageMakerFullAccessPolicy\n", + "* Amazon S3 access: Apply this to get and put objects in your Amazon S3 bucket. Replace `bucket_name` with the name of your Amazon S3 bucket: \n", + "\n", + "```json\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Action\": [\n", + " \"s3:GetObject\",\n", + " \"s3:PutObject\",\n", + " \"s3:AbortMultipartUpload\",\n", + " \"s3:ListBucket\"\n", + " ],\n", + " \"Effect\": \"Allow\",\n", + " \"Resource\": \"arn:aws:s3:::/*\"\n", + " }\n", + " ]\n", + "}\n", + "```\n", + "\n", + "* (Optional) Amazon SNS access: Add `sns:Publish` on the topics you define. Apply this if you plan to use Amazon SNS to receive notifications.\n", + "\n", + "```json\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Action\": [\n", + " \"sns:Publish\"\n", + " ],\n", + " \"Effect\": \"Allow\",\n", + " \"Resource\": \"arn:aws:sns:us-east-2:123456789012:MyTopic\"\n", + " }\n", + " ]\n", + "}\n", + "```\n", + "\n", + "* (Optional) KMS decrypt, encrypt if your Amazon S3 bucket is encrypted." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify your SageMaker IAM Role (`role`) and Amazon S3 bucket . You can optionally use a default SageMaker Session IAM Role and Amazon S3 bucket. Make sure the role you use has the necessary permissions for SageMaker, Amazon S3, and optionally Amazon SNS." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.1 Create Model \n", + "Specify the location of the pre-trained model stored in Amazon S3. This example uses a pre-trained Hugging Face model name (https://huggingface.co/finiteautomata/beto-sentiment-analysis) sentimentanalysis.tar.gz. The full Amazon S3 URI is stored in a string variable `MODEL_DATA_URL`. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "MODEL_DATA_URL = \"s3://asyncendpointexperiment/sentimentanalysis.tar.gz\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify a primary container. For the primary container, you specify the Docker image that contains inference code, artifacts (from prior training), and a custom environment map that the inference code uses when you deploy the model for predictions. In this example, we retrieve the appropriate container image by specifying the right framework version and framework details. Here in this case we are downloading container image associated with Hugging Face framework. For further details on right container images to use for your use case please refer to this link https://github.com/awsdocs/amazon-sagemaker-developer-guide/blob/master/doc_source/ and look in to appropriate ecr folder pertaining to the region of your interest" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ecr_image = image_uris.retrieve(\n", + " framework=\"huggingface\",\n", + " region=region,\n", + " version=\"4.6.1\",\n", + " image_scope=\"inference\",\n", + " base_framework_version=\"pytorch1.7.1\",\n", + " py_version=\"py36\",\n", + " container_version=\"ubuntu18.04\",\n", + " instance_type=\"ml.m5.xlarge\",\n", + ")\n", + "ecr_image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model_name = f\"beto-sentiment-analysis-async\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a model by specifying the `ModelName`, the `ExecutionRoleARN` (the ARN of the IAM role that Amazon SageMaker can assume to access model artifacts/ docker images for deployment), and the `PrimaryContainer`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = sagemaker_client.create_model(\n", + " ModelName=model_name,\n", + " ExecutionRoleArn=role,\n", + " PrimaryContainer={\n", + " \"Image\": ecr_image,\n", + " \"ModelDataUrl\": MODEL_DATA_URL,\n", + " \"Environment\": {\n", + " \"HF_MODEL_ID\": \"finiteautomata/beto-sentiment-analysis\",\n", + " \"HF_TASK\": \"text-classification\",\n", + " \"SAGEMAKER_CONTAINER_LOG_LEVEL\": \"20\",\n", + " \"SAGEMAKER_REGION\": region,\n", + " },\n", + " },\n", + ")\n", + "model_arn = response[\"ModelArn\"]\n", + "\n", + "logger.info(f\"Created Model: {model_arn}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "endpoint_config_name = model_name" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.2 Create EndpointConfig " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once you have a model, create an endpoint configuration with CreateEndpointConfig. Amazon SageMaker hosting services uses this configuration to deploy models. In the configuration, you identify one or more models that were created using with CreateModel API, to deploy the resources that you want Amazon SageMaker to provision. Specify the AsyncInferenceConfig object and provide an output Amazon S3 location for OutputConfig. You can optionally specify Amazon SNS topics on which to send notifications about prediction results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = sagemaker_client.create_endpoint_config(\n", + " EndpointConfigName=endpoint_config_name,\n", + " ProductionVariants=[\n", + " {\n", + " \"VariantName\": \"variant-1\",\n", + " \"ModelName\": model_name,\n", + " \"InstanceType\": \"ml.m5.xlarge\",\n", + " \"InitialInstanceCount\": 1,\n", + " }\n", + " ],\n", + " AsyncInferenceConfig={\n", + " \"OutputConfig\": {\n", + " \"S3OutputPath\": f\"s3://{s3_bucket}/output\",\n", + " # Optionally specify Amazon SNS topics\n", + " # \"NotificationConfig\": {\n", + " # \"SuccessTopic\": \"arn:aws:sns:us-east-2:123456789012:MyTopic\",\n", + " # \"ErrorTopic\": \"arn:aws:sns:us-east-2:123456789012:MyTopic\",\n", + " # }\n", + " },\n", + " },\n", + ")\n", + "endpoint_config_arn = response[\"EndpointConfigArn\"]\n", + "logger.info(f\"Created EndpointConfig: {endpoint_config_arn}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.3 Create Endpoint " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once you have your model and endpoint configuration, use the CreateEndpoint API to create your endpoint. The endpoint name must be unique within an AWS Region in your AWS account." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "endpoint_name = model_name\n", + "response = sagemaker_client.create_endpoint(\n", + " EndpointName=\"HuggingFaceAsyncEndpoint\", EndpointConfigName=\"beto-sentiment-analysis-async\"\n", + ")\n", + "endpoint_arn = response[\"EndpointArn\"]\n", + "logger.info(f\"Created Endpoint: {endpoint_arn}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "--- \n", + "## 2. Using the Endpoint \n", + "\n", + "### 2.1 Uploading the Request Payload " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sample input.json placed in the input location\n", + "\n", + "{\"inputs\": [\"I like you. I love you\",\"This is sad\",\"am so happy that i want to cry\",\"async endpoints are awesome\"]}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "input_s3_location = f\"s3://{s3_bucket}/input/input.json\"\n", + "print(input_s3_location)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.1 Invoke Endpoint " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get inferences from the model hosted at your asynchronous endpoint with InvokeEndpointAsync. Specify the location of your inference data in the InputLocation field and the name of your endpoint for EndpointName. The response payload contains the output Amazon S3 location where the result will be placed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = sm_runtime.invoke_endpoint_async(\n", + " EndpointName=\"HuggingFaceAsyncEndpoint\",\n", + " InputLocation=input_s3_location,\n", + " ContentType=\"application/json\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.2 Check Output Location " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check the output location to see if the inference has been processed." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sample inference output processed and placed in the output location\n", + "\n", + "[{\"label\":\"POS\",\"score\":0.9982852339744568},{\"label\":\"NEG\",\"score\":0.9333241581916809},{\"label\":\"POS\",\"score\":0.595783531665802},{\"label\":\"NEU\",\"score\":0.9964613318443298}]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3. Summary & Clean up " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To Summarize, In this notebook we learned how to use the SageMaker Asynchronous inference capability with pre-trained Hugging Face models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you enabled auto-scaling for your endpoint, ensure you deregister the endpoint as a scalable target before deleting the endpoint. To do this, run the following:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = client.deregister_scalable_target(\n", + " ServiceNamespace=\"sagemaker\",\n", + " ResourceId=\"resource_id\",\n", + " ScalableDimension=\"sagemaker:variant:DesiredInstanceCount\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remember to delete your endpoint after use as you will be charged for the instances used in this Demo. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You may also want to delete any other resources you might have created such as SNS topics, S3 objects, etc." + ] + } + ], + "metadata": { + "instance_type": "ml.g4dn.xlarge", + "kernelspec": { + "display_name": "Python 3 (PyTorch 1.6 Python 3.6 GPU Optimized)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:eu-west-1:470317259841:image/pytorch-1.6-gpu-py36-cu110-ubuntu18.04-v3" + }, + "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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/async-inference/images/e2e.png b/async-inference/images/e2e.png new file mode 100644 index 0000000000..8cf8b7bc30 Binary files /dev/null and b/async-inference/images/e2e.png differ diff --git a/autopilot/custom-feature-selection/Feature_selection_autopilot.ipynb b/autopilot/custom-feature-selection/Feature_selection_autopilot.ipynb index 88a303e4b8..45aa1b4801 100644 --- a/autopilot/custom-feature-selection/Feature_selection_autopilot.ipynb +++ b/autopilot/custom-feature-selection/Feature_selection_autopilot.ipynb @@ -49,16 +49,16 @@ }, "outputs": [], "source": [ - "# S3 prefix\n", - "bucket = \"qqnl-autopilot\"\n", - "prefix = \"reuse-autopilot-blog\"\n", - "\n", "import sagemaker\n", "import os\n", "from sagemaker import get_execution_role\n", "\n", "sagemaker_session = sagemaker.Session()\n", "\n", + "# S3 prefix\n", + "bucket = sagemaker_session.default_bucket()\n", + "prefix = \"reuse-autopilot-blog\"\n", + "\n", "# Get a SageMaker-compatible role used by this Notebook Instance.\n", "role = get_execution_role()" ] @@ -176,11 +176,11 @@ "\n", "import argparse\n", "import csv\n", + "import joblib\n", "import json\n", "import numpy as np\n", "import pandas as pd\n", "\n", - "from sklearn.externals import joblib\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.svm import SVR\n", @@ -319,7 +319,7 @@ "\n", "* __entry_point__: The path to the Python script SageMaker runs for training and prediction.\n", "* __role__: Role ARN\n", - "* __train_instance_type__ *(optional)*: The type of SageMaker instances for training. __Note__: Because Scikit-learn does not natively support GPU training, Sagemaker Scikit-learn does not currently support training on GPU instance types.\n", + "* __instance_type__ *(optional)*: The type of SageMaker instances for training. __Note__: Because Scikit-learn does not natively support GPU training, Sagemaker Scikit-learn does not currently support training on GPU instance types.\n", "* __sagemaker_session__ *(optional)*: The session used to train on Sagemaker.\n", "\n", "To see the code for the SKLearn Estimator, see here: https://github.com/aws/sagemaker-python-sdk/tree/master/src/sagemaker/sklearn" @@ -342,8 +342,10 @@ " entry_point=script_path,\n", " role=role,\n", " output_path=model_output_path,\n", - " train_instance_type=\"ml.c4.xlarge\",\n", + " instance_type=\"ml.c4.xlarge\",\n", " sagemaker_session=None,\n", + " framework_version=\"0.23-1\",\n", + " py_version=\"py3\",\n", ")\n", "\n", "sklearn_preprocessor.fit({\"train\": train_input})" @@ -387,7 +389,7 @@ "metadata": {}, "outputs": [], "source": [ - "from sklearn.externals import joblib\n", + "import joblib\n", "\n", "feature_list = list(joblib.load(\"selected_feature_names.joblib\"))\n", "print(feature_list)" @@ -692,7 +694,7 @@ "pipeline_endpoint_config_name = \"pipeline-blog-endpoint-config-\" + time_stamp\n", "pipeline_endpoint_name = \"pipeline-blog-endpoint-\" + time_stamp\n", "\n", - "sklearn_image = sklearn_preprocessor.image_name\n", + "sklearn_image = sklearn_preprocessor.image_uri\n", "container_1_source = sklearn_preprocessor.latest_training_job.describe()[\"HyperParameters\"][\n", " \"sagemaker_submit_directory\"\n", "][1:-1]\n", @@ -795,19 +797,18 @@ "metadata": {}, "outputs": [], "source": [ - "from sagemaker.predictor import RealTimePredictor, csv_serializer\n", - "from sagemaker.content_types import CONTENT_TYPE_CSV\n", + "from sagemaker.predictor import Predictor\n", + "from sagemaker.serializers import IdentitySerializer\n", + "from sagemaker.deserializers import CSVDeserializer\n", "\n", - "predictor = RealTimePredictor(\n", - " endpoint=pipeline_endpoint_name,\n", - " serializer=csv_serializer,\n", + "predictor = Predictor(\n", + " endpoint_name=pipeline_endpoint_name,\n", " sagemaker_session=sagemaker_session,\n", - " content_type=CONTENT_TYPE_CSV,\n", - " accept=CONTENT_TYPE_CSV,\n", + " serializer=IdentitySerializer(content_type=\"text/csv\"),\n", + " deserializer=CSVDeserializer(),\n", ")\n", "\n", - "predictor.content_type = \"text/csv\"\n", - "predictor.predict(test_data.to_csv(sep=\",\", header=True, index=False)).decode(\"utf-8\")" + "predictor.predict(test_data.to_csv(sep=\",\", header=True, index=False))" ] }, { @@ -827,13 +828,6 @@ "sm_client = sagemaker_session.boto_session.client(\"sagemaker\")\n", "sm_client.delete_endpoint(EndpointName=pipeline_endpoint_name)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -853,7 +847,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/autopilot/custom-feature-selection/sklearn_feature_selection.py b/autopilot/custom-feature-selection/sklearn_feature_selection.py index e63633f754..3954fb2022 100644 --- a/autopilot/custom-feature-selection/sklearn_feature_selection.py +++ b/autopilot/custom-feature-selection/sklearn_feature_selection.py @@ -2,6 +2,7 @@ import argparse import csv +import joblib import json import os import shutil @@ -19,7 +20,6 @@ transformer, worker, ) -from sklearn.externals import joblib from sklearn.feature_selection import RFE, SelectKBest, f_regression, mutual_info_regression from sklearn.impute import SimpleImputer from sklearn.pipeline import Pipeline diff --git a/aws_marketplace/README.md b/aws_marketplace/README.md index 4b67dea7c1..c2c327ce08 100644 --- a/aws_marketplace/README.md +++ b/aws_marketplace/README.md @@ -40,6 +40,8 @@ These examples show you how to use model-packages and algorithms from AWS Market - [Using Dataset Products](using_data) - [Using dataset from AWS Data Exchange with ML model from AWS Marketplace](using_data/using_data_with_ml_model) is a sample notebook which shows how a dataset from AWS Data Exchange can be used with an ML Model Package from AWS Marketplace. + - [Using Shutterstock Image Datasets to train Image Classification Models](using_data/image_classification_with_shutterstock_image_datasets) provides a detailed walkthrough on how to use the [Free Sample: Images & Metadata of “Whole Foods” Shoppers](https://aws.amazon.com/marketplace/pp/prodview-y6xuddt42fmbu?qid=1623195111604&sr=0-1&ref_=srh_res_product_title#offers) from Shutterstock's Image Datasets to train a multi-label image classification model using Shutterstock's pre-labeled image assets. You can learn more about this implementation [from this blog post](https://aws.amazon.com/blogs/awsmarketplace/using-shutterstocks-image-datasets-to-train-your-computer-vision-models/). + ## FAQ *What do I need in order to get started?* diff --git a/aws_marketplace/index.rst b/aws_marketplace/index.rst index 383aeb5270..7b5c0475a0 100644 --- a/aws_marketplace/index.rst +++ b/aws_marketplace/index.rst @@ -38,7 +38,7 @@ Use AWS Data Exchange products .. toctree:: :maxdepth: 0 - using_data/using_data_with_ml_model/using-dataset-product-from-aws-data-exchange-with-ml-model-from-aws-marketplace + using_data/image_classification_with_shutterstock_image_datasets/image-classification-with-shutterstock-datasets Use AWS Marketplace algorithms diff --git a/aws_marketplace/using_algorithms/autogluon/autogluon_tabular_marketplace.ipynb b/aws_marketplace/using_algorithms/autogluon/autogluon_tabular_marketplace.ipynb index 67bc1c3d81..7181491f84 100644 --- a/aws_marketplace/using_algorithms/autogluon/autogluon_tabular_marketplace.ipynb +++ b/aws_marketplace/using_algorithms/autogluon/autogluon_tabular_marketplace.ipynb @@ -105,26 +105,16 @@ "algorithm_arn = AlgorithmArnProvider.get_algorithm_arn(region)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import subprocess\n", - "\n", - "subprocess.run(\"apt-get update -y\", shell=True)\n", - "subprocess.run(\"apt install unzip\", shell=True)" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 3: Get the data\n", "\n", - "In this example we'll use the direct-marketing dataset to build a binary classification model that predicts whether customers will accept or decline a marketing offer. \n", - "First we'll download the data and split it into train and test sets. AutoGluon does not require a separate validation set (it uses bagged k-fold cross-validation)." + "In this example we'll use the [1] [UCI Machine Learning Repository: Adult Data Set](https://archive.ics.uci.edu/ml/datasets/adult) to build a binary classification model that predicts whether customers will accept or decline a marketing offer. \n", + "First we'll download the data and split it into train and test sets. AutoGluon does not require a separate validation set (it uses bagged k-fold cross-validation).\n", + "\n", + "[1] Dua, D. and Graff, C. (2019). [UCI Machine Learning Repository](http://archive.ics.uci.edu/ml). Irvine, CA: University of California, School of Information and Computer Science." ] }, { @@ -133,23 +123,17 @@ "metadata": {}, "outputs": [], "source": [ - "# Download and unzip the data\n", - "subprocess.run(\n", - " f\"aws s3 cp --region {region} s3://sagemaker-sample-data-{region}/autopilot/direct_marketing/bank-additional.zip .\",\n", - " shell=True,\n", - ")\n", - "subprocess.run(\"unzip -qq -o bank-additional.zip\", shell=True)\n", - "subprocess.run(\"rm bank-additional.zip\", shell=True)\n", - "\n", - "local_data_path = \"./bank-additional/bank-additional-full.csv\"\n", - "data = pd.read_csv(local_data_path)\n", + "# Download the data\n", + "s3 = boto3.client(\"s3\")\n", + "s3.download_file(\"autogluon\", \"datasets/Inc/train.csv\", \"train.csv\")\n", + "s3.download_file(\"autogluon\", \"datasets/Inc/test.csv\", \"test.csv\")\n", "\n", "# Split train/test data\n", - "train = data.sample(frac=0.7, random_state=42)\n", - "test = data.drop(train.index)\n", + "train = pd.read_csv('train.csv')\n", + "test = pd.read_csv('test.csv')\n", "\n", "# Split test X/y\n", - "label = \"y\"\n", + "label = \"class\"\n", "y_test = test[label]\n", "X_test = test.drop(columns=[label])" ] @@ -220,7 +204,7 @@ "outputs": [], "source": [ "# Define required label and optional additional parameters\n", - "init_args = {\"label\": \"y\"}\n", + "init_args = {\"label\": \"class\"}\n", "\n", "# Define additional parameters\n", "fit_args = {\n", @@ -434,7 +418,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/aws_marketplace/using_data/image_classification_with_shutterstock_image_datasets/README.md b/aws_marketplace/using_data/image_classification_with_shutterstock_image_datasets/README.md new file mode 100644 index 0000000000..451b073693 --- /dev/null +++ b/aws_marketplace/using_data/image_classification_with_shutterstock_image_datasets/README.md @@ -0,0 +1,25 @@ +## Using Shutterstock's image datasets to train a multi-label image classification model + +Welcome! This directory contains the Amazon SageMaker notebook code used in the blog post [**Using Shutterstock's image datasets to train your computer vision models**](https://aws.amazon.com/blogs/awsmarketplace/using-shutterstocks-image-datasets-to-train-your-computer-vision-models/). + + +For this example, we use the Free Sample: Images & Metadata of “Whole Foods” Shoppers dataset from Shutterstock’s Image Datasets to demonstrate how to train a multi-label image classification model using Shutterstock’s prelabeled image assets. This dataset can be found in the [AWS Data Exchange](https://aws.amazon.com/data-exchange/) and contains images of Whole Foods shoppers. Each image is tagged with 7-50 keywords describing what is seen in the image. + + +You can get started using this notebook by following the steps outlined in [**Using Shutterstock's image datasets to train your computer vision models**](https://aws.amazon.com/blogs/awsmarketplace/using-shutterstocks-image-datasets-to-train-your-computer-vision-models/).. + +At a high level, setup involves these 4 steps: + +1. Subscribe to the [Free Sample: Images & Metadata of “Whole Foods” Shoppers dataset](https://aws.amazon.com/marketplace/pp/prodview-y6xuddt42fmbu?sr=0-1&ref_=beagle&applicationId=AWSMPContessa) from Shutterstock’s Image Datasets. Export this dataset to an S3 bucket. +2. Create an Amazon SageMaker Notebook instance by navigating to the [Amazon SageMaker console](https://console.aws.amazon.com/sagemaker/home), choosing **Notebook instances** from *Notebook* section, and selecting **Create notebook**. For the development of this notebook, we used an `ml.t2.medium`. Make sure the SageMaker role has access to your Shutterstock Image Dataset S3 bucket. Note that charges apply. +3. Once your notebook instance is ready, click **Open Jupyter** and navigate to the **Sagemaker Examples** tab. Scroll down to find the **AWS Marketplace** section and select it to expand and view the notebooks available. +4. Locate the notebook named `image-classification-with-shutterstock-datasets.ipynb`, select **Use**, and then select **Create copy** to copy the notebook into your environment. +5. Locate the `TO DO` items to fill in the name of the S3 bucket that is being used to store your image datasets. Also be sure to enter any prefixes (if applicable) that the images are stored under. +6. Walk through the notebook step-by-step and select **Run** to run each cell of code. + +## License + +This library is licensed under the MIT-0 License. See the LICENSE file. + +By subscribing to the dataset [Free Sample: Images & Metadata of "Whole Foods" Shoppers](https://aws.amazon.com/marketplace/pp/prodview-y6xuddt42fmbu?sr=0-1&ref_=beagle&applicationId=AWSMPContessa), you are also subject to the terms defined under in the dataset's [Usage information](https://aws.amazon.com/marketplace/pp/prodview-y6xuddt42fmbu?ref_=srh_res_product_title#usage). + diff --git a/aws_marketplace/using_data/image_classification_with_shutterstock_image_datasets/image-classification-with-shutterstock-datasets.ipynb b/aws_marketplace/using_data/image_classification_with_shutterstock_image_datasets/image-classification-with-shutterstock-datasets.ipynb new file mode 100644 index 0000000000..5aaa01fb43 --- /dev/null +++ b/aws_marketplace/using_data/image_classification_with_shutterstock_image_datasets/image-classification-with-shutterstock-datasets.ipynb @@ -0,0 +1,532 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Using Shutterstock's Image datasets to train a multi-label image classification model" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# Introduction\n", + "\n", + "This example of **multi-label image classification** trains the **Amazon SageMaker 1P image classification algorithm**. We will use the Amazon SageMaker image classification algorithm in transfer learning mode to fine-tune a pre-trained model (trained on ImageNet data) to learn to classify a new multi-label dataset. The pre-trained model will be fine-tuned using the [Free Sample: Images & Metadata of “Whole Foods” Shoppers dataset from Shutterstock’s Image Datasets](https://aws.amazon.com/marketplace/pp/prodview-y6xuddt42fmbu?ref_=srh_res_product_title). \n", + "\n", + "You can learn more about this implementation from [**Using Shutterstock's image datasets to train your computer vision models**](https://aws.amazon.com/blogs/awsmarketplace/using-shutterstocks-image-datasets-to-train-your-computer-vision-models/).\n", + "\n", + "To get started, we need to set up the environment with a few prerequisite steps, for permissions, configurations, and so on.\n", + "\n", + "Note: This notebook is a modification of the existing [SageMaker example notebook for multi-label image classification](https://github.com/aws/amazon-sagemaker-examples/blob/master/introduction_to_amazon_algorithms/imageclassification_mscoco_multi_label/Image-classification-multilabel-lst.ipynb)." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Prerequisites\n", + "\n", + "### Step 1: Set permissions and environment variables\n", + "\n", + "Here we set up the pointers and authentication to AWS services. There are three parts to this:\n", + "\n", + "* The roles used to give learning and hosting access to your data. This will automatically be obtained from the role used to start the notebook\n", + "* The S3 bucket that you want to use for SageMaker training and model data\n", + "* The S3 bucket that is storing the images from the Shutterstock Image Dataset for Whole Foods Shoppers\n", + "* The SageMaker image classification docker image (which we will not need to change)\n", + "\n", + "**FILL IN YOUR S3 BUCKET NAME:** For our `images_bucket` variable, replace `` with the name of the S3 bucket that contains your Shutterstock Image Dataset. If you stored your images under a prefix, please also update the `images_bucket_prefix` variable with this prefix." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "import boto3\n", + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "from sagemaker.amazon.amazon_estimator import get_image_uri\n", + "\n", + "# SageMaker notebook execution role\n", + "role = get_execution_role()\n", + "print(\"Sagemaker Execution Role: {}\".format(role))\n", + "\n", + "# SageMaker S3 Bucket for training and model data\n", + "sagemaker_bucket = sagemaker.Session().default_bucket()\n", + "sagemaker_bucket_prefix = \"wholefoods-ic-multilabel\"\n", + "print(\"Using S3 Bucket for SageMaker training and model data: {}\".format(sagemaker_bucket))\n", + "\n", + "# SageMaker Training image for image classification\n", + "training_image = sagemaker.image_uris.retrieve(\n", + " region=sagemaker.Session().boto_region_name, framework=\"image-classification\", version=\"latest\"\n", + ")\n", + "print(\"Using Training Image: {}\".format(training_image))\n", + "\n", + "\n", + "images_adx_directory = \"adx_free_data_sample/wholefoods/\"\n", + "\n", + "# TO DO: enter the name of the S3 bucket that contains your Shutterstock Image Dataset\n", + "images_bucket = \"\"\n", + "\n", + "# TO DO: enter the prefix (if applicable) where your images are stored, if you stored them under an additional prefix\n", + "images_bucket_prefix = \"\"\n", + "\n", + "print(\"Using S3 Bucket with Training Images: {}\".format(images_bucket))\n", + "\n", + "# Pointer to image metadata file\n", + "image_metadata_filename = \"AWS_Wholefood Shoppers_ Metadata.csv\"" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Data Preparation\n", + "\n", + "The Shutterstock Image Datasets are collections of curated images from Shutterstock’s library of more than 370 million images. You can subscribe to one of the preexisting collections, such as Food & Beverage, Clothing, or Hospitality, or you can work with the Shutterstock Data Exchange team to request a custom collection of images for your use case. Each image includes a descriptive title with up to 200 characters and an optimal 7-50 keywords. \n", + "\n", + "For this example, we use the [Free Sample: Images & Metadata of “Whole Foods” Shoppers dataset from Shutterstock’s Image Datasets](https://aws.amazon.com/marketplace/pp/prodview-y6xuddt42fmbu?ref_=srh_res_product_title) to demonstrate how to train a multi-label image classification model using Shutterstock’s pre-labeled image assets. This dataset contains images of Whole Foods shoppers. Each image is tagged with 30-50 keywords describing what is seen in the image.\n", + "\n", + "An image can contain objects of multiple keywords. Because the purpose of this notebook is to show how the Shutterstock dataset can be used to train for multi-label image classification, we will limit the keywords that we are training on for demonstration purposes. We have a limited set of 200 images in our free sample.\n", + "\n", + "To start, we will train the model to learn to classify the first 5 keywords that appear in our dataset.\n", + "\n", + "1. Adult\n", + "2. Beautiful\n", + "3. Buying\n", + "4. Car\n", + "5. Casual\n", + "\n", + "\n", + "The image classification algorithm can take two types of input formats. The first is a [recordIO file format](https://mxnet.apache.org/versions/1.7.0/api/faq/recordio) and the other is an LST file format. We will use the LST file format for training. " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Step 2: Parse the metadata .csv file to create a .lst file for training\n", + "A .lst file is a tab-separated file with three columns that contains a list of image files. The first column specifies the image index, the second column specifies the class label index for the image, and the third column specifies the relative path of the image file. The image index in the first column should be unique across all the images. \n", + "\n", + "The Whole Foods Shoppers dataset comes with a metadata file in CSV format. We will use this to generate our .lst file. This CSV metadata file has the following headers in the first row: 'ASSET_ID' | 'COLLECTION' |'KEYWORDS' | 'DESCRIPTION'. \n", + "\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "import numpy as np\n", + "import csv\n", + "\n", + "origin_file = images_bucket_prefix + image_metadata_filename\n", + "destination_file = \"./%s\" % image_metadata_filename\n", + "\n", + "s3 = boto3.resource(\"s3\")\n", + "s3.Bucket(images_bucket).download_file(origin_file, destination_file)\n", + "\n", + "# Create a dictionary (key: keyword, value: list of associated images IDs)\n", + "keyword_images = {}\n", + "\n", + "# convert the metadata CSV file into a nested list\n", + "with open(destination_file, \"r\", encoding=\"UTF-8\", newline=\"\") as f:\n", + " reader = csv.reader(f)\n", + " data = list(reader)\n", + "\n", + " # CSV header in Row 1 should be ['ASSET_ID, 'COLLECTION', 'KEYWORDS', 'DESCRIPTION']\n", + " print(\"Data Columns: {}\".format(data[0]))\n", + "\n", + " # Remove header row\n", + " data.pop(0)\n", + "\n", + " # Map the keywords to the associated image IDs\n", + " for row in data:\n", + " image_id = row[0]\n", + " image_keywords = row[2].split(\",\")\n", + "\n", + " for word in image_keywords:\n", + " if word not in keyword_images:\n", + " keyword_images[word] = []\n", + " keyword_images[word].append(image_id)\n", + "\n", + "\n", + "# Train for the first 5 keywords\n", + "num_training_keywords = 5\n", + "training_keywords = list(keyword_images.keys())[0:num_training_keywords]\n", + "\n", + "print(\"Training for the following Keywords: {}\".format(training_keywords))\n", + "\n", + "# obtain image ids and labels for images with these 5 keywords\n", + "image_ids = []\n", + "labels = []\n", + "\n", + "for index, key in enumerate(training_keywords):\n", + " for image_id in keyword_images[key]:\n", + " if image_id in image_ids:\n", + " labels[image_ids.index(image_id)][index] = 1\n", + " else:\n", + " image_ids.append(image_id)\n", + " labels.append(np.zeros(len(training_keywords), dtype=np.int))\n", + " labels[-1][index] = 1\n", + "\n", + "# Construct the LST file from the image ids and labels\n", + "# The first column is the image index, the last is the image filename\n", + "# and the second to last but one are the labels\n", + "with open(\"image.lst\", \"w\") as fp:\n", + " sum_labels = labels[0]\n", + " for ind, image_id in enumerate(image_ids):\n", + " image_path = \"{}.jpg\".format(image_id)\n", + " label_h = labels[ind]\n", + " sum_labels += label_h\n", + " fp.write(str(ind) + \"\\t\")\n", + " for j in label_h:\n", + " fp.write(str(j) + \"\\t\")\n", + " fp.write(image_path)\n", + " fp.write(\"\\n\")\n", + " fp.close()\n", + "print(sum_labels)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "training_keywords" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Step 3: Create the training and validation datasets\n", + "Create training and validation set by splitting the LST file. Limit images to the top 150 images. Use 70% of the images for training and 30% of the images for validation." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "!shuf -n 150 image.lst > im.lst\n", + "!head -n 105 im.lst > sstkimagestrain.lst\n", + "!tail -n 45 im.lst > sstkimagesval.lst\n", + "!head sstkimagestrain.lst\n", + "!wc -l sstkimagestrain.lst\n", + "!wc -l sstkimagesval.lst" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Step 4: Copy the training data to your SageMaker S3 Bucket\n", + "Upload the data into the SageMaker S3 bucket. The images are uploaded under the train and validation prefixes. The LST files are uploaded under train_lst and validation_lst prefixes. " + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Four channels: train, validation, train_lst, and validation_lst\n", + "s3_train = \"s3://{}/{}/train/\".format(sagemaker_bucket, sagemaker_bucket_prefix)\n", + "s3_validation = \"s3://{}/{}/validation/\".format(sagemaker_bucket, sagemaker_bucket_prefix)\n", + "s3_train_lst = \"s3://{}/{}/train_lst/\".format(sagemaker_bucket, sagemaker_bucket_prefix)\n", + "s3_validation_lst = \"s3://{}/{}/validation_lst/\".format(sagemaker_bucket, sagemaker_bucket_prefix)\n", + "\n", + "\n", + "s3_img_source = \"s3://{}/{}{}\".format(images_bucket, images_bucket_prefix, images_adx_directory)\n", + "\n", + "\n", + "# upload the image files to train and validation channels\n", + "!aws s3 sync $s3_img_source $s3_train\n", + "!aws s3 sync $s3_img_source $s3_validation\n", + "\n", + "# upload the LST files to train_lst and validation_lst channels\n", + "!aws s3 cp sstkimagestrain.lst $s3_train_lst --quiet\n", + "!aws s3 cp sstkimagesval.lst $s3_validation_lst --quiet" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Training our Multi-Label Image Classification Model\n", + "Now that we have prepared our training data, we are ready to train our image classification model. First, we will create a SageMaker Estimator object. This estimator will launch the training job.\n", + "\n", + "### Step 5: Set the training parameters\n", + "There are two kinds of parameters that need to be set for training. The first are the parameters for the training job. These include:\n", + "\n", + "* **Training instance count**: This is the number of instances on which to run the training. When the number of instances is greater than one, then the image classification algorithm will run in distributed settings. \n", + "* **Training instance type**: This indicates the type of machine on which to run the training. Here, we will use ml.p2.xlarge.\n", + "* **Output path**: This the S3 folder in which the training output is stored" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "s3_output_location = \"s3://{}/{}/output\".format(sagemaker_bucket, sagemaker_bucket_prefix)\n", + "multilabel_ic = sagemaker.estimator.Estimator(\n", + " training_image,\n", + " role,\n", + " instance_count=1,\n", + " instance_type=\"ml.p2.xlarge\",\n", + " volume_size=50,\n", + " max_run=360000,\n", + " input_mode=\"File\",\n", + " output_path=s3_output_location,\n", + " sagemaker_session=sagemaker.Session(),\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Step 6: Set the algorithm parameters\n", + "\n", + "Apart from the above set of parameters, there are hyperparameters that are specific to the algorithm. These are:\n", + "\n", + "* **num_layers**: The number of layers (depth) for the network.\n", + "* **use_pretrained_model**: Set to 1 to use pretrained model for transfer learning.\n", + "* **image_shape**: The input image dimensions,'num_channels, height, width', for the network. It should be no larger than the actual image size. The number of channels should be same as the actual image.\n", + "* **num_classes**: This is the number of output classes for the dataset.\n", + "* **mini_batch_size**: The number of training samples used for each mini batch. In distributed training, the number of training samples used per batch will be N * mini_batch_size where N is the number of hosts on which training is run\n", + "* **resize**: Resize the image before using it for training. The images are resized so that the shortest side is of this parameter. If the parameter is not set, then the training data is used as such without resizing.\n", + "* **epochs**: Number of training epochs\n", + "* **learning_rate**: Learning rate for training\n", + "* **num_training_samples**: This is the total number of training samples. \n", + "* **use_weighted_loss**: This parameter is used to balance the influence of the positive and negative samples within the dataset.\n", + "* **augmentation_type**: This parameter determines the type of augmentation used for training. It can take on three values, 'crop', 'crop_color' and 'crop_color_transform'\n", + "* **precision_dtype**: The data type precision used during training. Using ``float16`` can lead to faster training with minimal drop in accuracy, particularly on P3 machines. By default, the parameter is set to ``float32``\n", + "* **multi_label**: Set multi_label to 1 for multi-label processing\n", + "\n", + "You can find a detailed description of all the algorithm parameters at https://docs.aws.amazon.com/sagemaker/latest/dg/IC-Hyperparameter.html" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "multilabel_ic.set_hyperparameters(\n", + " num_layers=18,\n", + " use_pretrained_model=1,\n", + " image_shape=\"3,224,224\",\n", + " num_classes=5,\n", + " mini_batch_size=25,\n", + " resize=256,\n", + " epochs=5,\n", + " learning_rate=0.001,\n", + " num_training_samples=100,\n", + " use_weighted_loss=1,\n", + " augmentation_type=\"crop_color_transform\",\n", + " precision_dtype=\"float32\",\n", + " multi_label=1,\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Step 7: Specify the input data \n", + "Set the data type and channels used for training. In this training, we use application/x-image content type that require individual images and LST file for data input. " + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "train_data = sagemaker.inputs.TrainingInput(\n", + " s3_train,\n", + " distribution=\"FullyReplicated\",\n", + " content_type=\"application/x-image\",\n", + " s3_data_type=\"S3Prefix\",\n", + ")\n", + "validation_data = sagemaker.inputs.TrainingInput(\n", + " s3_validation,\n", + " distribution=\"FullyReplicated\",\n", + " content_type=\"application/x-image\",\n", + " s3_data_type=\"S3Prefix\",\n", + ")\n", + "train_data_lst = sagemaker.inputs.TrainingInput(\n", + " s3_train_lst,\n", + " distribution=\"FullyReplicated\",\n", + " content_type=\"application/x-image\",\n", + " s3_data_type=\"S3Prefix\",\n", + ")\n", + "validation_data_lst = sagemaker.inputs.TrainingInput(\n", + " s3_validation_lst,\n", + " distribution=\"FullyReplicated\",\n", + " content_type=\"application/x-image\",\n", + " s3_data_type=\"S3Prefix\",\n", + ")\n", + "data_channels = {\n", + " \"train\": train_data,\n", + " \"validation\": validation_data,\n", + " \"train_lst\": train_data_lst,\n", + " \"validation_lst\": validation_data_lst,\n", + "}" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Step 8: Train the model\n", + "Start training by calling the fit method in the estimator." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "multilabel_ic.fit(inputs=data_channels, logs=True)" + ], + "outputs": [], + "metadata": { + "scrolled": true + } + }, + { + "cell_type": "markdown", + "source": [ + "# Inference\n", + "\n", + "### Step 9: Deploy the Model for Inference\n", + "\n", + "Once we have trained the model, we want to use it to perform inference. In this case, we will be predicting keywords for the image. \n", + "\n", + "First, let's deploy the model. You can deploy the created model by using the deploy method in the estimator." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "from sagemaker.serializers import IdentitySerializer\n", + "\n", + "ic_classifier = multilabel_ic.deploy(\n", + " initial_instance_count=1,\n", + " instance_type=\"ml.m4.xlarge\",\n", + " serializer=IdentitySerializer(content_type=\"application/x-image\"),\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Step 10: Evaluate the model\n", + "\n", + "Next, we evaluate one of our images through the network for inference. The network outputs probabilities for each of the keywords that we are training on. As can be seen from this example, the network output is pretty good even with training for only 5 epochs." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "import json\n", + "from PIL import Image\n", + "\n", + "\n", + "# The following image has not been used to train or validate the model yet. We will use it to test the model.\n", + "file_name = \"1721370184.jpg\"\n", + "print(\"Training on Image File: {}\".format(file_name))\n", + "\n", + "# Download and display the image\n", + "s3 = boto3.resource(\"s3\")\n", + "s3.Bucket(images_bucket).download_file(\n", + " (images_adx_directory + file_name), (\"./{}\".format(file_name))\n", + ")\n", + "with open(file_name, \"rb\") as image:\n", + " f = image.read()\n", + " b = bytearray(f)\n", + " # display the image\n", + " im = Image.open(image)\n", + " im.thumbnail([500, 500])\n", + " display(im)\n", + "\n", + "# Run the model prediction on the downloaded image\n", + "results = ic_classifier.predict(b)\n", + "prob = json.loads(results)\n", + "for idx, val in enumerate(training_keywords):\n", + " print(\"{}:{} \".format(training_keywords[idx], prob[idx]), end=\"\")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "After running the above lines of code, our notebook will display the image and print out the probabilities of each of the keywords that we are training on. From here, we can expand the amount of keywords that we train on, fine-tune our parameters, or add additional images to further improve the accuracy of our model.\n", + "\n", + "\n", + "## Clean up\n", + "You can use the following command to delete the SageMaker model endpoint. The endpoint that is created above is persistent and would consume resources till it is deleted. It is good to delete the endpoint when it is not being used." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ic_classifier.delete_endpoint()" + ], + "outputs": [], + "metadata": {} + } + ], + "metadata": { + "celltoolbar": "Raw Cell Format", + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + }, + "notice": "Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.", + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/aws_marketplace/using_data/using_data_with_ml_model/using-dataset-product-from-aws-data-exchange-with-ml-model-from-aws-marketplace.ipynb b/aws_marketplace/using_data/using_data_with_ml_model/using-dataset-product-from-aws-data-exchange-with-ml-model-from-aws-marketplace.ipynb deleted file mode 100644 index 419fbcb49f..0000000000 --- a/aws_marketplace/using_data/using_data_with_ml_model/using-dataset-product-from-aws-data-exchange-with-ml-model-from-aws-marketplace.ipynb +++ /dev/null @@ -1,507 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "33386bb3", - "metadata": {}, - "source": [ - "## Using dataset product from AWS Data Exchange with ML model from AWS Marketplace\n", - "\n", - "This sample notebook shows how to perform machine learning on third-party datasets from [AWS Data Exchange](https://aws.amazon.com/data-exchange/) using a pre-trained ML Model.\n", - "\n", - "In this notebook, you will subscribe to a dataset listed by shutterstock in AWS Data Exchange. You will then export the dataset to an S3 bucket, and then download it to your local environment. You will also subscribe to Resnet 18, an open ML model from AWS Marketplace and deploy it in form an Amazon SageMaker Endpoint. Finally, you will perform inference.\n", - "\n", - "\n", - "### Contents:\n", - "* [Pre-requisites](#Pre-requisites)\n", - "* [Introduction](#Introduction)\n", - "* [Explore dataset](#Explore-dataset)\n", - "* [Perform inference](#Perform-inference)\n", - "* [Cleanup](#Cleanup)\n", - "\n", - "\n", - "#### Usage instructions\n", - "You can run this notebook one cell at a time (By using Shift+Enter for running a cell)." - ] - }, - { - "cell_type": "markdown", - "id": "b230f601", - "metadata": {}, - "source": [ - "### Pre-requisites:\n", - "\n", - "#### Pre-requisite 1:\n", - "This sample notebook assumes a subscription to the [500 Image & Metadata Free Sample dataset](https://console.aws.amazon.com/dataexchange/home?region=us-east-1#/products/prodview-2h52yl4q6jrjw) has been created and data has been exported into an S3 bucket.\n", - "\n", - "If you have not done this already, please follow these steps: \n", - "\n", - "#### Subscribe to data from AWS Data Exchange:\n", - "1. Open the [500 Image & Metadata Free Sample dataset](https://console.aws.amazon.com/dataexchange/home?region=us-east-1#/products/prodview-2h52yl4q6jrjw) from AWS Data Exchange console.\n", - "2. Read the overview and other information such as pricing, usage, support. \n", - "3. Choose __Continue to Subscribe__.\n", - "4. If your organization agrees to subscription terms, pricing information, and Data subscription agreement, then review/update the renewal settings and choose __Subscribe__.\n", - "5. Once subscription has been successfully created (This step may take 5-10 minutes), you will find the dataset listed in the [__Subscriptions__](https://console.aws.amazon.com/dataexchange/home?region=us-east-1#/subscriptions) section of the console\n", - "6. From [subscription page](https://console.aws.amazon.com/dataexchange/home?region=us-east-1#/subscriptions), open **Shutterstock dataset**, and for this use-case, choose the __retail_trials-bathbodyworks__ dataset.\n", - "7. Select the revision and then choose **Export to Amazon S3**.\n", - "8. Select appropriate bucket and once the export job has completed, open the s3 bucket you chose in preceding step and then copy the S3 URL of the data folder by choosing **Copy S3 URI** and specify the same in following cell." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c042e2bb", - "metadata": {}, - "outputs": [], - "source": [ - "# Please specify S3 location in which dataset has been exported.\n", - "dataset_export_location = \"\"\n", - "# dataset_export_location='s3://bucket/adx_free_data_sample/'" - ] - }, - { - "cell_type": "markdown", - "id": "edd03dc7", - "metadata": {}, - "source": [ - "#### Pre-requisite 2:\n", - "\n", - "This sample notebook assumes a subscription to the [Resnet 18 ML Model](https://aws.amazon.com/marketplace/pp/prodview-rte234xioxzqu) has been created and an endpoint has been deployed.If you have not done this already, please follow these steps:\n", - "\n", - "\n", - "#### Subscribe and deploy ML Model from AWS Marketplace:\n", - "1. Open the [Resnet 18 ML Model from AWS Marketplace listing](https://aws.amazon.com/marketplace/pp/prodview-rte234xioxzqu) from AWS Marketplace.\n", - "2. Read the **Highlights** section and then **product overview** section of the listing.\n", - "3. View **usage information** and then **additional resources**.\n", - "4. Note the supported instance types.\n", - "5. Next, click on **Continue to subscribe**.\n", - "6. Review **End user license agreement**, **support terms**, as well as **pricing information**.\n", - "7. **\"Accept Offer\"** button needs to be clicked if your organization agrees with EULA, pricing information as well as support terms.\n", - "8. Choose **Continue to Configuration**.\n", - "9. Leave **AWS CloudFormation** as the selected option and if this is the first time you are using Amazon SageMaker, \n", - "under *Configure for AWS CloudFormation*, choose **Create and use a new service role** and ***Any S3 bucket**, and then select **Launch CloudFormation Template**.\n", - "10. In CloudFormation console, choose **Create Stack**\n", - "11. After you have launched AWS CloudFormation template, wait for the newly launched AWS CloudFormation stack's status to change to **Create Complete**. \n", - "12. Open Outputs tab of the CloudFormation stack and then copy the value corresponding to **EndpointName** and specify the same in following cell." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f75db16a", - "metadata": {}, - "outputs": [], - "source": [ - "endpoint_name = \"Endpoint-ResNet-18-1\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "41a4a77a", - "metadata": {}, - "outputs": [], - "source": [ - "# Import necessary libraries.\n", - "import math\n", - "import re\n", - "import os\n", - "import json\n", - "import time\n", - "\n", - "import glob\n", - "import pandas as pd\n", - "\n", - "import boto3\n", - "import sagemaker\n", - "from sagemaker import AlgorithmEstimator\n", - "from sagemaker import get_execution_role\n", - "from IPython.display import Image\n", - "\n", - "s3 = boto3.client(\"s3\")\n", - "sagemaker_session = sagemaker.Session()\n", - "region = sagemaker_session.boto_region_name\n", - "runtime = boto3.client(\"runtime.sagemaker\")\n", - "\n", - "content_type = \"application/x-image\"\n", - "predictions = []\n", - "\n", - "s3_bucket = f\"jumpstart-cache-prod-{region}\"\n", - "s3.download_file(s3_bucket, \"inference-notebook-assets/ImageNetLabels.txt\", \"ImageNetLabels.txt\")\n", - "with open(\"ImageNetLabels.txt\", \"r\") as file:\n", - " class_id_to_label = file.read().splitlines()[1::]" - ] - }, - { - "cell_type": "markdown", - "id": "f8b3497a", - "metadata": {}, - "source": [ - "### Introduction\n", - "\n", - "You work for a super cool startup, which lets you bring your pet to the office. The startup is expanding and culture is pretty friendly. Your office is on a large campus provided by a tech incubator. The campus itself is well-equipped with safety cameras.\n", - "\n", - "You bring your little shih-tzu dog, affectionately called Toffee, to work. Because of his friendly nature, he quickly becomes the most popular dog on entire campus. He loves visiting all his friends and you have to find Toffee every day before leaving work.\n", - "\n", - "Since the campus is large, it is hard to physically go everywhere and find your dog. You typically end up with security and have to go through hundreds of cameras to find Toffee before you can leave for the day.\n", - "\n", - "In this workshop, you will develop new skills which you can use to build a software that security team can use to help people find their dog. For this workshop, you don’t need to worry about finding a campus and setting up cameras. Shutterstock has provided a dataset that you will use for the analysis. As part of pre-requisites of this notebook, you should already have subscribed to the dataset and specified the s3 location in dataset_export_location variable." - ] - }, - { - "cell_type": "markdown", - "id": "f1a4996d", - "metadata": {}, - "source": [ - "### Explore dataset" - ] - }, - { - "cell_type": "markdown", - "id": "ba59a3c5", - "metadata": {}, - "source": [ - "Next, you will load the dataset from S3 into your local execution environment." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ef6f579f", - "metadata": {}, - "outputs": [], - "source": [ - "!aws s3 sync $dataset_export_location data" - ] - }, - { - "cell_type": "markdown", - "id": "38ffb9e2", - "metadata": {}, - "source": [ - "Load the camera footage into a dictionary so you can easily do a lookup." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "596ecf8b", - "metadata": {}, - "outputs": [], - "source": [ - "camera_footage = {}\n", - "counter = 1\n", - "for subdir, dirs, files in os.walk(\"data\"):\n", - " for file in files:\n", - " camera_footage[counter] = subdir + \"/\" + file\n", - " counter = counter + 1\n", - "\n", - "print(\"Total \", (counter - 1), \" cameras were found\")\n", - "\n", - "\n", - "def get_camera_id(value):\n", - " for (\n", - " key,\n", - " val,\n", - " ) in camera_footage.items(): # for name, age in dictionary.iteritems(): (for Python 2.x)\n", - " if value in val:\n", - " return key" - ] - }, - { - "cell_type": "markdown", - "id": "11fa6f4c", - "metadata": {}, - "source": [ - "See what footage from camera #1 looks like" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1562bd13", - "metadata": {}, - "outputs": [], - "source": [ - "def show_cam_footage(camera_id):\n", - " return Image(url=camera_footage[camera_id], width=400, height=800)\n", - "\n", - "\n", - "camera_id = get_camera_id(\"1634351818.jpg\")\n", - "show_cam_footage(camera_id)" - ] - }, - { - "cell_type": "markdown", - "id": "cd916d1a", - "metadata": {}, - "source": [ - "Looks like you are looking at camera located in the grocery store of the campus. Try footage from another camera." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f0e726ad", - "metadata": {}, - "outputs": [], - "source": [ - "camera_id = get_camera_id(\"1821728006.jpg\")\n", - "show_cam_footage(camera_id)" - ] - }, - { - "cell_type": "markdown", - "id": "4d39abf6", - "metadata": {}, - "source": [ - "That's Stacy from your team giving a treat to her golden retriever!" - ] - }, - { - "cell_type": "markdown", - "id": "197e5ccd", - "metadata": {}, - "source": [ - "Now you need to identify a way to catalog all the different dogs and cats so that you can look them up easily. For this purpose, you will use an ML model that can identify 1000 different image classes including many popular dog and cat breeds as shown in following table.\n", - "\n", - "\n", - "| Class | dog | |\n", - "|------------------|-----|---|\n", - "| redbone | dog | |\n", - "| shih-tzu | dog | |\n", - "| collie | dog | |\n", - "| basset | dog | |\n", - "| malamute | dog | |\n", - "| beagle | dog | |\n", - "| pug | dog | |\n", - "| golden retriever | dog | |\n", - "| tabby | cat | |\n", - "| siamese cat | cat | |" - ] - }, - { - "cell_type": "markdown", - "id": "b011bd61", - "metadata": {}, - "source": [ - "### Perform inference" - ] - }, - { - "cell_type": "markdown", - "id": "01aead45", - "metadata": {}, - "source": [ - "As part of pre-requisite#2, you have already deployed the ML model and configured the endpoint name in 'endpoint_name' variable. Now you are ready to perform inference. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "deb8a0a4", - "metadata": {}, - "outputs": [], - "source": [ - "# The following method sends picture corresponding to camera_id specified to the ML model\n", - "# and returns you the classes found.\n", - "\n", - "\n", - "def perform_inference(camera_id):\n", - "\n", - " with open(camera_footage[camera_id], \"rb\") as file:\n", - " body = file.read()\n", - "\n", - " # Perform inference by calling invoke_endpoint API\n", - " response = runtime.invoke_endpoint(\n", - " EndpointName=endpoint_name, ContentType=content_type, Body=body\n", - " )\n", - "\n", - " # Parse the inference response and load top 10 classes found into a dictionary.\n", - " prediction = json.loads(response[\"Body\"].read())\n", - " prediction_ids = sorted(\n", - " range(len(prediction)), key=lambda index: prediction[index], reverse=True\n", - " )[:10]\n", - " for id in prediction_ids:\n", - " predictions.append([camera_id, class_id_to_label[id].lower(), 100 * prediction[id]])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "13c592fe", - "metadata": {}, - "outputs": [], - "source": [ - "# Perform inference on all cameras\n", - "for id in camera_footage:\n", - " perform_inference(id)\n", - "\n", - "# Load the inference results into a pandas datafram so you can easily look it up.\n", - "df = pd.DataFrame(predictions, columns=[\"camera_id\", \"entity\", \"probability_measure\"])" - ] - }, - { - "cell_type": "markdown", - "id": "04dc9563", - "metadata": {}, - "source": [ - "Now that our catalog containing image classes for all cameras is ready, you can look-up the classes identified by the Resnet-18 machine learning model." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d8ce325b", - "metadata": {}, - "outputs": [], - "source": [ - "print(\"-------------------------------------------------\")\n", - "print(\"Image classes summary for cam-\", camera_id)\n", - "print(\"-------------------------------------------------\")\n", - "print(df[df[\"camera_id\"] == camera_id])\n", - "show_cam_footage(camera_id)" - ] - }, - { - "cell_type": "markdown", - "id": "8d3cf380", - "metadata": {}, - "source": [ - "You can see how the ML model was able to identify the golden retriever with high probability measure value." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ae444514", - "metadata": {}, - "outputs": [], - "source": [ - "# Following function accepts the pet catagory and returns results\n", - "# that meet the probability_measure threshold.\n", - "def find_my_pet(catagory, probability_measure):\n", - " images = []\n", - " entries = df[\n", - " (df[\"entity\"] == catagory) & (df[\"probability_measure\"] > probability_measure)\n", - " ].sort_values(\"probability_measure\", ascending=False)\n", - " for entry in entries.iterrows():\n", - " print(\n", - " \"Camera-id:\"\n", - " + str(entry[1][\"camera_id\"])\n", - " + \" -> \"\n", - " + str(entry[1][\"probability_measure\"])\n", - " )\n", - " display(Image(url=camera_footage[entry[1][\"camera_id\"]], width=400, height=800))" - ] - }, - { - "cell_type": "markdown", - "id": "a1fcdab0", - "metadata": {}, - "source": [ - "Now its time to find Toffee. Specify a **pet_category** and a **probability_measure** value to see all cameras that have the specified pet." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "afa5cba2", - "metadata": {}, - "outputs": [], - "source": [ - "pet_category = \"shih-tzu\"\n", - "probability_measure_threshold = 10\n", - "find_my_pet(pet_category, probability_measure_threshold)" - ] - }, - { - "cell_type": "markdown", - "id": "3c5cb197", - "metadata": {}, - "source": [ - "You can now try specifying different values for the **pet_category** and **probability_measure** variables to see how model behaves." - ] - }, - { - "cell_type": "markdown", - "id": "101be7f8", - "metadata": {}, - "source": [ - "Congratulations, you have learnt how pre-trained ML models can be used to extract insights from data." - ] - }, - { - "cell_type": "markdown", - "id": "f3fe07a9", - "metadata": {}, - "source": [ - "### Next Steps\n", - "As a next step, i recommend you to:\n", - "1. Explore [AWS Data Exchange](https://console.aws.amazon.com/dataexchange/home?region=us-east-1#/products) and identify the dataset that will help you solve your business problems. If you can't find a dataset you are looking for, you can also [request dataset products](https://console.aws.amazon.com/dataexchange/home?region=us-east-1#/products/product-request)\n", - "2. Explore [ML Models from AWS Marketplace](https://aws.amazon.com/marketplace/search/results?page=1&filters=fulfillment_options&fulfillment_options=SageMaker&ref_=header_nav_dm_sagemaker) and identify which ML model can help you build differentiating features. If you have any questions or need a custom ML model, you can contact AWS Marketplace team on aws-mp-bd-ml@amazon.com." - ] - }, - { - "cell_type": "markdown", - "id": "a05174b2", - "metadata": {}, - "source": [ - "### Cleanup" - ] - }, - { - "cell_type": "markdown", - "id": "4d1aa396", - "metadata": {}, - "source": [ - "To avoid charges to your AWS account when not running your invocation, you will need to delete your endpoint. You will not be charged for keeping your endpoint config or model.\n", - "\n", - "You can visit CloudFormation to delete the stack you created.\n" - ] - }, - { - "cell_type": "markdown", - "id": "09392f63", - "metadata": {}, - "source": [ - "Finally, if the AWS Marketplace subscription was created just for the experiment and you want to unsubscribe to the product, here are the steps that can be followed.\n", - "Before you cancel the subscription, ensure that you do not have any [deployable model](https://console.aws.amazon.com/sagemaker/home#/models) created from the model package or using the algorithm. Note - You can find this information by looking at the container name associated with the model. \n", - "\n", - "**Steps to un-subscribe to product from AWS Marketplace**:\n", - "1. Navigate to __Machine Learning__ tab on [__Your Software subscriptions page__](https://aws.amazon.com/marketplace/ai/library?productType=ml&ref_=lbr_tab_ml)\n", - "2. Locate the listing that you need to cancel subscription for, and then __Cancel Subscription__ can be clicked to cancel the subscription.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "38ebd1f8", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "conda_python3", - "language": "python", - "name": "conda_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.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/aws_sagemaker_studio/sagemaker-python-sdk/scikit_learn_iris/Scikit-learn Estimator Example With Batch Transform.ipynb b/aws_sagemaker_studio/sagemaker-python-sdk/scikit_learn_iris/Scikit-learn Estimator Example With Batch Transform.ipynb index 39a1dc86b3..15ba1bbf63 100644 --- a/aws_sagemaker_studio/sagemaker-python-sdk/scikit_learn_iris/Scikit-learn Estimator Example With Batch Transform.ipynb +++ b/aws_sagemaker_studio/sagemaker-python-sdk/scikit_learn_iris/Scikit-learn Estimator Example With Batch Transform.ipynb @@ -222,7 +222,7 @@ "import os\n", "\n", "from sklearn import tree\n", - "from sklearn.externals import joblib\n", + "import joblib\n", "\n", "\n", "if __name__ == '__main__':\n", @@ -249,8 +249,8 @@ " train_data = pd.concat(raw_data)\n", "\n", " # labels are in the first column\n", - " train_y = train_data.ix[:,0]\n", - " train_X = train_data.ix[:,1:]\n", + " train_y = train_data.loc[:,0]\n", + " train_X = train_data.loc[:,1:]\n", "\n", " # Here we support a single hyperparameter, 'max_leaf_nodes'. Note that you can add as many\n", " # as your training my require in the ArgumentParser above.\n", diff --git a/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/gluoncv_ssd_mobilenet_neo_studio.ipynb b/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/gluoncv_ssd_mobilenet_neo_studio.ipynb new file mode 100644 index 0000000000..cf527d3d0d --- /dev/null +++ b/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/gluoncv_ssd_mobilenet_neo_studio.ipynb @@ -0,0 +1,453 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Deploy pre-trained GluonCV SSD Mobilenet model with SageMaker Neo\n", + "\n", + "1. [Introduction](#Introduction)\n", + "2. [Setup](#Setup)\n", + " 1. [Import SSD Mobilenet model from MXNet GluonCV](#Import-SSD-Mobilenet-model-from-MXNet-GluonCV)\n", + " 2. [Upload model to S3](#Upload-model-to-S3)\n", + " 3. [Use sagemaker MXNetModel to load pretrained MXNet model](#Use-sagemaker-MXNetModel-to-load-pretrained-MXNet-model)\n", + "3. [Compile the pre-trained model using SageMaker Neo](#Compile-the-pre-trained-model-using-SageMaker-Neo)\n", + "4. [Deploy-the-compiled-model-and-request-Inferences](#Deploy-the-compiled-model-and-request-Inferences)\n", + "5. [Delete the Endpoint](#Delete-the-Endpoint)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Introduction\n", + "\n", + "This example demonstrates how to load a pre-trained MXNet GluonCV SSD model, optimize the trained model using SageMaker Neo, and host the model." + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Setup\n", + "\n", + "Before getting started, make sure to select `Python 3 (Data Science)` kernel. Ensure that `Apache MXNet` and `OpenCV` packages are installed in the kernel.\n", + "\n", + "Next, we need to define a few variables and obtain certain permissions that will be needed later in the example. These are:\n", + "\n", + "* A SageMaker session\n", + "* IAM role to give learning, storage & hosting access to your data\n", + "* An S3 bucket, a folder & sub folders that will be used to store data and artifact\n", + "\n", + "To start, we need to upgrade the [SageMaker SDK for Python](https://sagemaker.readthedocs.io/en/stable/v2.html) to v2.33.0 or greater and latest MXNet GluonCV and restart the kernel." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip install mxnet\n", + "!apt-get update\n", + "!apt-get install -y python3-opencv\n", + "!pip install --upgrade sagemaker>=2.33.0 gluoncv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we need an AWS account role with SageMaker access. This role is used to give SageMaker access to your data in S3. We also create a session." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "\n", + "role = get_execution_role()\n", + "sess = sagemaker.Session()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then need an S3 bucket that would be used for storing the model artifacts generated after training and compilation, training data and custom code. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# S3 bucket and folders for saving code and model artifacts.\n", + "# Feel free to specify different bucket/folders here if you wish.\n", + "bucket = sess.default_bucket()\n", + "folder = \"DEMO-ObjectDetection-SSD-MobileNet\"\n", + "pretrained_model_sub_folder = folder + \"/pretrained-model\"\n", + "compilation_output_sub_folder = folder + \"/compilation-output\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To easily visualize the detection outputs we also define the following function. The function visualizes the high-confidence predictions with bounding box by filtering out low-confidence detections." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "def visualize_detection(img_file, dets, classes=[], thresh=0.6):\n", + " \"\"\"\n", + " visualize detections in one image\n", + " Parameters:\n", + " ----------\n", + " img_file : numpy.array\n", + " image, in bgr format\n", + " dets : numpy.array\n", + " ssd detections, numpy.array([[id, score, x1, y1, x2, y2]...])\n", + " each row is one object\n", + " classes : tuple or list of str\n", + " class names\n", + " thresh : float\n", + " score threshold\n", + " \"\"\"\n", + " import random\n", + " import matplotlib.pyplot as plt\n", + " import matplotlib.image as mpimg\n", + " from matplotlib.patches import Rectangle\n", + "\n", + " img = mpimg.imread(img_file)\n", + " plt.imshow(img)\n", + " height = img.shape[0]\n", + " width = img.shape[1]\n", + " colors = dict()\n", + " klasses = dets[0][0]\n", + " scores = dets[1][0]\n", + " bbox = dets[2][0]\n", + " for i in range(len(classes)):\n", + " klass = klasses[i][0]\n", + " score = scores[i][0]\n", + " x0, y0, x1, y1 = bbox[i]\n", + " if score < thresh:\n", + " continue\n", + " cls_id = int(klass)\n", + " if cls_id not in colors:\n", + " colors[cls_id] = (random.random(), random.random(), random.random())\n", + " xmin = int(x0 * width / 512)\n", + " ymin = int(y0 * height / 512)\n", + " xmax = int(x1 * width / 512)\n", + " ymax = int(y1 * height / 512)\n", + " rect = Rectangle(\n", + " (xmin, ymin),\n", + " xmax - xmin,\n", + " ymax - ymin,\n", + " fill=False,\n", + " edgecolor=colors[cls_id],\n", + " linewidth=3.5,\n", + " )\n", + " plt.gca().add_patch(rect)\n", + " class_name = str(cls_id)\n", + " if classes and len(classes) > cls_id:\n", + " class_name = classes[cls_id]\n", + " plt.gca().text(\n", + " xmin,\n", + " ymin - 2,\n", + " \"{:s} {:.3f}\".format(class_name, score),\n", + " bbox=dict(facecolor=colors[cls_id], alpha=0.5),\n", + " fontsize=12,\n", + " color=\"white\",\n", + " )\n", + " plt.tight_layout(rect=[0, 0, 2, 2])\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing object categories\n", + "object_categories = [\n", + " \"aeroplane\",\n", + " \"bicycle\",\n", + " \"bird\",\n", + " \"boat\",\n", + " \"bottle\",\n", + " \"bus\",\n", + " \"car\",\n", + " \"cat\",\n", + " \"chair\",\n", + " \"cow\",\n", + " \"diningtable\",\n", + " \"dog\",\n", + " \"horse\",\n", + " \"motorbike\",\n", + " \"person\",\n", + " \"pottedplant\",\n", + " \"sheep\",\n", + " \"sofa\",\n", + " \"train\",\n", + " \"tvmonitor\",\n", + "]\n", + "\n", + "# Setting a threshold 0.20 will only plot detection results that have a confidence score greater than 0.20\n", + "threshold = 0.20" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we load the test image into the memory. The test image used in this notebook is from [PEXELS](https://www.pexels.com/) which remains unseen until the time of prediction." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import PIL.Image\n", + "import numpy as np\n", + "\n", + "test_file = \"test.jpg\"\n", + "test_image = PIL.Image.open(test_file)\n", + "test_image = np.asarray(test_image.resize((512, 512)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Import SSD Mobilenet model from MXNet GluonCV\n", + "This example uses pre-trained MXNet GluonCV SSD model initially published in:\n", + "> Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg. SSD: Single Shot MultiBox Detector. ECCV 2016." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import mxnet as mx\n", + "import gluoncv as gcv\n", + "import tarfile\n", + "\n", + "net = gcv.model_zoo.get_model(\"ssd_512_mobilenet1.0_voc\", pretrained=True)\n", + "net.hybridize()\n", + "net(mx.nd.ones((1, 3, 512, 512)))\n", + "net.export(\"model\")\n", + "tar = tarfile.open(\"ssd_512_mobilenet1.0_voc.tar.gz\", \"w:gz\")\n", + "\n", + "for name in [\"model-0000.params\", \"model-symbol.json\"]:\n", + " tar.add(name)\n", + "tar.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Upload model to S3\n", + "Upload the pre-trained model to the S3 bucket." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pretrained_model_path = sess.upload_data(\n", + " path=\"ssd_512_mobilenet1.0_voc.tar.gz\", bucket=bucket, key_prefix=pretrained_model_sub_folder\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to setup training and compilation output locations in S3, where the respective model artifacts will be dumped. We also setup the s3 location for training data and custom code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# S3 Location to save the model artifact after training\n", + "s3_pretrained_model_location = \"s3://{}/{}\".format(bucket, pretrained_model_sub_folder)\n", + "\n", + "# S3 Location to save the model artifact after compilation\n", + "s3_compilation_output_location = \"s3://{}/{}\".format(bucket, compilation_output_sub_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Use sagemaker MXNetModel to load pretrained MXNet model\n", + "When loading the model, user is expected to provide the `entry_point` script required by the model. We set `MMS_DEFAULT_RESPONSE_TIMEOUT` environment variable to `500` for MXNet model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% H\n" + } + }, + "outputs": [], + "source": [ + "from sagemaker.mxnet.model import MXNetModel\n", + "from sagemaker.mxnet import MXNetPredictor\n", + "\n", + "pre_trained_model = MXNetModel(\n", + " model_data=pretrained_model_path,\n", + " predictor_cls=MXNetPredictor,\n", + " framework_version=\"1.8\",\n", + " role=role,\n", + " sagemaker_session=sess,\n", + " entry_point=\"ssd_entry_point.py\",\n", + " py_version=\"py3\",\n", + " env={\"MMS_DEFAULT_RESPONSE_TIMEOUT\": \"500\"},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compile the pre-trained model using SageMaker Neo\n", + "\n", + "After loading the pretrained model we can use SageMaker Neo's ``compile()`` API to compile the pretrained model. When calling ``compile()``, the user is expected to provide all the correct input shapes required by the model for successful compilation. We also specify the target instance family, the name of our IAM execution role, S3 bucket to which the compiled model would be stored.\n", + "\n", + "For this example, we will choose `ml_p3` as the target instance family while compiling the trained model. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "import time\n", + "\n", + "compiled_model = pre_trained_model.compile(\n", + " job_name=\"ssd-512-mobilenet-{}\".format(time.strftime(\"%Y%m%d%I%M%S\")),\n", + " target_instance_family=\"ml_p3\",\n", + " input_shape={\"data\": [1, 3, 512, 512]},\n", + " role=role,\n", + " framework=\"mxnet\",\n", + " framework_version=\"1.8\",\n", + " output_path=s3_compilation_output_location,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy the compiled model and request Inferences\n", + "\n", + "We have to deploy the compiled model within the instance family for which the trained model was compiled. Since we have compiled for `ml_p3` we can deploy to any `ml.p3` instance type. For this example we will choose `ml.p3.2xlarge`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "neo_object_detector = compiled_model.deploy(initial_instance_count=1, instance_type=\"ml.p3.2xlarge\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "response = neo_object_detector.predict(test_image)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Visualize the detections.\n", + "visualize_detection(test_file, response, object_categories, threshold)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Delete the Endpoint\n", + "Having an endpoint running will incur some costs. Therefore, as an optional clean-up job, you can delete it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Endpoint name: \" + neo_object_detector.endpoint_name)\n", + "neo_object_detector.delete_endpoint()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_mxnet_p36", + "language": "python", + "name": "conda_mxnet_p36" + }, + "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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/ssd_entry_point.py b/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/ssd_entry_point.py new file mode 100644 index 0000000000..bfb27dc713 --- /dev/null +++ b/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/ssd_entry_point.py @@ -0,0 +1,277 @@ +import io +import json +import logging +import os + +import numpy as np +import PIL.Image + +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + +# ------------------------------------------------------------ # +# Training methods # +# ------------------------------------------------------------ # + +import argparse +import glob +import time +import warnings + +import mxnet as mx +from mxnet import autograd, gluon, nd + + +def parse_args(): + parser = argparse.ArgumentParser(description="Train SSD networks.") + parser.add_argument( + "--network", type=str, default="ssd_512_mobilenet1.0_voc", help="Network name" + ) + parser.add_argument( + "--data-shape", type=int, default=512, help="Input data shape, use 300, 512." + ) + parser.add_argument("--batch-size", type=int, default=32, help="Training mini-batch size") + parser.add_argument( + "--num-workers", + "-j", + dest="num_workers", + type=int, + default=4, + help="Number of data workers, you can use larger " + "number to accelerate data loading, if you CPU and GPUs are powerful.", + ) + parser.add_argument( + "--gpus", type=str, default="0", help="Training with GPUs, you can specify 1,3 for example." + ) + parser.add_argument("--epochs", type=int, default=240, help="Training epochs.") + parser.add_argument( + "--start-epoch", + type=int, + default=0, + help="Starting epoch for resuming, default is 0 for new training." + "You can specify it to 100 for example to start from 100 epoch.", + ) + parser.add_argument( + "--log-interval", type=int, default=100, help="Logging mini-batch interval. Default is 100." + ) + parser.add_argument("--lr", type=float, default=0.001, help="Learning rate, default is 0.001") + parser.add_argument( + "--lr-decay", type=float, default=0.1, help="decay rate of learning rate. default is 0.1." + ) + parser.add_argument( + "--lr-decay-epoch", + type=str, + default="160,200", + help="epochs at which learning rate decays. default is 160,200.", + ) + parser.add_argument("--momentum", type=float, default=0.9, help="SGD momentum, default is 0.9") + parser.add_argument("--wd", type=float, default=0.0005, help="Weight decay, default is 5e-4") + + return parser.parse_args() + + +def get_dataloader(net, data_shape, batch_size, num_workers, ctx): + """Get dataloader.""" + + from gluoncv import data as gdata + from gluoncv.data.batchify import Pad, Stack, Tuple + from gluoncv.data.transforms.presets.ssd import SSDDefaultTrainTransform + + width, height = data_shape, data_shape + # use fake data to generate fixed anchors for target generation + with autograd.train_mode(): + _, _, anchors = net(mx.nd.zeros((1, 3, height, width), ctx)) + anchors = anchors.as_in_context(mx.cpu()) + batchify_fn = Tuple(Stack(), Stack(), Stack()) # stack image, cls_targets, box_targets + train_dataset = gdata.RecordFileDetection( + os.path.join(os.environ["SM_CHANNEL_TRAIN"], "train.rec") + ) + train_loader = gluon.data.DataLoader( + train_dataset.transform(SSDDefaultTrainTransform(width, height, anchors)), + batch_size, + True, + batchify_fn=batchify_fn, + last_batch="rollover", + num_workers=num_workers, + ) + return train_loader + + +def train(net, train_data, ctx, args): + """Training pipeline""" + + import gluoncv as gcv + + net.collect_params().reset_ctx(ctx) + + trainer = gluon.Trainer( + net.collect_params(), + "sgd", + {"learning_rate": args.lr, "wd": args.wd, "momentum": args.momentum}, + update_on_kvstore=None, + ) + + # lr decay policy + lr_decay = float(args.lr_decay) + lr_steps = sorted([float(ls) for ls in args.lr_decay_epoch.split(",") if ls.strip()]) + + mbox_loss = gcv.loss.SSDMultiBoxLoss() + ce_metric = mx.metric.Loss("CrossEntropy") + smoothl1_metric = mx.metric.Loss("SmoothL1") + + # set up logger + logging.basicConfig() + logger = logging.getLogger() + logger.setLevel(logging.INFO) + logger.info(args) + logger.info("Start training from [Epoch {}]".format(args.start_epoch)) + best_map = [0] + + for epoch in range(args.start_epoch, args.epochs): + while lr_steps and epoch >= lr_steps[0]: + new_lr = trainer.learning_rate * lr_decay + lr_steps.pop(0) + trainer.set_learning_rate(new_lr) + logger.info("[Epoch {}] Set learning rate to {}".format(epoch, new_lr)) + ce_metric.reset() + smoothl1_metric.reset() + tic = time.time() + btic = time.time() + net.hybridize(static_alloc=True, static_shape=True) + + for i, batch in enumerate(train_data): + data = gluon.utils.split_and_load(batch[0], ctx_list=ctx, batch_axis=0) + cls_targets = gluon.utils.split_and_load(batch[1], ctx_list=ctx, batch_axis=0) + box_targets = gluon.utils.split_and_load(batch[2], ctx_list=ctx, batch_axis=0) + + with autograd.record(): + cls_preds = [] + box_preds = [] + for x in data: + cls_pred, box_pred, _ = net(x) + cls_preds.append(cls_pred) + box_preds.append(box_pred) + sum_loss, cls_loss, box_loss = mbox_loss( + cls_preds, box_preds, cls_targets, box_targets + ) + autograd.backward(sum_loss) + # since we have already normalized the loss, we don't want to normalize + # by batch-size anymore + trainer.step(1) + + local_batch_size = int(args.batch_size) + ce_metric.update(0, [l * local_batch_size for l in cls_loss]) + smoothl1_metric.update(0, [l * local_batch_size for l in box_loss]) + if args.log_interval and not (i + 1) % args.log_interval: + name1, loss1 = ce_metric.get() + name2, loss2 = smoothl1_metric.get() + logger.info( + "[Epoch {}][Batch {}], Speed: {:.3f} samples/sec, {}={:.3f}, {}={:.3f}".format( + epoch, i, args.batch_size / (time.time() - btic), name1, loss1, name2, loss2 + ) + ) + btic = time.time() + + name1, loss1 = ce_metric.get() + name2, loss2 = smoothl1_metric.get() + logger.info( + "[Epoch {}] Training cost: {:.3f}, {}={:.3f}, {}={:.3f}".format( + epoch, (time.time() - tic), name1, loss1, name2, loss2 + ) + ) + current_map = 0.0 + + # save model + net.set_nms(nms_thresh=0.45, nms_topk=400, post_nms=100) + net(mx.nd.ones((1, 3, 512, 512), ctx=ctx[0])) + net.export("%s/model" % os.environ["SM_MODEL_DIR"]) + return net + + +if __name__ == "__main__": + + from gluoncv import model_zoo + + args = parse_args() + + ctx = [mx.gpu(int(i)) for i in args.gpus.split(",") if i.strip()] + ctx = ctx if ctx else [mx.cpu()] + + net = model_zoo.get_model(args.network, pretrained=False, ctx=ctx) + net.initialize(ctx=mx.gpu(0)) + train_loader = get_dataloader(net, args.data_shape, args.batch_size, args.num_workers, ctx[0]) + + train(net, train_loader, ctx, args) + +# ------------------------------------------------------------ # +# Hosting methods for Neo compiled model # +# ------------------------------------------------------------ # + + +def model_fn(model_dir): + """ + Load the gluon model. Called once when hosting service starts. + :param: model_dir The directory where model files are stored. + :return: a model (in this case a Gluon network) + """ + logging.info("Invoking user-defined model_fn") + import neomx # noqa: F401 + + # change context to mx.cpu() when optimizing and deploying with Neo for CPU endpoints + ctx = mx.gpu() + net = gluon.SymbolBlock.imports( + "%s/compiled-symbol.json" % model_dir, + ["data"], + "%s/compiled-0000.params" % model_dir, + ctx=ctx, + ) + net.hybridize(static_alloc=True, static_shape=True) + # run warm-up inference on empty data + warmup_data = mx.nd.empty((1, 3, 512, 512), ctx=ctx) + class_IDs, scores, bounding_boxes = net(warmup_data) + + return net + + +def transform_fn(net, data, content_type, output_content_type): + """ + pre-process the incoming payload, perform prediction & convert the prediction output into response payload + """ + logging.info("Invoking user-defined transform_fn") + + import gluoncv as gcv + + # change context to mx.cpu() when optimizing and deploying with Neo for CPU endpoints + ctx = mx.gpu() + + """ + pre-processing + """ + # decode json string into numpy array + data = json.loads(data) + + # preprocess image + x, image = gcv.data.transforms.presets.ssd.transform_test(mx.nd.array(data), 512) + + # load image onto right context + x = x.as_in_context(ctx) + + """ + prediction/inference + """ + class_IDs, scores, bounding_boxes = net(x) + + """ + post-processing + """ + # create list of results + result = [ + class_IDs.asnumpy().tolist(), + scores.asnumpy().tolist(), + bounding_boxes.asnumpy().tolist(), + ] + + # decode as json string + response_body = json.dumps(result) + + return response_body, output_content_type diff --git a/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/test.jpg b/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/test.jpg new file mode 100644 index 0000000000..2eab5780e7 Binary files /dev/null and b/aws_sagemaker_studio/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet_studio/test.jpg differ diff --git a/aws_sagemaker_studio/sagemaker_studio_image_build/tensorflow_bring_your_own/tensorflow_bring_your_own.ipynb b/aws_sagemaker_studio/sagemaker_studio_image_build/tensorflow_bring_your_own/tensorflow_bring_your_own.ipynb index a72d7f4252..7da665d941 100644 --- a/aws_sagemaker_studio/sagemaker_studio_image_build/tensorflow_bring_your_own/tensorflow_bring_your_own.ipynb +++ b/aws_sagemaker_studio/sagemaker_studio_image_build/tensorflow_bring_your_own/tensorflow_bring_your_own.ipynb @@ -6,7 +6,7 @@ "source": [ "# Building your own TensorFlow container from Amazon SageMaker Studio\n", "\n", - "**STUDIO KERNEL NOTE:** If you are prompted for Kernel, choose 'Python 3 (TensorFlow CPU Optimized) \n", + "**STUDIO KERNEL NOTE:** If you are prompted for Kernel, choose 'Python 3 (TensorFlow 2.1 Python 3.6 CPU Optimized) \n", "\n", "With Amazon SageMaker, you can package your own algorithms that can then be trained and deployed in the SageMaker environment. This notebook guides you through an example using TensorFlow that shows you how to build a Docker container for SageMaker and use it for training and inference. \n", "\n", @@ -300,9 +300,10 @@ ] }, { - "cell_type": "raw", + "cell_type": "markdown", "metadata": {}, "source": [ + "```\n", "{\n", " \"Version\": \"2012-10-17\",\n", " \"Statement\": [\n", @@ -323,7 +324,8 @@ " \"Action\": \"sts:AssumeRole\"\n", " }\n", " ]\n", - "}" + "}\n", + "```" ] }, { @@ -338,17 +340,20 @@ " \n", " * Open [Policies](https://console.aws.amazon.com/iam/home#/policies) in IAM\n", " * Click **Create policy**\n", - " * Select the JSON tab and copy/paste the policy below" + " * Select the JSON tab and copy/paste the printed result of the policy below" ] }, { - "cell_type": "raw", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ - "{\n", + "print(\n", + " f\"\"\"{{\n", " \"Version\": \"2012-10-17\",\n", " \"Statement\": [\n", - " {\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"codebuild:DeleteProject\",\n", @@ -357,26 +362,26 @@ " \"codebuild:StartBuild\"\n", " ],\n", " \"Resource\": \"arn:aws:codebuild:*:*:project/sagemaker-studio*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"logs:CreateLogStream\",\n", " \"Resource\": \"arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"logs:GetLogEvents\",\n", " \"logs:PutLogEvents\"\n", " ],\n", " \"Resource\": \"arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*:log-stream:*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"logs:CreateLogGroup\",\n", " \"Resource\": \"*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"ecr:CreateRepository\",\n", @@ -391,13 +396,13 @@ " \"ecr:PutImage\"\n", " ],\n", " \"Resource\": \"arn:aws:ecr:*:*:repository/sagemaker-studio*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"ecr:GetAuthorizationToken\",\n", " \"Resource\": \"*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"s3:GetObject\",\n", @@ -405,34 +410,35 @@ " \"s3:PutObject\"\n", " ],\n", " \"Resource\": \"arn:aws:s3:::sagemaker-*/*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"s3:CreateBucket\"\n", " ],\n", " \"Resource\": \"arn:aws:s3:::sagemaker*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"iam:GetRole\",\n", " \"iam:ListRoles\"\n", " ],\n", " \"Resource\": \"*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"iam:PassRole\",\n", - " \"Resource\": \"arn:aws:iam::*:role/*\",\n", - " \"Condition\": {\n", - " \"StringLikeIfExists\": {\n", + " \"Resource\": \"{role}\",\n", + " \"Condition\": {{\n", + " \"StringLikeIfExists\": {{\n", " \"iam:PassedToService\": \"codebuild.amazonaws.com\"\n", - " }\n", - " }\n", - " }\n", + " }}\n", + " }}\n", + " }}\n", " ]\n", - "}" + "}}\"\"\"\n", + ")" ] }, { @@ -446,7 +452,7 @@ "We now need to attach our policy to the Execution Role attached to this notebook environment. \n", "\n", " * Go back to [Roles](https://console.aws.amazon.com/iam/home#/roles) in IAM\n", - " * Select the SageMaker Execution Role from abovee\n", + " * Select the SageMaker Execution Role from above\n", " * On the **Permissions** tab, click **Attach policies**\n", " * Search for the Policy we created above `Studio-Image-Build-Policy`\n", " * Select the policy and click **Attach policy**" @@ -647,9 +653,10 @@ "\n", "estimator = Estimator(\n", " role=role,\n", - " train_instance_count=1,\n", - " train_instance_type=instance_type,\n", + " instance_count=1,\n", + " instance_type=instance_type,\n", " image_name=ecr_image,\n", + " image_uri=ecr_image,\n", " hyperparameters=hyperparameters,\n", ")\n", "\n", @@ -740,8 +747,6 @@ "import imageio as imageio\n", "import numpy\n", "\n", - "from sagemaker.predictor import json_serializer, json_deserializer\n", - "\n", "image = imageio.imread(\"data/cat.png\")\n", "print(image.shape)\n", "\n", @@ -758,20 +763,16 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "source_hidden": true - } - }, + "metadata": {}, "outputs": [], "source": [ "# The request and response format is JSON for TensorFlow Serving.\n", "# For more information: https://www.tensorflow.org/serving/api_rest#predict_api\n", - "predictor.accept = \"application/json\"\n", - "predictor.content_type = \"application/json\"\n", + "from sagemaker.serializers import JSONSerializer\n", + "from sagemaker.deserializers import JSONDeserializer\n", "\n", - "predictor.serializer = json_serializer\n", - "predictor.deserializer = json_deserializer\n", + "predictor.serializer = JSONSerializer()\n", + "predictor.deserializer = JSONDeserializer()\n", "\n", "# For more information on the predictor class.\n", "# https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/predictor.py\n", @@ -821,9 +822,9 @@ "metadata": { "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "Python 3 (TensorFlow CPU Optimized)", + "display_name": "Python 3 (TensorFlow 2.1 Python 3.6 CPU Optimized)", "language": "python", - "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/tensorflow-1.15-cpu-py36" + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-2:429704687514:image/tensorflow-2.1-cpu-py36" }, "language_info": { "codemirror_mode": { @@ -835,7 +836,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.9" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Batch_Transform_BYO_XGB.ipynb b/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Batch_Transform_BYO_XGB.ipynb index cb56247297..b32999e4f1 100644 --- a/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Batch_Transform_BYO_XGB.ipynb +++ b/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Batch_Transform_BYO_XGB.ipynb @@ -61,8 +61,8 @@ "source": [ "import sys\n", "\n", - "#!{sys.executable} -m pip install \"sagemaker-experiments\"\n", - "#!{sys.executable} -m pip install \"sagemaker-studio-image-build\"" + "!{sys.executable} -m pip install \"sagemaker-experiments\"\n", + "!{sys.executable} -m pip install \"sagemaker-studio-image-build\"" ] }, { @@ -102,13 +102,31 @@ " }\n", " ]\n", " }\n", - " \n", - "2) Permissions attached to the execution role to execute a build in AWS CodeBuild, create ECR repository and push images to ECR \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2) Permissions attached to the execution role to execute a build in AWS CodeBuild, create ECR repository and push images to ECR " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker import get_execution_role\n", + "\n", + "role = get_execution_role()\n", "\n", - " {\n", + "print(\n", + " f\"\"\"{{\n", " \"Version\": \"2012-10-17\",\n", " \"Statement\": [\n", - " {\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"codebuild:DeleteProject\",\n", @@ -117,26 +135,26 @@ " \"codebuild:StartBuild\"\n", " ],\n", " \"Resource\": \"arn:aws:codebuild:*:*:project/sagemaker-studio*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"logs:CreateLogStream\",\n", " \"Resource\": \"arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"logs:GetLogEvents\",\n", " \"logs:PutLogEvents\"\n", " ],\n", " \"Resource\": \"arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*:log-stream:*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"logs:CreateLogGroup\",\n", " \"Resource\": \"*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"ecr:CreateRepository\",\n", @@ -151,13 +169,13 @@ " \"ecr:PutImage\"\n", " ],\n", " \"Resource\": \"arn:aws:ecr:*:*:repository/sagemaker-studio*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"ecr:GetAuthorizationToken\",\n", " \"Resource\": \"*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"s3:GetObject\",\n", @@ -165,34 +183,35 @@ " \"s3:PutObject\"\n", " ],\n", " \"Resource\": \"arn:aws:s3:::sagemaker-*/*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"s3:CreateBucket\"\n", " ],\n", " \"Resource\": \"arn:aws:s3:::sagemaker*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"iam:GetRole\",\n", " \"iam:ListRoles\"\n", " ],\n", " \"Resource\": \"*\"\n", - " },\n", - " {\n", + " }},\n", + " {{\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"iam:PassRole\",\n", - " \"Resource\": \"arn:aws:iam::*:role/*\",\n", - " \"Condition\": {\n", - " \"StringLikeIfExists\": {\n", + " \"Resource\": \"{role}\",\n", + " \"Condition\": {{\n", + " \"StringLikeIfExists\": {{\n", " \"iam:PassedToService\": \"codebuild.amazonaws.com\"\n", - " }\n", - " }\n", - " }\n", + " }}\n", + " }}\n", + " }}\n", " ]\n", - "}" + "}}\"\"\"\n", + ")" ] }, { @@ -213,9 +232,7 @@ "# Let's inspect the role we have created for our notebook here:\n", "import boto3\n", "import sagemaker\n", - "from sagemaker import get_execution_role\n", "\n", - "role = get_execution_role()\n", "sess = sagemaker.Session()\n", "region = boto3.session.Session().region_name\n", "print(\"Region = {}\".format(region))\n", @@ -672,13 +689,6 @@ "!sm-docker build ." ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -972,21 +982,14 @@ "\n", "Remember to delete your datasets in the Amazon S3 bucket you used for this notebook." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "Environment (conda_anaconda3)", + "display_name": "Python 3 (Data Science)", "language": "python", - "name": "conda_anaconda3" + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-2:429704687514:image/datascience-1.0" }, "language_info": { "codemirror_mode": { @@ -998,7 +1001,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Dockerfile b/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Dockerfile index a86178c32b..241992a55f 100644 --- a/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Dockerfile +++ b/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/Dockerfile @@ -26,7 +26,7 @@ RUN apt-get -y update && apt-get install -y --no-install-recommends \ # linking them together. Likewise, pip leaves the install caches populated which uses # a significant amount of space. These optimizations save a fair amount of space in the # image, which reduces start up time. -RUN wget https://bootstrap.pypa.io/3.3/get-pip.py && python3.6 get-pip.py && \ +RUN wget https://bootstrap.pypa.io/get-pip.py && python3.6 get-pip.py && \ pip install --upgrade pip && \ pip install smdebug numpy==1.16.2 scipy==1.2.1 scikit-learn==0.19.1 xgboost==0.90 pandas==0.22.0 flask gevent gunicorn && \ (cd /usr/local/lib/python3.6/dist-packages/scipy/.libs; rm *; ln ../../numpy/.libs/* .) && \ diff --git a/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/xgboost/train b/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/xgboost/train index 2af6234353..1673320be1 100644 --- a/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/xgboost/train +++ b/aws_sagemaker_studio/sagemaker_studio_image_build/xgboost_bring_your_own/xgboost/train @@ -13,7 +13,6 @@ import sys import traceback import pandas as pd -import smdebug.xgboost as smd import xgboost as xgb print("Libraries imported") diff --git a/conf.py b/conf.py index bd7367642f..9582bceb21 100644 --- a/conf.py +++ b/conf.py @@ -62,6 +62,4 @@ # For Adobe Analytics html_js_files = [ "https://a0.awsstatic.com/s_code/js/3.0/awshome_s_code.js", - "aws-ux-shortbread/index.js", - "aws-ux-shortbread/init.js", ] diff --git a/contrib/template.ipynb b/contrib/template.ipynb index 2a5ed6b069..6da9e256fe 100644 --- a/contrib/template.ipynb +++ b/contrib/template.ipynb @@ -107,10 +107,9 @@ "\n", "~~~\n", "\n", - "To do select a particular dataset, assign choosen_data_set below to be one of 'diabetes', 'california', or 'boston' where each name corresponds to the it's respective dataset.\n", + "To select a particular dataset, assign chosen_data_set below to be 'diabetes' or 'california', where each name corresponds to its respective dataset.\n", "\n", - "'boston' : boston house data\n", - "'california' : california house data\n", + "'california' : california housing data\n", "'diabetes' : diabetes data\n", "\n", "~~~\n" @@ -125,13 +124,12 @@ "data_sets = {\n", " \"diabetes\": \"load_diabetes()\",\n", " \"california\": \"fetch_california_housing()\",\n", - " \"boston\": \"load_boston()\",\n", "}\n", "\n", - "# Change choosen_data_set variable to one of the data sets above.\n", - "choosen_data_set = \"california\"\n", - "assert choosen_data_set in data_sets.keys()\n", - "print(\"I selected the '{}' dataset!\".format(choosen_data_set))" + "# Change chosen_data_set variable to one of the data sets above.\n", + "chosen_data_set = \"california\"\n", + "assert chosen_data_set in data_sets.keys()\n", + "print(\"I selected the '{}' dataset!\".format(chosen_data_set))" ] }, { @@ -161,7 +159,7 @@ "%store -r Y_train\n", "%store -r Y_test\n", "%store -r Y_val\n", - "%store -r choosen_data_set" + "%store -r chosen_data_set" ] }, { diff --git a/end_to_end/fraud_detection/5-pipeline-e2e.ipynb b/end_to_end/fraud_detection/5-pipeline-e2e.ipynb index 13a2616118..a775a9e381 100644 --- a/end_to_end/fraud_detection/5-pipeline-e2e.ipynb +++ b/end_to_end/fraud_detection/5-pipeline-e2e.ipynb @@ -508,9 +508,10 @@ " \"--customers-table-name\",\n", " customers_table,\n", " \"--region\",\n", - " region\n", + " region,\n", " ],\n", " code=create_dataset_script_uri,\n", + " depends_on=[claims_flow_step.name, customers_flow_step.name],\n", ")" ] }, diff --git a/end_to_end/fraud_detection/claims_flow_template b/end_to_end/fraud_detection/claims_flow_template index 31341c8fb2..be5be730aa 100644 --- a/end_to_end/fraud_detection/claims_flow_template +++ b/end_to_end/fraud_detection/claims_flow_template @@ -27,7 +27,8 @@ "name": "default", "sampling": { "sampling_method": "sample_by_ratio", - "sample_ratio": 1 + "sample_ratio": 1, + "seed": 123456789 } } ] diff --git a/end_to_end/fraud_detection/customers_flow_template b/end_to_end/fraud_detection/customers_flow_template index 1cf6467434..da44bd9b21 100644 --- a/end_to_end/fraud_detection/customers_flow_template +++ b/end_to_end/fraud_detection/customers_flow_template @@ -27,7 +27,8 @@ "name": "default", "sampling": { "sampling_method": "sample_by_ratio", - "sample_ratio": 1 + "sample_ratio": 1, + "seed": 123456789 } } ] diff --git a/ground_truth_labeling_jobs/README.md b/ground_truth_labeling_jobs/README.md index baf048f0cb..79a5fb1d91 100644 --- a/ground_truth_labeling_jobs/README.md +++ b/ground_truth_labeling_jobs/README.md @@ -13,3 +13,4 @@ These examples provide quick walkthroughs to get you up and running with the lab - [Ground Truth Conversion Scripts](ground_truth_conversion_scripts) provides a conversion script for the output of Ground Truth semantic segmentation manifest to Common Objects in Context (COCO) format - [3D Point Cloud Demo](3d_point_cloud_demo) demonstrates the Amazon SageMaker Ground Truth's annotation workflow for 3D point cloud data types. - [3D Point Cloud Input Data Processing](3d_point_cloud_input_data_processing) demonstrates how you can pre-process your 3D point cloud input data to create an object tracking job labeling job. +- [Labeling Adjustment Job Adaptation](labeling_adjustment_job_adaptation) is a utility script to help you remove individual unnecessary labels from manifest files so that you can successfully launch label adjustment jobs with SageMaker Ground Truth. diff --git a/ground_truth_labeling_jobs/labeling_adjustment_job_adaptation/labeling_adjustment_job_adaptation.ipynb b/ground_truth_labeling_jobs/labeling_adjustment_job_adaptation/labeling_adjustment_job_adaptation.ipynb new file mode 100644 index 0000000000..c4dcd9c8e6 --- /dev/null +++ b/ground_truth_labeling_jobs/labeling_adjustment_job_adaptation/labeling_adjustment_job_adaptation.ipynb @@ -0,0 +1,272 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a56a7e16", + "metadata": {}, + "source": [ + "# Labeling Adjustment Job Adaptation\n", + "\n", + "## Labeling Adjustment Jobs\n", + "\n", + "This notebook is focusing on creation of Labeling Adjustment Jobs in SageMaker Ground Truth.\n", + "\n", + "More details about the usage of label adjustment jobs as well as their creation can be found in official documentation: https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html\n", + "\n", + "## Customer use case description\n", + "\n", + "The example provided here is given for the bounding box labeling job with multiple object detection on image data. \n", + "\n", + "Once your customer has originally labeled their dataset for object detection and trained their first models it is possible that the business requirements and priorities might change. Therefore, individual original objects which we did want to detect originally with our model might become irrelevant for further detection and should be removed, while we would want to add additional labels to be detected in our dataset.\n", + "\n", + "This will require the original dataset to be re-labeled with the labeling adjustment job displaying the already existing labels which we want to keep while removing the labels which are not anymore in target scope. The current SageMaker Ground Truth UI enables us to remove unwanted labels from the labeling team workforce UI before launching labeling adjustment job, which will also remove the labels visually from each individual image displayed to the labeling team.\n", + "\n", + "However, jobs launched in this way will fail on every example image during consolidation stage where the labels have not been adjusted by the labeling team. To avoid this issue, we need to process the existing output manifest file and remove all the unwanted labels from the manifest file directly before launching labeling adjustment job.\n", + "\n", + "The script provided in this notebook accepts as input a set of labels to remove from the output manifest file, and the name of the labeling job containing the output manifest file to adjust. It will generate the cleaned output manifest file with only target labels removed from the latest labeling job that can be used to safely launch label adjustment job." + ] + }, + { + "cell_type": "markdown", + "id": "13912066", + "metadata": {}, + "source": [ + "### Function code" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d38f5df4", + "metadata": {}, + "outputs": [], + "source": [ + "import boto3\n", + "import os\n", + "import botocore\n", + "import json\n", + "\n", + "sagemaker_client = boto3.client(\"sagemaker\")\n", + "s3_client = boto3.client(\"s3\")\n", + "\n", + "##### Helper function for communication with aws services (sagemaker and s3)\n", + "def get_labeling_job_output_manifest_file_location(\n", + " labeling_job_name: str, sagemaker_client: botocore.client\n", + ") -> str:\n", + " \"\"\"\n", + " # ref: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.describe_labeling_job\n", + " \"\"\"\n", + " s3_output_location = sagemaker_client.describe_labeling_job(LabelingJobName=labeling_job_name)[\n", + " \"OutputConfig\"\n", + " ][\"S3OutputPath\"]\n", + " manifest_file_relative_path_from_output_location = \"{}/manifests/output/output.manifest\".format(\n", + " labeling_job_name\n", + " )\n", + " output_manifest_absolute_path = os.path.join(\n", + " s3_output_location, manifest_file_relative_path_from_output_location\n", + " )\n", + "\n", + " return output_manifest_absolute_path\n", + "\n", + "\n", + "def get_labeling_job_attribute_name(\n", + " labeling_job_name: str, sagemaker_client: botocore.client\n", + ") -> str:\n", + " \"\"\"\n", + " # ref: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.describe_labeling_job\n", + " \"\"\"\n", + " labeling_job_attribute_name = sagemaker_client.describe_labeling_job(\n", + " LabelingJobName=labeling_job_name\n", + " )[\"LabelAttributeName\"]\n", + " return labeling_job_attribute_name\n", + "\n", + "\n", + "def split_bucket_key_from_s3_path(s3_full_path: str) -> (str, str):\n", + " \"\"\"\n", + " full s3 path in format: s3://BUCKET/KEY\n", + " \"\"\"\n", + " split_location = s3_full_path[5:].find(\"/\") + 5\n", + " return s3_full_path[5:split_location], s3_full_path[split_location + 1 :]\n", + "\n", + "\n", + "def read_s3_file(file_path: str, s3_client: botocore.client):\n", + " bucket_name, key = split_bucket_key_from_s3_path(file_path)\n", + " response = s3_client.get_object(Bucket=bucket_name, Key=key)[\"Body\"].read()\n", + " return response\n", + "\n", + "\n", + "def save_file_to_s3(file_path: str, object_to_save, s3_client: botocore.client):\n", + " bucket_name, key = split_bucket_key_from_s3_path(file_path)\n", + " s3_client.put_object(Body=object_to_save, Bucket=bucket_name, Key=key)\n", + "\n", + "\n", + "#### Helper functions to process the output.manifest file and cleanup unnecessary labels\n", + "def get_class_ids_for_removable_labels(label_annotations_metadata, labels_to_remove):\n", + " class_ids_for_removable_labels = []\n", + " for label in labels_to_remove:\n", + " for key, value in label_annotations_metadata[\"class-map\"].items():\n", + " if value == label:\n", + " class_ids_for_removable_labels.append(key)\n", + " del label_annotations_metadata[\"class-map\"][key]\n", + " break\n", + " return label_annotations_metadata, class_ids_for_removable_labels\n", + "\n", + "\n", + "def clean_up_annotations(label_annotations, class_ids_to_remove):\n", + " removed_annotation_positions = []\n", + " new_annotations_list = []\n", + " for i in range(len(label_annotations[\"annotations\"])):\n", + " if str(label_annotations[\"annotations\"][i][\"class_id\"]) in class_ids_to_remove:\n", + " removed_annotation_positions.append(i)\n", + " else:\n", + " new_annotations_list.append(label_annotations[\"annotations\"][i])\n", + " label_annotations[\"annotations\"] = new_annotations_list\n", + " return label_annotations, removed_annotation_positions\n", + "\n", + "\n", + "def clean_up_metadata(label_annotations_metadata, removed_marked_labels_positions):\n", + " for i in range(len(removed_marked_labels_positions)):\n", + " del label_annotations_metadata[\"objects\"][removed_marked_labels_positions[i] - i]\n", + "\n", + " label_annotations_metadata[\"adjustment-status\"] = \"adjusted\"\n", + " return label_annotations_metadata\n", + "\n", + "\n", + "#### Main function to remove all the unnecessary labels from manifest file\n", + "def remove_labels_from_output_manifest_file(\n", + " remove_labels: list, marked_labels: list, labeling_job_attribute_name: str\n", + "):\n", + " \"\"\"\n", + " remove_labels (list[str]): list of labels we want to remove from output.manifest file\n", + " marked_labels (list[marked_labels_per_document]): content of output.manifest file marked labels per document\n", + " format of marked_labels_per_document:\n", + " 'all_keys': ['source-ref', 'category', 'category-metadata','chain-job-name','chain-job-name-metadata']\n", + " 'category' (chain-job-name): ['image_size', 'annotations']\n", + " 'category-metadata' (chain-job-name-metadata): ['objects', 'class-map', 'type', 'human-annotated', 'creation-date', 'job-name', 'adjustment-status']\n", + " labeling_job_attribute_name (str): name of the labeling job attribute to find adequate annotations and annotations_meta data to be adjusted\n", + " \"\"\"\n", + " nmb_keys_previous = len(list(marked_labels[0].keys()))\n", + " total_nmb_of_removed_marked_labels = 0\n", + "\n", + " for label in marked_labels:\n", + " nmb_keys = len(list(label.keys()))\n", + " if nmb_keys_previous != nmb_keys:\n", + " assert \"Label does not have same amount of keys as others! This is unexpected behaviour since each should have same amount of jobs run...\"\n", + "\n", + " latest_annotations_name = labeling_job_attribute_name\n", + " latest_annotations_metadata_name = \"{}-metadata\".format(labeling_job_attribute_name)\n", + "\n", + " (\n", + " label[latest_annotations_metadata_name],\n", + " class_ids_to_remove,\n", + " ) = get_class_ids_for_removable_labels(\n", + " label[latest_annotations_metadata_name], remove_labels\n", + " )\n", + "\n", + " # every labeling job class-map should have one label mentioned only once, but not every class needs to be present\n", + " assert len(class_ids_to_remove) <= len(remove_labels)\n", + "\n", + " label[latest_annotations_name], removed_marked_labels_positions = clean_up_annotations(\n", + " label[latest_annotations_name], class_ids_to_remove\n", + " )\n", + " label[latest_annotations_metadata_name] = clean_up_metadata(\n", + " label[latest_annotations_metadata_name], removed_marked_labels_positions\n", + " )\n", + " total_nmb_of_removed_marked_labels += len(removed_marked_labels_positions)\n", + "\n", + " # this will log for you the total number of labels that have been removed from your manifest file\n", + " # you can use it to check the expectations depending on how many labels of the target type to be removed,\n", + " # was expected in input manifest file\n", + " print(\"In total we have removed {} marked labels.\".format(total_nmb_of_removed_marked_labels))\n", + " return marked_labels\n", + "\n", + "\n", + "def main_function(\n", + " labeling_job_name, remove_labels, path_to_save_results_to, sagemaker_client, s3_client\n", + "):\n", + " output_file_path = get_labeling_job_output_manifest_file_location(\n", + " labeling_job_name, sagemaker_client\n", + " )\n", + " output_file_content = read_s3_file(output_file_path, s3_client)\n", + "\n", + " labels = []\n", + " for line in output_file_content.splitlines():\n", + " labels.append(json.loads(line))\n", + "\n", + " cleaned_labels = remove_labels_from_output_manifest_file(\n", + " remove_labels, labels, get_labeling_job_attribute_name(labeling_job_name, sagemaker_client)\n", + " )\n", + " # you can uncomment this to generate a smaller output file for testing\n", + " # cleaned_labels = cleaned_labels[:15]\n", + "\n", + " # function to save back all the marked labels to cleaned up manifest file\n", + " output_manifest_cleaned_content = \"\"\n", + " for clean_label in cleaned_labels:\n", + " output_manifest_cleaned_content = (\n", + " output_manifest_cleaned_content + json.dumps(clean_label) + \"\\n\"\n", + " )\n", + "\n", + " save_file_to_s3(path_to_save_results_to, output_manifest_cleaned_content, s3_client)" + ] + }, + { + "cell_type": "markdown", + "id": "098d85e8", + "metadata": {}, + "source": [ + "### Parameter setup and script execution" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "ea0a5772", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "In total we have removed 4 marked labels.\n" + ] + } + ], + "source": [ + "#### program execution\n", + "\n", + "# these are input parameters to adjust\n", + "labeling_job_name = \"\"\n", + "remove_labels = [\"\", \"\", \"\", \"\"]\n", + "\n", + "path_to_save_results_to = (\n", + " \"s3:////output.manifest\"\n", + ")\n", + "\n", + "main_function(\n", + " labeling_job_name, remove_labels, path_to_save_results_to, sagemaker_client, s3_client\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/hyperparameter_tuning/blazingtext_text_classification_20_newsgroups/hpo_blazingtext_text_classification_20_newsgroups.ipynb b/hyperparameter_tuning/blazingtext_text_classification_20_newsgroups/hpo_blazingtext_text_classification_20_newsgroups.ipynb new file mode 100644 index 0000000000..ca0a7475bf --- /dev/null +++ b/hyperparameter_tuning/blazingtext_text_classification_20_newsgroups/hpo_blazingtext_text_classification_20_newsgroups.ipynb @@ -0,0 +1,1139 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Text Classification with Amazon SageMaker BlazingText and Hyperparameter Tuning\n", + "\n", + "Automatic model tuning, also known as hyperparameter tuning, finds the best version of a model by running many jobs that test a range of hyperparameters on your dataset. You choose the tunable hyperparameters, a range of values for each, and an objective metric. You choose the objective metric from the metrics that the algorithm computes. Automatic model tuning searches the hyperparameters chosen to find the combination of values that result in the model that optimizes the objective metric.\n", + "\n", + "\n", + "## Introduction\n", + "\n", + "Text Classification can be used to solve various use-cases like sentiment analysis, spam detection, hashtag prediction etc. This notebook demonstrates the use of SageMaker BlazingText to perform supervised binary/multi class with single or multi label text classification. BlazingText can train the model on more than a billion words in a couple of minutes using a multi-core CPU or a GPU, while achieving performance on par with the state-of-the-art deep learning text classification algorithms. BlazingText extends the `fastText` text classifier to leverage GPU acceleration using custom `CUDA` kernels." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install Python packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "!{sys.executable} -m pip install \"scikit_learn==0.20.0\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup\n", + "\n", + "Let's start by specifying:\n", + "\n", + "- The S3 bucket and prefix that you want to use for training and model data. This should be within the same region as the Notebook Instance, training, and hosting. If you don't specify a bucket, SageMaker SDK will create a default bucket following a pre-defined naming convention in the same region. \n", + "- The IAM role ARN used to give SageMaker access to your data. It can be fetched using the **get_execution_role** method from sagemaker python SDK." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "import json\n", + "import boto3\n", + "import pandas as pd\n", + "import re\n", + "import string\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "sess = sagemaker.Session()\n", + "\n", + "role = get_execution_role()\n", + "print(\n", + " role\n", + ") # This is the role that SageMaker would use to leverage AWS resources (S3, CloudWatch) on your behalf\n", + "\n", + "bucket = sess.default_bucket() # Replace with your own bucket name if needed\n", + "print(bucket)\n", + "prefix = \"blazingtext/supervised/20_newsgroups\" # Replace with the prefix under which you want to store the data if needed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Data Preparation\n", + "\n", + "Now we'll download a dataset from the web on which we want to train the text classification model. BlazingText expects a single preprocessed text file with space separated tokens and each line of the file should contain a single sentence and the corresponding label(s) prefixed by \"\\__label\\__\".\n", + "\n", + "In this example, let us train the text classification model on the [`20 newsgroups dataset`](http://qwone.com/~jason/20Newsgroups/). The `20 newsgroups dataset` consists of 20000 messages taken from 20 Usenet newsgroups." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import shutil\n", + "\n", + "data_dir = \"20_newsgroups_bulk\"\n", + "if os.path.exists(data_dir): # cleanup existing data folder\n", + " shutil.rmtree(data_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp s3://sagemaker-sample-files/datasets/text/20_newsgroups/20_newsgroups_bulk.tar.gz ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!tar xzf 20_newsgroups_bulk.tar.gz\n", + "!ls 20_newsgroups_bulk" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "file_list = [os.path.join(data_dir, f) for f in os.listdir(data_dir)]\n", + "print(\"Number of files:\", len(file_list))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "documents_count = 0\n", + "for file in file_list:\n", + " df = pd.read_csv(file, header=None, names=[\"text\"])\n", + " documents_count = documents_count + df.shape[0]\n", + "print(\"Number of documents:\", documents_count)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "categories_list = [f.split(\"/\")[1] for f in file_list]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "categories_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us inspect the dataset to get some understanding about how the data and the label is provided in the dataset. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"./20_newsgroups_bulk/rec.motorcycles\", header=None, names=[\"text\"])\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"text\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"./20_newsgroups_bulk/comp.sys.mac.hardware\", header=None, names=[\"text\"])\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"text\"][0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see from the above, there is a single file for each class in the dataset. Each record is just a plain text paragraphs with header, body, footer and quotes. We will need to process them into a suitable data format." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data Preprocessing\n", + "We need to preprocess the training data into **space separated tokenized text** format which can be consumed by `BlazingText` algorithm. Also, as mentioned previously, the class label(s) should be prefixed with `__label__` and it should be present in the same line along with the original sentence. We'll use `nltk` library to tokenize the input sentences from `20 newsgroups dataset`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Download the `nltk` tokenizer and other libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import nltk\n", + "from nltk.corpus import stopwords\n", + "from nltk.tokenize import word_tokenize\n", + "\n", + "nltk.download(\"punkt\")\n", + "nltk.download(\"stopwords\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets.twenty_newsgroups import (\n", + " strip_newsgroup_header,\n", + " strip_newsgroup_quoting,\n", + " strip_newsgroup_footer,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This following function will remove the header, footer and quotes (of earlier messages in each text)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def strip_newsgroup_item(item):\n", + " item = strip_newsgroup_header(item)\n", + " item = strip_newsgroup_quoting(item)\n", + " item = strip_newsgroup_footer(item)\n", + " return item" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function will take care of stop words removal, removing leading/trailing whitespace, extra space, tabs, and HTML tags/markups" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Let's get a list of stop words from the NLTK library\n", + "stop_words = stopwords.words(\"english\")\n", + "\n", + "\n", + "def process_text(texts):\n", + " final_text_list = []\n", + " for text in texts:\n", + "\n", + " # Check if the sentence is a missing value\n", + " if isinstance(text, str) == False:\n", + " text = \"\"\n", + "\n", + " filtered_sentence = []\n", + "\n", + " # Lowercase\n", + " text = text.lower()\n", + "\n", + " # Remove leading/trailing whitespace, extra space, tabs, and HTML tags/markups\n", + " text = text.strip()\n", + " text = re.sub(\"\\[.*?\\]\", \"\", text)\n", + " text = re.sub(\"https?://\\S+|www\\.\\S+\", \"\", text)\n", + " text = re.sub(\"<.*?>+\", \"\", text)\n", + " text = re.sub(\"[%s]\" % re.escape(string.punctuation), \"\", text)\n", + " text = re.sub(\"\\n\", \"\", text)\n", + " text = re.sub(\"\\w*\\d\\w*\", \"\", text)\n", + "\n", + " for w in word_tokenize(text):\n", + " # We are applying some custom filtering here, feel free to try different things\n", + " # Check if it is not numeric and its length>2 and not in stop words\n", + " if (not w.isnumeric()) and (len(w) > 2) and (w not in stop_words):\n", + " filtered_sentence.append(w)\n", + " final_string = \" \".join(filtered_sentence) # final string of cleaned words\n", + "\n", + " final_text_list.append(final_string)\n", + "\n", + " return final_text_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will read each of the `20_newsgroups` dataset files, call `strip_newsgroup_item` and `process_text` functions we defined earlier, and then aggregate all data into one dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df = pd.DataFrame()\n", + "\n", + "for file in file_list:\n", + " print(f\"Processing {file}\")\n", + " label = file.split(\"/\")[1]\n", + " df = pd.read_csv(file, header=None, names=[\"text\"])\n", + " df[\"text\"] = df[\"text\"].apply(strip_newsgroup_item)\n", + " df[\"text\"] = process_text(df[\"text\"].tolist())\n", + " df[\"label\"] = label\n", + " all_categories_df = all_categories_df.append(df, ignore_index=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's inspect how many categories there are in our dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In our dataset there are 20 categories which is too much, so we will combine the sub-categories." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# replace to politics\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"talk.politics.misc\": \"politics\",\n", + " \"talk.politics.guns\": \"politics\",\n", + " \"talk.politics.mideast\": \"politics\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "\n", + "# replace to recreational\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"rec.sport.hockey\": \"recreational\",\n", + " \"rec.sport.baseball\": \"recreational\",\n", + " \"rec.autos\": \"recreational\",\n", + " \"rec.motorcycles\": \"recreational\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "\n", + "# replace to religion\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"soc.religion.christian\": \"religion\",\n", + " \"talk.religion.misc\": \"religion\",\n", + " \"alt.atheism\": \"religion\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "\n", + "# replace to computer\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"comp.windows.x\": \"computer\",\n", + " \"comp.sys.ibm.pc.hardware\": \"computer\",\n", + " \"comp.os.ms-windows.misc\": \"computer\",\n", + " \"comp.graphics\": \"computer\",\n", + " \"comp.sys.mac.hardware\": \"computer\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "# replace to sales\n", + "all_categories_df[\"label\"].replace({\"misc.forsale\": \"sales\"}, inplace=True)\n", + "\n", + "# replace to science\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"sci.crypt\": \"science\",\n", + " \"sci.electronics\": \"science\",\n", + " \"sci.med\": \"science\",\n", + " \"sci.space\": \"science\",\n", + " },\n", + " inplace=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are left with 6 categories, which is much better." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's calculate number of words for each row." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"word_count\"] = all_categories_df[\"text\"].apply(lambda x: len(str(x).split()))\n", + "all_categories_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's get basic statistics about the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"word_count\"].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the mean value is around 86 words. However, there are outliers, such as a text with 6179 words. This can make it harder for the model to result in good performance. We will take care to drop those rows." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's drop empty rows first." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "no_text = all_categories_df[all_categories_df[\"word_count\"] == 0]\n", + "print(len(no_text))\n", + "\n", + "# drop these rows\n", + "all_categories_df.drop(no_text.index, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's drop the rows that are longer than 128 words. This is done to make it easy for the model to train without outliers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "long_text = all_categories_df[all_categories_df[\"word_count\"] > 128]\n", + "print(len(long_text))\n", + "\n", + "# drop these rows\n", + "all_categories_df.drop(long_text.index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's get basic statistics about the dataset after our outliers fixes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"word_count\"].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This looks much more balanced." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we drop the `word_count` columns as we will not need it anymore." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df.drop(columns=\"word_count\", axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We partition the dataset into 80% training and 20% validation set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train, validation = train_test_split(all_categories_df, test_size=0.2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def save_to_csv_with_prefix(df, file_name):\n", + " df[\"text\"] = \"__label__\" + df[\"label\"] + \" \" + df[\"text\"]\n", + " df.drop(columns=\"label\", axis=1, inplace=True)\n", + " records = df[\"text\"].values.tolist()\n", + " print(len(records))\n", + " f = open(file_name, \"w\")\n", + " for element in records:\n", + " f.write(element + \"\\n\")\n", + " f.close()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "save_to_csv_with_prefix(train, \"20_newsgroups.train\")\n", + "save_to_csv_with_prefix(validation, \"20_newsgroups.validation\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us inspect the train and the validation datasets after the preprocessing, to get understanding about how the data and the labels now look." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!head 20_newsgroups.train -n 3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!head 20_newsgroups.validation -n 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to upload it to S3 so that it can be consumed by SageMaker to execute training jobs. We'll use Python SDK to upload these two files to the bucket and prefix location that we have set above. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_channel = prefix + \"/train\"\n", + "validation_channel = prefix + \"/validation\"\n", + "\n", + "sess.upload_data(path=\"20_newsgroups.train\", bucket=bucket, key_prefix=train_channel)\n", + "sess.upload_data(path=\"20_newsgroups.validation\", bucket=bucket, key_prefix=validation_channel)\n", + "\n", + "s3_train_data = \"s3://{}/{}\".format(bucket, train_channel)\n", + "s3_validation_data = \"s3://{}/{}\".format(bucket, validation_channel)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we need to set up an output location at S3, where the model artifact will be dumped. These artifacts are also the output of the algorithm's training job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "s3_output_location = \"s3://{}/{}/output\".format(bucket, prefix)\n", + "print(s3_output_location)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set up hyperparameter tuning job\n", + "Now that we are done with all the setup that is needed, we are ready to train our BlazingText model. To begin, let us create a `Estimator` object. This estimator will launch the training job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "region_name = boto3.Session().region_name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "container = sagemaker.image_uris.retrieve(\"blazingtext\", region_name, \"1\")\n", + "print(\"Using SageMaker BlazingText container: {} ({})\".format(container, region_name))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Training the BlazingText model for supervised text classification" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "BlazingText supports a *supervised* mode for text classification. It extends the `FastText` text classifier to leverage GPU acceleration using custom `CUDA` kernels.\n", + "The model can be trained on more than a billion words in a couple of minutes using a multi-core CPU or a GPU, while achieving performance on par with the state-of-the-art deep learning text classification algorithms.\n", + "For more information, please refer to the [algorithm documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/blazingtext.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's define the SageMaker `Estimator` with resource configurations and hyperparameters to train Text Classification on `20 newsgroups` dataset, using \"supervised\" mode on a `c4.4xlarge` instance." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "estimator = sagemaker.estimator.Estimator(\n", + " container,\n", + " role,\n", + " instance_count=1,\n", + " instance_type=\"ml.c4.4xlarge\",\n", + " volume_size=30,\n", + " max_run=360000,\n", + " input_mode=\"File\",\n", + " output_path=s3_output_location,\n", + " hyperparameters={\n", + " \"mode\": \"supervised\",\n", + " \"epochs\": 25,\n", + " \"min_count\": 2,\n", + " \"early_stopping\": True,\n", + " \"patience\": 4,\n", + " \"min_epochs\": 5,\n", + " \"word_ngrams\": 1,\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once we've defined our estimator we can specify the hyperparameters we'd like to tune and their possible values. We have three different types of hyperparameters.\n", + "- Categorical parameters need to take one value from a discrete set. We define this by passing the list of possible values to `CategoricalParameter(list)`\n", + "- Continuous parameters can take any real number value between the minimum and maximum value, defined by `ContinuousParameter(min, max)`\n", + "- Integer parameters can take any integer value between the minimum and maximum value, defined by `IntegerParameter(min, max)`\n", + "\n", + "*Note, if possible, it's almost always best to specify a value as the least restrictive type. For example, tuning learning rate as a continuous value between 0.01 and 0.2 is likely to yield a better result than tuning as a categorical parameter with values 0.01, 0.1, 0.15, or 0.2.*\n", + "\n", + "Refer to [BlazingText Hyperparameters](https://docs.aws.amazon.com/sagemaker/latest/dg/blazingtext_hyperparameters.html) in the Amazon SageMaker documentation for the complete list of hyperparameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.tuner import (\n", + " IntegerParameter,\n", + " CategoricalParameter,\n", + " ContinuousParameter,\n", + " HyperparameterTuner,\n", + ")\n", + "\n", + "hyperparameter_ranges = {\n", + " \"learning_rate\": ContinuousParameter(0.05, 0.15),\n", + " \"vector_dim\": IntegerParameter(32, 300),\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we'll specify the objective metric that we'd like to tune and its definition, which includes the regular expression (Regex) needed to extract that metric from the CloudWatch logs of the training job. Since we are using built-in `BlazingText` algorithm here, it emits two predefined metrics: `train:mean_rho` and `validation:accuracy`, and we elected to monitor `validation:accuracy` as you can see below. In this case, we only need to specify the metric name and do not need to provide regex. If you bring your own algorithm, your algorithm emits metrics by itself. In that case, you'll need to add a `MetricDefinition` object here to define the format of those metrics through regex, so that SageMaker knows how to extract those metrics from your CloudWatch logs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "objective_metric_name = \"validation:accuracy\"\n", + "objective_type = \"Maximize\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we'll create a `HyperparameterTuner` object, to which we pass:\n", + "- The `BlazingText` estimator we created above\n", + "- Our hyperparameter ranges\n", + "- Objective metric name and definition\n", + "- Tuning resource configurations such as Number of training jobs to run in total and how many training jobs can be run in parallel." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tuner = HyperparameterTuner(\n", + " estimator,\n", + " objective_metric_name,\n", + " hyperparameter_ranges,\n", + " max_jobs=6,\n", + " max_parallel_jobs=2,\n", + " objective_type=objective_type,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the hyper-parameters are set up, let us prepare the handshake between our data channels and the algorithm. To do this, we need to create the `sagemaker.inputs.TrainingInput` objects from our data channels. These objects are then put in a simple dictionary, which the algorithm consumes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_data = sagemaker.inputs.TrainingInput(\n", + " s3_train_data,\n", + " distribution=\"FullyReplicated\",\n", + " content_type=\"text/plain\",\n", + " s3_data_type=\"S3Prefix\",\n", + ")\n", + "validation_data = sagemaker.inputs.TrainingInput(\n", + " s3_validation_data,\n", + " distribution=\"FullyReplicated\",\n", + " content_type=\"text/plain\",\n", + " s3_data_type=\"S3Prefix\",\n", + ")\n", + "data_channels = {\"train\": train_data, \"validation\": validation_data}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have our `Estimator` object, we have set the hyper-parameters for this object, and we have our data channels linked with the algorithm. The only remaining thing to do is to train the algorithm. The following command will train the algorithm. Training the algorithm involves a few steps. Firstly, the instance that we requested while creating the `Estimator` classes is provisioned and is set up with the appropriate libraries. Then, the data from our channels are downloaded into the instance. Once this is done, the training job begins. The provisioning and data downloading will take some time, depending on the size of the data. Therefore, it might be a few minutes before we start getting training logs for our training jobs. The data logs will also print out Accuracy on the validation data for every epoch after training job has executed `min_epochs`. This metric is a proxy for the quality of the algorithm.\n", + "\n", + "A \"Job complete\" message will be printed once the job has finished. The trained model can be found in the S3 bucket that was set up as `output_path` in the estimator." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch hyperparameter tuning job\n", + "Now we can launch a hyperparameter tuning job by calling *fit()* function. After the hyperparameter tuning job is created, we can go to SageMaker console to track the progress of the hyperparameter tuning job until it is completed.\n", + "\n", + "This should take around 12 minutes to complete." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "tuner.fit(inputs=data_channels, logs=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze Results of a Hyperparameter Tuning job\n", + "\n", + "Once you have completed a tuning job, (or even while the job is still running) you can use the code below to analyze the results to understand how each hyperparameter effects the quality of the model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sm_client = boto3.Session().client(\"sagemaker\")\n", + "\n", + "tuning_job_name = tuner.latest_tuning_job.name\n", + "tuning_job_name" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Track hyperparameter tuning job progress\n", + "After you launch a tuning job, you can see its progress by calling `describe_tuning_job` API. The output from describe-tuning-job is a JSON object that contains information about the current state of the tuning job. You can call `list_training_jobs_for_tuning_job` to see a detailed list of the training jobs that the tuning job launched." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tuning_job_result = sm_client.describe_hyper_parameter_tuning_job(\n", + " HyperParameterTuningJobName=tuning_job_name\n", + ")\n", + "\n", + "status = tuning_job_result[\"HyperParameterTuningJobStatus\"]\n", + "if status != \"Completed\":\n", + " print(\"Reminder: the tuning job has not been completed.\")\n", + "\n", + "job_count = tuning_job_result[\"TrainingJobStatusCounters\"][\"Completed\"]\n", + "print(\"%d training jobs have completed\" % job_count)\n", + "\n", + "is_minimize = (\n", + " tuning_job_result[\"HyperParameterTuningJobConfig\"][\"HyperParameterTuningJobObjective\"][\"Type\"]\n", + " != \"Maximize\"\n", + ")\n", + "objective_name = tuning_job_result[\"HyperParameterTuningJobConfig\"][\n", + " \"HyperParameterTuningJobObjective\"\n", + "][\"MetricName\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pprint import pprint\n", + "\n", + "if tuning_job_result.get(\"BestTrainingJob\", None):\n", + " print(\"Best model found so far:\")\n", + " pprint(tuning_job_result[\"BestTrainingJob\"])\n", + "else:\n", + " print(\"No training jobs have reported results yet.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fetch all results as `DataFrame`\n", + "We can list hyperparameters and objective metrics of all training jobs and pick up the training job with the best objective metric." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "tuner_analytics = sagemaker.HyperparameterTuningJobAnalytics(tuning_job_name)\n", + "\n", + "full_df = tuner_analytics.dataframe()\n", + "\n", + "if len(full_df) > 0:\n", + " df = full_df[full_df[\"FinalObjectiveValue\"] > -float(\"inf\")]\n", + " if len(df) > 0:\n", + " df = df.sort_values(\"FinalObjectiveValue\", ascending=is_minimize)\n", + " print(\"Number of training jobs with valid objective: %d\" % len(df))\n", + " print({\"lowest\": min(df[\"FinalObjectiveValue\"]), \"highest\": max(df[\"FinalObjectiveValue\"])})\n", + " pd.set_option(\"display.max_colwidth\", -1) # Don't truncate TrainingJobName\n", + " else:\n", + " print(\"No training jobs have reported valid results yet.\")\n", + "\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy the best trained model\n", + "Once the training is done, we can deploy the trained model as an Amazon SageMaker real-time hosted endpoint. This will allow us to make predictions (or inference) from the model. Note that we don't have to host on the same type of instance that we used to train, because usually for inference, less compute power is needed than for training, and in addition, instance endpoints will be up and running for long, it's advisable to choose a cheaper instance for inference.\n", + "\n", + "- `ml.c4.4xlarge` - Compute Optimized instances are ideal for compute bound applications that benefit from high performance processors.\n", + "- `ml.m4.xlarge` - General purpose instances provide a balance of compute, memory and networking resources, and can be used for a variety of diverse workloads." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.serializers import JSONSerializer\n", + "\n", + "text_classifier = tuner.deploy(\n", + " initial_instance_count=1, instance_type=\"ml.m4.xlarge\", serializer=JSONSerializer()\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Use JSON format for inference\n", + "BlazingText supports `application/json` as the content-type for inference. The payload should contain a list of sentences with the key as \"**instances**\" while being passed to the endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sentences = [\n", + " \"The modem is an internal AT/(E)ISA 8-bit card (just a little longer than a half-card).\",\n", + " \"In the cage I usually wave to bikers. They usually don't wave back. My wife thinks it's strange but I don't care.\",\n", + " \"Voyager has the unusual luck to be on a stable trajectory out of the solar system.\",\n", + "]\n", + "\n", + "# using the same processing logic that we used during data preparation for training\n", + "processed_sentences = process_text(sentences)\n", + "\n", + "print(processed_sentences)\n", + "\n", + "payload = {\"instances\": processed_sentences}\n", + "\n", + "response = text_classifier.predict(payload)\n", + "\n", + "predictions = json.loads(response)\n", + "print(json.dumps(predictions, indent=2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, the model will return only one prediction, the one with the highest probability. For retrieving the top k predictions, you can set `k` in the configuration as shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "payload = {\"instances\": processed_sentences, \"configuration\": {\"k\": 2}}\n", + "\n", + "response = text_classifier.predict(payload)\n", + "\n", + "predictions = json.loads(response)\n", + "print(json.dumps(predictions, indent=2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Clean up\n", + "Endpoints should be deleted when no longer in use, since (per the [SageMaker pricing page](https://aws.amazon.com/sagemaker/pricing/)) they're billed by time deployed.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "text_classifier.delete_endpoint()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (Data Science)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/datascience-1.0" + }, + "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.10" + }, + "notice": "Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/hyperparameter_tuning/huggingface_multiclass_text_classification_20_newsgroups/code/train.py b/hyperparameter_tuning/huggingface_multiclass_text_classification_20_newsgroups/code/train.py new file mode 100644 index 0000000000..bc67dae161 --- /dev/null +++ b/hyperparameter_tuning/huggingface_multiclass_text_classification_20_newsgroups/code/train.py @@ -0,0 +1,101 @@ +from transformers import AutoModelForSequenceClassification, Trainer, TrainingArguments, AutoTokenizer +from sklearn.metrics import accuracy_score, precision_recall_fscore_support +from datasets import load_from_disk +from datasets import load_metric +import numpy as np +import random +import logging +import sys +import argparse +import os +import torch + + +metric = load_metric("accuracy") + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + + # hyperparameters sent by the client are passed as command-line arguments to the script. + parser.add_argument("--epochs", type=int, default=3) + parser.add_argument("--train-batch-size", type=int, default=32) + parser.add_argument("--num_labels", type=int, default=6) + parser.add_argument("--eval-batch-size", type=int, default=64) + parser.add_argument("--warmup_steps", type=int, default=500) + parser.add_argument("--model_name", type=str) + parser.add_argument("--learning_rate", type=str, default=5e-5) + + # Data, model, and output directories + parser.add_argument("--output-data-dir", type=str, default=os.environ["SM_OUTPUT_DATA_DIR"]) + parser.add_argument("--model-dir", type=str, default=os.environ["SM_MODEL_DIR"]) + parser.add_argument("--n_gpus", type=str, default=os.environ["SM_NUM_GPUS"]) + parser.add_argument("--training_dir", type=str, default=os.environ["SM_CHANNEL_TRAIN"]) + parser.add_argument("--test_dir", type=str, default=os.environ["SM_CHANNEL_TEST"]) + + args, _ = parser.parse_known_args() + + # Set up logging + logger = logging.getLogger(__name__) + + logging.basicConfig( + level=logging.getLevelName("INFO"), + handlers=[logging.StreamHandler(sys.stdout)], + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", + ) + + # load datasets + train_dataset = load_from_disk(args.training_dir) + test_dataset = load_from_disk(args.test_dir) + + logger.info(f" loaded train_dataset length is: {len(train_dataset)}") + logger.info(f" loaded test_dataset length is: {len(test_dataset)}") + + # compute metrics function for multi class classification + def compute_metrics(eval_pred): + logits, labels = eval_pred + predictions = np.argmax(logits, axis=-1) + return metric.compute(predictions=predictions, references=labels) + + # download model from model hub + model = AutoModelForSequenceClassification.from_pretrained(args.model_name, num_labels=args.num_labels) + tokenizer = AutoTokenizer.from_pretrained(args.model_name) + + # define training args + training_args = TrainingArguments( + output_dir=args.model_dir, + num_train_epochs=args.epochs, + per_device_train_batch_size=args.train_batch_size, + per_device_eval_batch_size=args.eval_batch_size, + warmup_steps=args.warmup_steps, + evaluation_strategy="epoch", + logging_dir=f"{args.output_data_dir}/logs", + learning_rate=float(args.learning_rate), + ) + + # create Trainer instance + trainer = Trainer( + model=model, + args=training_args, + compute_metrics=compute_metrics, + train_dataset=train_dataset, + eval_dataset=test_dataset, + tokenizer=tokenizer, + ) + + # train model + trainer.train() + + # evaluate model + eval_result = trainer.evaluate(eval_dataset=test_dataset) + + # writes eval result to file which can be accessed later in s3 ouput + with open(os.path.join(args.output_data_dir, "eval_results.txt"), "w") as writer: + print(f"***** Eval results *****") + for key, value in sorted(eval_result.items()): + writer.write(f"{key} = {value}\n") + + # Saves the model to s3 + trainer.save_model(args.model_dir) + diff --git a/hyperparameter_tuning/huggingface_multiclass_text_classification_20_newsgroups/hpo_huggingface_text_classification_20_newsgroups.ipynb b/hyperparameter_tuning/huggingface_multiclass_text_classification_20_newsgroups/hpo_huggingface_text_classification_20_newsgroups.ipynb new file mode 100644 index 0000000000..0029cfa3d0 --- /dev/null +++ b/hyperparameter_tuning/huggingface_multiclass_text_classification_20_newsgroups/hpo_huggingface_text_classification_20_newsgroups.ipynb @@ -0,0 +1,1377 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Text Classification with Amazon SageMaker HuggingFace and Hyperparameter Tuning\n", + "\n", + "Automatic model tuning, also known as hyperparameter tuning, finds the best version of a model by running many jobs that test a range of hyperparameters on your dataset. You choose the tunable hyperparameters, a range of values for each, and an objective metric. You choose the objective metric from the metrics that the algorithm computes. Automatic model tuning searches the hyperparameters chosen to find the combination of values that result in the model that optimizes the objective metric.\n", + "\n", + "\n", + "## Introduction\n", + "\n", + "Text Classification can be used to solve various use-cases like sentiment analysis, spam detection, hashtag prediction etc. \n", + "\n", + "\n", + "This notebook demonstrates the use of the [HuggingFace `transformers` library](https://huggingface.co/transformers/) together with a custom Amazon sagemaker-sdk extension to fine-tune a pre-trained transformer on multi class text classification. In particular, the pre-trained model will be fine-tuned using the [`20 newsgroups dataset`](http://qwone.com/~jason/20Newsgroups/). To get started, we need to set up the environment with a few prerequisite steps, for permissions, configurations, and so on." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Install Python packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "!{sys.executable} -m pip install \"scikit_learn==0.20.0\" \"sagemaker>=2.48.0\" \"transformers==4.6.1\" \"datasets[s3]==1.6.2\" \"nltk==3.4.4\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you run this notebook in SageMaker Studio, you need to make sure `ipywidgets` is installed and restart the kernel, so please uncomment the code in the next cell, and run it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# %%capture\n", + "# import IPython\n", + "# import sys\n", + "\n", + "# !{sys.executable} -m pip install ipywidgets\n", + "# IPython.Application.instance().kernel.do_shutdown(True) # has to restart kernel so changes are used" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup\n", + "\n", + "Let's start by specifying:\n", + "\n", + "- The S3 bucket and prefix that you want to use for training and model data. This should be within the same region as the Notebook Instance, training, and hosting. If you don't specify a bucket, SageMaker SDK will create a default bucket following a pre-defined naming convention in the same region. \n", + "- The IAM role ARN used to give SageMaker access to your data. It can be fetched using the **get_execution_role** method from sagemaker python SDK." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "isConfigCell": true + }, + "outputs": [], + "source": [ + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "import json\n", + "import boto3\n", + "import pandas as pd\n", + "import re\n", + "import string\n", + "from sklearn.model_selection import train_test_split\n", + "import sagemaker.huggingface\n", + "\n", + "\n", + "sess = sagemaker.Session()\n", + "\n", + "role = get_execution_role()\n", + "print(\n", + " role\n", + ") # This is the role that SageMaker would use to leverage AWS resources (S3, CloudWatch) on your behalf\n", + "\n", + "bucket = sess.default_bucket() # Replace with your own bucket name if needed\n", + "print(bucket)\n", + "s3_prefix = \"huggingface/20_newsgroups\" # Replace with the prefix under which you want to store the data if needed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Data Preparation\n", + "\n", + "Now we'll download a dataset from the web on which we want to train the text classification model.\n", + "\n", + "In this example, let us train the text classification model on the [`20 newsgroups dataset`](http://qwone.com/~jason/20Newsgroups/). The `20 newsgroups dataset` consists of 20000 messages taken from 20 Usenet newsgroups." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import shutil\n", + "\n", + "data_dir = \"20_newsgroups_bulk\"\n", + "if os.path.exists(data_dir): # cleanup existing data folder\n", + " shutil.rmtree(data_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp s3://sagemaker-sample-files/datasets/text/20_newsgroups/20_newsgroups_bulk.tar.gz ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!tar xzf 20_newsgroups_bulk.tar.gz\n", + "!ls 20_newsgroups_bulk" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "file_list = [os.path.join(data_dir, f) for f in os.listdir(data_dir)]\n", + "print(\"Number of files:\", len(file_list))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "documents_count = 0\n", + "for file in file_list:\n", + " df = pd.read_csv(file, header=None, names=[\"text\"])\n", + " documents_count = documents_count + df.shape[0]\n", + "print(\"Number of documents:\", documents_count)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's inspect the dataset files and analyze the categories." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "categories_list = [f.split(\"/\")[1] for f in file_list]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "categories_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the dataset consists of 20 topics, each in different file." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us inspect the dataset to get some understanding about how the data and the label is provided in the dataset. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"./20_newsgroups_bulk/rec.motorcycles\", header=None, names=[\"text\"])\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"text\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"./20_newsgroups_bulk/comp.sys.mac.hardware\", header=None, names=[\"text\"])\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[\"text\"][0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can see from the above, there is a single file for each class in the dataset. Each record is just a plain text paragraphs with header, body, footer and quotes. We will need to process them into a suitable data format." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data Preprocessing\n", + "We need to preprocess the dataset to remove the header, footer, quotes, leading/trailing whitespace, extra spaces, tabs, and HTML tags/markups. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Download the `nltk` tokenizer and other libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import nltk\n", + "from nltk.tokenize import word_tokenize\n", + "\n", + "nltk.download(\"punkt\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets.twenty_newsgroups import (\n", + " strip_newsgroup_header,\n", + " strip_newsgroup_quoting,\n", + " strip_newsgroup_footer,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This following function will remove the header, footer and quotes (of earlier messages in each text)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def strip_newsgroup_item(item):\n", + " item = strip_newsgroup_header(item)\n", + " item = strip_newsgroup_quoting(item)\n", + " item = strip_newsgroup_footer(item)\n", + " return item" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function will take care of removing leading/trailing whitespace, extra spaces, tabs, and HTML tags/markups." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def process_text(texts):\n", + " final_text_list = []\n", + " for text in texts:\n", + "\n", + " # Check if the sentence is a missing value\n", + " if isinstance(text, str) == False:\n", + " text = \"\"\n", + "\n", + " filtered_sentence = []\n", + "\n", + " # Lowercase\n", + " text = text.lower()\n", + "\n", + " # Remove leading/trailing whitespace, extra space, tabs, and HTML tags/markups\n", + " text = text.strip()\n", + " text = re.sub(\"\\[.*?\\]\", \"\", text)\n", + " text = re.sub(\"https?://\\S+|www\\.\\S+\", \"\", text)\n", + " text = re.sub(\"<.*?>+\", \"\", text)\n", + " text = re.sub(\"[%s]\" % re.escape(string.punctuation), \"\", text)\n", + " text = re.sub(\"\\n\", \"\", text)\n", + " text = re.sub(\"\\w*\\d\\w*\", \"\", text)\n", + "\n", + " for w in word_tokenize(text):\n", + " # We are applying some custom filtering here, feel free to try different things\n", + " # Check if it is not numeric\n", + " if not w.isnumeric():\n", + " filtered_sentence.append(w)\n", + " final_string = \" \".join(filtered_sentence) # final string of cleaned words\n", + "\n", + " final_text_list.append(final_string)\n", + "\n", + " return final_text_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will read each of the `20_newsgroups` dataset files, call `strip_newsgroup_item` and `process_text` functions we defined earlier, and then aggregate all data into one dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df = pd.DataFrame()\n", + "\n", + "for file in file_list:\n", + " print(f\"Processing {file}\")\n", + " label = file.split(\"/\")[1]\n", + " df = pd.read_csv(file, header=None, names=[\"text\"])\n", + " df[\"text\"] = df[\"text\"].apply(strip_newsgroup_item)\n", + " df[\"text\"] = process_text(df[\"text\"].tolist())\n", + " df[\"label\"] = label\n", + " all_categories_df = all_categories_df.append(df, ignore_index=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's inspect how many categories there are in our dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In our dataset there are 20 categories which is too much, so we will combine the sub-categories." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# replace to politics\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"talk.politics.misc\": \"politics\",\n", + " \"talk.politics.guns\": \"politics\",\n", + " \"talk.politics.mideast\": \"politics\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "\n", + "# replace to recreational\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"rec.sport.hockey\": \"recreational\",\n", + " \"rec.sport.baseball\": \"recreational\",\n", + " \"rec.autos\": \"recreational\",\n", + " \"rec.motorcycles\": \"recreational\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "\n", + "# replace to religion\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"soc.religion.christian\": \"religion\",\n", + " \"talk.religion.misc\": \"religion\",\n", + " \"alt.atheism\": \"religion\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "\n", + "# replace to computer\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"comp.windows.x\": \"computer\",\n", + " \"comp.sys.ibm.pc.hardware\": \"computer\",\n", + " \"comp.os.ms-windows.misc\": \"computer\",\n", + " \"comp.graphics\": \"computer\",\n", + " \"comp.sys.mac.hardware\": \"computer\",\n", + " },\n", + " inplace=True,\n", + ")\n", + "# replace to sales\n", + "all_categories_df[\"label\"].replace({\"misc.forsale\": \"sales\"}, inplace=True)\n", + "\n", + "# replace to science\n", + "all_categories_df[\"label\"].replace(\n", + " {\n", + " \"sci.crypt\": \"science\",\n", + " \"sci.electronics\": \"science\",\n", + " \"sci.med\": \"science\",\n", + " \"sci.space\": \"science\",\n", + " },\n", + " inplace=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are left with 6 categories, which is much better." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's calculate number of words for each row." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"word_count\"] = all_categories_df[\"text\"].apply(lambda x: len(str(x).split()))\n", + "all_categories_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's get basic statistics about the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"word_count\"].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the mean value is around 159 words. However, there are outliers, such as a text with 11351 words. This can make it harder for the model to result in good performance. We will take care to drop those rows." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's drop empty rows first." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "no_text = all_categories_df[all_categories_df[\"word_count\"] == 0]\n", + "print(len(no_text))\n", + "\n", + "# drop these rows\n", + "all_categories_df.drop(no_text.index, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's drop the rows that are longer than 256 words, as it is a length close to the mean value of the word count. This is done to make it easy for the model to train without outliers. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "long_text = all_categories_df[all_categories_df[\"word_count\"] > 256]\n", + "print(len(long_text))\n", + "\n", + "# drop these rows\n", + "all_categories_df.drop(long_text.index, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's get basic statistics about the dataset after our outliers fixes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"word_count\"].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This looks much more balanced." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we drop the `word_count` columns as we will not need it anymore." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df.drop(columns=\"word_count\", axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's convert categorical label to integer number, in order to prepare the dataset for training." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "categories = all_categories_df[\"label\"].unique().tolist()\n", + "categories" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "categories.index(\"recreational\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"] = all_categories_df[\"label\"].apply(lambda x: categories.index(x))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_categories_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We partition the dataset into 80% training and 20% validation set and save to `csv` files." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_df, test_df = train_test_split(all_categories_df, test_size=0.2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_df.to_csv(\"train.csv\", index=None)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "test_df.to_csv(\"test.csv\", index=None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's inspect the label distribution in the training dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's inspect the label distribution in the test dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "test_df[\"label\"].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tokenization " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A tokenizer is in charge of preparing the inputs for a model. The library contains tokenizers for all the models. Most of the tokenizers are available in two flavors: a full python implementation and a “Fast” implementation based on the Rust library [tokenizers](https://github.com/huggingface/tokenizers). The “Fast” implementations allows:\n", + "\n", + " - A significant speed-up in particular when doing batched tokenization.\n", + " - Additional methods to map between the original string (character and words) and the token space (e.g. getting the index of the token comprising a given character or the span of characters corresponding to a given token). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datasets import load_dataset\n", + "from transformers import AutoTokenizer\n", + "\n", + "# tokenizer used in preprocessing\n", + "tokenizer_name = \"distilbert-base-uncased\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# download tokenizer\n", + "tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load train and test datasets\n", + "\n", + "Let's create a [Dataset](https://huggingface.co/docs/datasets/loading_datasets.html) from our local `csv` files for training and test we saved earlier." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset = load_dataset(\"csv\", data_files={\"train\": \"train.csv\", \"test\": \"test.csv\"})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset[\"train\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset[\"train\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset[\"test\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset[\"test\"][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# tokenizer helper function\n", + "def tokenize(batch):\n", + " return tokenizer(batch[\"text\"], padding=\"max_length\", truncation=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_dataset = dataset[\"train\"]\n", + "test_dataset = dataset[\"test\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tokenize train and test datasets\n", + "\n", + "Let's tokenize the train dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_dataset = train_dataset.map(tokenize, batched=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's tokenize the test dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "test_dataset = test_dataset.map(tokenize, batched=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set format for PyTorch" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_dataset = train_dataset.rename_column(\"label\", \"labels\")\n", + "train_dataset.set_format(\"torch\", columns=[\"input_ids\", \"attention_mask\", \"labels\"])\n", + "test_dataset = test_dataset.rename_column(\"label\", \"labels\")\n", + "test_dataset.set_format(\"torch\", columns=[\"input_ids\", \"attention_mask\", \"labels\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Uploading data to `sagemaker_session_bucket`\n", + "\n", + "After we processed the datasets, we are going to upload it to S3." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import botocore\n", + "from datasets.filesystems import S3FileSystem\n", + "\n", + "s3 = S3FileSystem()\n", + "\n", + "# save train_dataset to s3\n", + "training_input_path = f\"s3://{sess.default_bucket()}/{s3_prefix}/train\"\n", + "train_dataset.save_to_disk(training_input_path, fs=s3)\n", + "\n", + "# save test_dataset to s3\n", + "test_input_path = f\"s3://{sess.default_bucket()}/{s3_prefix}/test\"\n", + "test_dataset.save_to_disk(test_input_path, fs=s3)\n", + "\n", + "print(training_input_path)\n", + "print(test_input_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set up hyperparameter tuning job\n", + "Now that we are done with all the setup that is needed, we are ready to train our HuggingFace model. To begin, let us create a `HuggingFace` estimator object. This estimator will launch the training job." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Training the HuggingFace model for supervised text classification\n", + "\n", + "In order to create a sagemaker training job we need a `HuggingFace` Estimator. The Estimator handles end-to-end Amazon SageMaker training and deployment tasks. In an Estimator we define, which fine-tuning script should be used as `entry_point`, which `instance_type` should be used, which `hyperparameters` are passed in .....\n", + "\n", + "\n", + "\n", + "```python\n", + "huggingface_estimator = HuggingFace(entry_point='train.py',\n", + " source_dir='./code',\n", + " instance_type='ml.p3.2xlarge',\n", + " instance_count=1,\n", + " volume_size=256,\n", + " role=role,\n", + " transformers_version='4.6',\n", + " pytorch_version='1.7',\n", + " py_version='py36',\n", + " hyperparameters = {'epochs': 1,\n", + " 'model_name':'distilbert-base-uncased',\n", + " 'num_labels': 6\n", + " })\n", + "```\n", + "\n", + "When we create a SageMaker training job, SageMaker takes care of starting and managing all the required ec2 instances for us with the `huggingface` container, uploads the provided fine-tuning script `train.py` and downloads the data from our `sagemaker_session_bucket` into the container at `/opt/ml/input/data`. Then, it starts the training job by running. \n", + "\n", + "```python\n", + "/opt/conda/bin/python train.py --epochs 1 --model_name distilbert-base-uncased --num_labels 6\n", + "```\n", + "\n", + "The `hyperparameters` you define in the `HuggingFace` estimator are passed in as named arguments. \n", + "\n", + "SageMaker is providing useful properties about the training environment through various environment variables, including the following:\n", + "\n", + "* `SM_MODEL_DIR`: A string that represents the path where the training job writes the model artifacts to. After training, artifacts in this directory are uploaded to S3 for model hosting.\n", + "\n", + "* `SM_NUM_GPUS`: An integer representing the number of GPUs available to the host.\n", + "\n", + "* `SM_CHANNEL_XXXX:` A string that represents the path to the directory that contains the input data for the specified channel. For example, if you specify two input channels in the HuggingFace estimator’s fit call, named `train` and `test`, the environment variables `SM_CHANNEL_TRAIN` and `SM_CHANNEL_TEST` are set.\n", + "\n", + "\n", + "To run your training job locally you can define `instance_type='local'` or `instance_type='local-gpu'` for `gpu` usage. _Note: this does not work within SageMaker Studio_\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We create a metric_definition dictionary that contains regex-based definitions that will be used to parse the job logs and extract metrics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "metric_definitions = [\n", + " {\"Name\": \"loss\", \"Regex\": \"'loss': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\"Name\": \"learning_rate\", \"Regex\": \"'learning_rate': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\"Name\": \"eval_loss\", \"Regex\": \"'eval_loss': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\"Name\": \"eval_accuracy\", \"Regex\": \"'eval_accuracy': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\"Name\": \"eval_f1\", \"Regex\": \"'eval_f1': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\"Name\": \"eval_precision\", \"Regex\": \"'eval_precision': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\"Name\": \"eval_recall\", \"Regex\": \"'eval_recall': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\"Name\": \"eval_runtime\", \"Regex\": \"'eval_runtime': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + " {\n", + " \"Name\": \"eval_samples_per_second\",\n", + " \"Regex\": \"'eval_samples_per_second': ([0-9]+(.|e\\-)[0-9]+),?\",\n", + " },\n", + " {\"Name\": \"epoch\", \"Regex\": \"'epoch': ([0-9]+(.|e\\-)[0-9]+),?\"},\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.huggingface import HuggingFace\n", + "\n", + "# hyperparameters, which are passed into the training job\n", + "hyperparameters = {\"epochs\": 1, \"model_name\": \"distilbert-base-uncased\", \"num_labels\": 6}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's define the SageMaker `HuggingFace` estimator with resource configurations and hyperparameters to train Text Classification on `20 newsgroups` dataset, running on a `p3.2xlarge` instance." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "huggingface_estimator = HuggingFace(\n", + " entry_point=\"train.py\",\n", + " source_dir=\"./code\",\n", + " instance_type=\"ml.p3.2xlarge\",\n", + " instance_count=1,\n", + " volume_size=256,\n", + " role=role,\n", + " transformers_version=\"4.6\",\n", + " pytorch_version=\"1.7\",\n", + " py_version=\"py36\",\n", + " hyperparameters=hyperparameters,\n", + " metric_definitions=metric_definitions,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once we've defined our estimator we can specify the hyperparameters we'd like to tune and their possible values. We have three different types of hyperparameters.\n", + "- Categorical parameters need to take one value from a discrete set. We define this by passing the list of possible values to `CategoricalParameter(list)`\n", + "- Continuous parameters can take any real number value between the minimum and maximum value, defined by `ContinuousParameter(min, max)`\n", + "- Integer parameters can take any integer value between the minimum and maximum value, defined by `IntegerParameter(min, max)`\n", + "\n", + "*Note, if possible, it's almost always best to specify a value as the least restrictive type. For example, tuning learning rate as a continuous value between 0.01 and 0.2 is likely to yield a better result than tuning as a categorical parameter with values 0.01, 0.1, 0.15, or 0.2.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.tuner import (\n", + " IntegerParameter,\n", + " CategoricalParameter,\n", + " ContinuousParameter,\n", + " HyperparameterTuner,\n", + ")\n", + "\n", + "hyperparameter_ranges = {\n", + " \"train_batch_size\": IntegerParameter(8, 32),\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we'll specify the objective metric that we'd like to tune and its definition, which includes the regular expression (Regex) needed to extract that metric from the CloudWatch logs of the training job. If you bring your own algorithm, your algorithm emits metrics by itself. In that case, you'll need to add a `MetricDefinition` object here to define the format of those metrics through regex, so that SageMaker knows how to extract those metrics from your CloudWatch logs.\n", + "\n", + "In this case, we elected to monitor `eval_accuracy` as you can see below. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "objective_metric_name = \"eval_accuracy\"\n", + "objective_type = \"Maximize\"\n", + "hpo_metric_definitions = [\n", + " {\"Name\": \"eval_accuracy\", \"Regex\": \"'eval_accuracy': ([0-9]+(.|e\\-)[0-9]+),?\"}\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we'll create a `HyperparameterTuner` object, to which we pass:\n", + "- The `HuggingFace` estimator we created above\n", + "- Our hyperparameter ranges\n", + "- Objective metric name and definition\n", + "- Tuning resource configurations such as Number of training jobs to run in total and how many training jobs can be run in parallel." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tuner = HyperparameterTuner(\n", + " huggingface_estimator,\n", + " objective_metric_name,\n", + " hyperparameter_ranges,\n", + " hpo_metric_definitions,\n", + " max_jobs=6,\n", + " max_parallel_jobs=3,\n", + " objective_type=objective_type,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch hyperparameter tuning job\n", + "Now we can launch a hyperparameter tuning job by calling *fit()* function. After the hyperparameter tuning job is created, we can go to SageMaker console to track the progress of the hyperparameter tuning job until it is completed.\n", + "\n", + "This should take around 28 minutes to complete." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "tuner.fit({\"train\": training_input_path, \"test\": test_input_path}, logs=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analyze Results of a Hyperparameter Tuning job\n", + "\n", + "Once you have completed a tuning job, (or even while the job is still running) you can use the code below to analyze the results to understand how each hyperparameter effects the quality of the model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sm_client = boto3.Session().client(\"sagemaker\")\n", + "\n", + "tuning_job_name = tuner.latest_tuning_job.name\n", + "tuning_job_name" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Track hyperparameter tuning job progress\n", + "After you launch a tuning job, you can see its progress by calling `describe_tuning_job` API. The output from describe-tuning-job is a JSON object that contains information about the current state of the tuning job. You can call `list_training_jobs_for_tuning_job` to see a detailed list of the training jobs that the tuning job launched." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tuning_job_result = sm_client.describe_hyper_parameter_tuning_job(\n", + " HyperParameterTuningJobName=tuning_job_name\n", + ")\n", + "\n", + "status = tuning_job_result[\"HyperParameterTuningJobStatus\"]\n", + "if status != \"Completed\":\n", + " print(\"Reminder: the tuning job has not been completed.\")\n", + "\n", + "job_count = tuning_job_result[\"TrainingJobStatusCounters\"][\"Completed\"]\n", + "print(\"%d training jobs have completed\" % job_count)\n", + "\n", + "is_minimize = (\n", + " tuning_job_result[\"HyperParameterTuningJobConfig\"][\"HyperParameterTuningJobObjective\"][\"Type\"]\n", + " != \"Maximize\"\n", + ")\n", + "objective_name = tuning_job_result[\"HyperParameterTuningJobConfig\"][\n", + " \"HyperParameterTuningJobObjective\"\n", + "][\"MetricName\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pprint import pprint\n", + "\n", + "if tuning_job_result.get(\"BestTrainingJob\", None):\n", + " print(\"Best model found so far:\")\n", + " pprint(tuning_job_result[\"BestTrainingJob\"])\n", + "else:\n", + " print(\"No training jobs have reported results yet.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fetch all results as `DataFrame`\n", + "We can list hyperparameters and objective metrics of all training jobs and pick up the training job with the best objective metric." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "tuner_analytics = sagemaker.HyperparameterTuningJobAnalytics(tuning_job_name)\n", + "\n", + "full_df = tuner_analytics.dataframe()\n", + "\n", + "if len(full_df) > 0:\n", + " df = full_df[full_df[\"FinalObjectiveValue\"] > -float(\"inf\")]\n", + " if len(df) > 0:\n", + " df = df.sort_values(\"FinalObjectiveValue\", ascending=is_minimize)\n", + " print(\"Number of training jobs with valid objective: %d\" % len(df))\n", + " print({\"lowest\": min(df[\"FinalObjectiveValue\"]), \"highest\": max(df[\"FinalObjectiveValue\"])})\n", + " pd.set_option(\"display.max_colwidth\", -1) # Don't truncate TrainingJobName\n", + " else:\n", + " print(\"No training jobs have reported valid results yet.\")\n", + "\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy the best trained model\n", + "Once the training is done, we can deploy the trained model as an Amazon SageMaker real-time hosted endpoint. This will allow us to make predictions (or inference) from the model. Note that we don't have to host on the same type of instance that we used to train, because usually for inference, less compute power is needed than for training, and in addition, instance endpoints will be up and running for long, it's advisable to choose a cheaper instance for inference.\n", + "\n", + "- `ml.p3.2xlarge` - deliver high performance compute in the cloud with up to 8 NVIDIA® V100 Tensor Core GPUs and up to 100 `Gbps` of networking throughput for machine learning and HPC applications.\n", + "- `ml.g4dn.xlarge` - the industry’s most cost-effective and versatile GPU instances for deploying machine learning models such as image classification, object detection, and speech recognition, and for graphics-intensive applications such as remote graphics workstations, game streaming, and graphics rendering." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "predictor = tuner.deploy(1, \"ml.g4dn.xlarge\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we use the returned predictor object to call the endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def predict_sentence(sentence):\n", + " result = predictor.predict({\"inputs\": sentence})\n", + " index = int(result[0][\"label\"].split(\"LABEL_\")[1])\n", + " print(categories[index])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sentences = [\n", + " \"The modem is an internal AT/(E)ISA 8-bit card (just a little longer than a half-card).\",\n", + " \"In the cage I usually wave to bikers. They usually don't wave back. My wife thinks it's strange but I don't care.\",\n", + " \"Voyager has the unusual luck to be on a stable trajectory out of the solar system.\",\n", + "]\n", + "\n", + "# using the same processing logic that we used during data preparation for training\n", + "processed_sentences = process_text(sentences)\n", + "\n", + "for sentence in processed_sentences:\n", + " predict_sentence(sentence)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Clean up\n", + "Endpoints should be deleted when no longer in use, since (per the [SageMaker pricing page](https://aws.amazon.com/sagemaker/pricing/)) they're billed by time deployed.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "predictor.delete_endpoint()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (PyTorch 1.6 Python 3.6 CPU Optimized)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/pytorch-1.6-cpu-py36-ubuntu16.04-v1" + }, + "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.13" + }, + "notice": "Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/index.rst b/index.rst index f823354748..1f5fb324ed 100644 --- a/index.rst +++ b/index.rst @@ -43,6 +43,12 @@ On SageMaker Studio, you will need to open a terminal, go to your home folder, t end_to_end/fraud_detection/index end_to_end/music_recommendation/index +.. toctree:: + :maxdepth: 1 + :caption: Patterns + + patterns/ml_gateway/index + .. toctree:: :maxdepth: 1 diff --git a/ingest_data/011_Ingest_tabular_data_v1.ipynb b/ingest_data/011_Ingest_tabular_data_v1.ipynb index 8b76220430..c8214d3a6b 100644 --- a/ingest_data/011_Ingest_tabular_data_v1.ipynb +++ b/ingest_data/011_Ingest_tabular_data_v1.ipynb @@ -13,21 +13,21 @@ "* Using AWS native methods to directly access your data. You can also use AWS native packages like `s3fs` and `aws data wrangler` to access your data directly. \n", "\n", "We will demonstrate how to ingest the following tabular (structured) into a notebook for further analysis:\n", - "## Tabular data: Boston Housing Data\n", - "The [Boston House](https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html) contains information collected by the U.S Census Service concerning housing in the area of Boston Mass. We will use the data set to showcase how to ingest tabular data into S3, and for further pre-processing and feature engineering. The dataset contains the following columns (506 rows):\n", - "* `CRIM` - per capita crime rate by town\n", - "* `ZN` - proportion of residential land zoned for lots over 25,000 sq.ft.\n", - "* `INDUS` - proportion of non-retail business acres per town.\n", - "* `CHAS` - Charles River dummy variable (1 if tract bounds river; 0 otherwise)\n", - "* `NOX` - nitric oxides concentration (parts per 10 million)\n", - "* `RM` - average number of rooms per dwelling\n", - "* `AGE` - proportion of owner-occupied units built prior to 1940\n", - "* `DIS` - weighted distances to five Boston employment centres\n", - "* `RAD` - index of accessibility to radial highways\n", - "* `TAX` - full-value property-tax rate per \\$10,000\n", - "* `PTRATIO` - pupil-teacher ratio by town\n", - "* `B` - 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n", - "* `LSTAT` - \\% lower status of the population" + "## Tabular data: California Housing Data\n", + "The [California Housing](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html) dataset contains information from the 1990 California census. We will use the data set to showcase how to ingest tabular data into S3, and for further pre-processing and feature engineering. The dataset contains the following columns:\n", + "\n", + "* `MedInc` - average income.\n", + "* `HouseAge` - housing average age.\n", + "* `AveRooms` - average rooms.\n", + "* `AveBedrms` - average bedrooms.\n", + "* `Population` - population.\n", + "* `AveOccup` - average occupation.\n", + "* `Latitude` - latitude.\n", + "* `Longitude` - longitude.\n", + "\n", + "The California Housing dataset was originally published in:\n", + "\n", + "> Pace, R. Kelley, and Ronald Barry. \"Sparse spatial autoregressions.\" Statistics & Probability Letters 33.3 (1997): 291-297." ] }, { @@ -58,8 +58,8 @@ "import s3fs\n", "import sagemaker\n", "\n", - "# to load the boston housing dataset\n", - "from sklearn.datasets import *" + "# to load the California housing dataset\n", + "from sklearn.datasets import fetch_california_housing" ] }, { @@ -72,8 +72,8 @@ "sagemaker_session = sagemaker.Session()\n", "s3 = sagemaker_session.boto_session.resource(\"s3\")\n", "bucket = sagemaker_session.default_bucket() # replace with your own bucket name if you have one\n", - "prefix = \"data/tabular/boston_house\"\n", - "filename = \"boston_house.csv\"" + "prefix = \"data/tabular/california_housing\"\n", + "filename = \"california_housing.csv\"" ] }, { @@ -103,10 +103,10 @@ "outputs": [], "source": [ "# download files from tabular data source location\n", - "tabular_data = load_boston()\n", + "tabular_data = fetch_california_housing()\n", "tabular_data_full = pd.DataFrame(tabular_data.data, columns=tabular_data.feature_names)\n", "tabular_data_full[\"target\"] = pd.DataFrame(tabular_data.target)\n", - "tabular_data_full.to_csv(\"boston_house.csv\", index=False)" + "tabular_data_full.to_csv(\"california_housing.csv\", index=False)" ] }, { @@ -219,14 +219,6 @@ "wr_data = wr.s3.read_csv(path=data_wr_location, nrows=5)\n", "wr_data.head()" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Citation\n", - "Boston Housing data, Harrison, D. and Rubinfeld, D.L. `Hedonic prices and the demand for clean air', J. Environ. Economics & Management, vol.5, 81-102, 1978." - ] } ], "metadata": { @@ -245,7 +237,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/ingest_data/02_Ingest_data_with_Athena_v1.ipynb b/ingest_data/02_Ingest_data_with_Athena_v1.ipynb index a8c0718393..24ff1cf846 100644 --- a/ingest_data/02_Ingest_data_with_Athena_v1.ipynb +++ b/ingest_data/02_Ingest_data_with_Athena_v1.ipynb @@ -95,7 +95,7 @@ "from sagemaker import get_execution_role\n", "import os\n", "import sys\n", - "from sklearn.datasets import *\n", + "from sklearn.datasets import fetch_california_housing\n", "import pandas as pd\n", "from botocore.exceptions import ClientError\n", "\n", @@ -110,8 +110,8 @@ "s3 = sagemaker_session.boto_session.resource(\"s3\")\n", "role = sagemaker.get_execution_role()\n", "role_name = role.split(\"/\")[-1]\n", - "prefix = \"data/tabular/boston_house\"\n", - "filename = \"boston_house.csv\"" + "prefix = \"data/tabular/california_housing\"\n", + "filename = \"california_housing.csv\"" ] }, { @@ -121,6 +121,15 @@ "### Download data from online resources and write data to S3" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This example uses the California Housing dataset, which was originally published in:\n", + "\n", + "> Pace, R. Kelley, and Ronald Barry. \"Sparse spatial autoregressions.\" Statistics & Probability Letters 33.3 (1997): 291-297." + ] + }, { "cell_type": "code", "execution_count": null, @@ -147,10 +156,10 @@ "metadata": {}, "outputs": [], "source": [ - "tabular_data = load_boston()\n", + "tabular_data = fetch_california_housing()\n", "tabular_data_full = pd.DataFrame(tabular_data.data, columns=tabular_data.feature_names)\n", "tabular_data_full[\"target\"] = pd.DataFrame(tabular_data.target)\n", - "tabular_data_full.to_csv(\"boston_house.csv\", index=False)\n", + "tabular_data_full.to_csv(\"california_housing.csv\", index=False)\n", "\n", "upload_to_s3(bucket, \"data/tabular\", filename)" ] @@ -186,7 +195,9 @@ " print(\"IAMFullAccessPolicy Already Attached\")\n", "except ClientError as e:\n", " if e.response[\"Error\"][\"Code\"] == \"AccessDenied\":\n", - " print(\"You need to attach the IAMFullAccess policy in order to attach policy to the role.\")\n", + " print(\n", + " \"ERROR: You need to attach the IAMFullAccess policy in order to attach policy to the role.\"\n", + " )\n", " else:\n", " print(\"Unexpected error: %s\" % e)" ] @@ -325,7 +336,7 @@ "outputs": [], "source": [ "# Set Athena database name\n", - "database_name = \"tabularbh\"" + "database_name = \"tabular_california_housing\"" ] }, { @@ -379,7 +390,7 @@ "outputs": [], "source": [ "prefix = \"data/tabular\"\n", - "filename_key = \"boston_house\"" + "filename_key = \"california_housing\"" ] }, { @@ -397,7 +408,7 @@ "metadata": {}, "outputs": [], "source": [ - "table_name_csv = \"boston_house_athena\"" + "table_name_csv = \"california_housing_athena\"" ] }, { @@ -407,21 +418,17 @@ "outputs": [], "source": [ "# SQL statement to execute\n", + "\n", "statement = \"\"\"CREATE EXTERNAL TABLE IF NOT EXISTS {}.{}(\n", - " CRIM double,\n", - " ZN double,\n", - " INDUS double,\n", - " CHAS double,\n", - " NOX double,\n", - " RM double,\n", - " AGE double,\n", - " DIS double, \n", - " RAD double, \n", - " TAX double,\n", - " PTRATIO double, \n", - " B double, \n", - " LSTAT double,\n", - " target double\n", + " MedInc double,\n", + " HouseAge double,\n", + " AveRooms double,\n", + " AveBedrms double,\n", + " Population double,\n", + " AveOccup double,\n", + " Latitude double,\n", + " Longitude double, \n", + " MedValue double\n", "\n", ") ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\\\n' LOCATION '{}'\n", "TBLPROPERTIES ('skip.header.line.count'='1')\"\"\".format(\n", @@ -546,7 +553,6 @@ "metadata": {}, "source": [ "### Citation\n", - "Boston Housing data, Harrison, D. and Rubinfeld, D.L. `Hedonic prices and the demand for clean air', J. Environ. Economics & Management, vol.5, 81-102, 1978.\n", "\n", "Data Science On AWS workshops, Chris Fregly, Antje Barth, https://www.datascienceonaws.com/" ] @@ -568,7 +574,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/ingest_data/03_Ingest_data_with_Redshift_v3.ipynb b/ingest_data/03_Ingest_data_with_Redshift_v3.ipynb index a5a81b5501..9efa17400e 100644 --- a/ingest_data/03_Ingest_data_with_Redshift_v3.ipynb +++ b/ingest_data/03_Ingest_data_with_Redshift_v3.ipynb @@ -82,28 +82,29 @@ "" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dataset\n", + "\n", + "This example uses the California Housing dataset, which was originally published in:\n", + "\n", + "> Pace, R. Kelley, and Ronald Barry. \"Sparse spatial autoregressions.\" Statistics & Probability Letters 33.3 (1997): 291-297." + ] + }, { "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mWARNING: You are using pip version 20.0.2; however, version 20.2.4 is available.\n", - "You should consider upgrading via the '/home/ec2-user/anaconda3/envs/python3/bin/python -m pip install --upgrade pip' command.\u001b[0m\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "%pip install -qU 'sagemaker>=2.15.0' 'PyAthena==1.10.7' 'awswrangler==1.2.0' 'SQLAlchemy==1.3.13'" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -127,13 +128,13 @@ "sagemaker_session = sagemaker.Session()\n", "bucket = sagemaker_session.default_bucket() # replace with your own bucket name if you have one\n", "role = sagemaker.get_execution_role()\n", - "prefix = \"data/tabular/boston_house\"\n", - "filename = \"boston_house.csv\"" + "prefix = \"data/tabular/california_housing\"\n", + "filename = \"california_housing.csv\"" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -146,17 +147,9 @@ }, { "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Your Role name used to create this notebook is: AmazonSageMaker-ExecutionRole-20201006T125078\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "role_name = role.split(\"/\")[-1]\n", "print(\"Your Role name used to create this notebook is: {}\".format(role_name))" @@ -171,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -191,22 +184,14 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Writing to s3://sagemaker-us-east-2-060356833389/data/tabular/boston_house.csv\n" - ] - } - ], - "source": [ - "tabular_data = load_boston()\n", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tabular_data = fetch_california_housing()\n", "tabular_data_full = pd.DataFrame(tabular_data.data, columns=tabular_data.feature_names)\n", "tabular_data_full[\"target\"] = pd.DataFrame(tabular_data.target)\n", - "tabular_data_full.to_csv(\"boston_house.csv\", index=False)\n", + "tabular_data_full.to_csv(\"california_housing.csv\", index=False)\n", "\n", "upload_to_s3(bucket, \"data/tabular\", filename)" ] @@ -221,7 +206,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -239,17 +224,9 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Role already exists\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Create Role\n", "iam_redshift_role_name = \"Tabular_Redshift\"\n", @@ -268,18 +245,9 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Your Role arn used to create a Redshift Cluster is: arn:aws:iam::060356833389:role/Tabular_Redshift\n", - "arn:aws:iam::060356833389:role/Tabular_Redshift\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# get role arn\n", "role_rs = iam.get_role(RoleName=\"Tabular_Redshift\")\n", @@ -301,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -314,7 +282,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -393,17 +361,9 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Policy already exists\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "try:\n", " policy_redshift_s3 = iam.create_policy(\n", @@ -422,17 +382,9 @@ }, { "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Policy already exists\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "try:\n", " policy_redshift_athena = iam.create_policy(\n", @@ -459,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -477,7 +429,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -505,17 +457,9 @@ }, { "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Policy SecretsManagerReadWrite has been succesfully attached to role: AmazonSageMaker-ExecutionRole-20201006T125078\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# making sure you have secret manager policy attached to role\n", "try:\n", @@ -533,17 +477,9 @@ }, { "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Policy AmazonRedshiftFullAccess has been succesfully attached to role: AmazonSageMaker-ExecutionRole-20201006T125078\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# making sure you have RedshiftFullAccess policy attached to role\n", "from botocore.exceptions import ClientError\n", @@ -573,7 +509,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -588,9 +524,13 @@ "source": [ "### Create Secret in Secrets Manager\n", "\n", + "__Your IAM role will need permission to create a secret and get its value.__ This can be accomplished with the SecretsManagerReadWrite managed policy.\n", + "\n", "AWS Secrets Manager is a service that enables you to easily rotate, manage, and retrieve database credentials, API keys, and other secrets throughout their lifecycle. Using Secrets Manager, you can secure and manage secrets used to access resources in the AWS Cloud, on third-party services, and on-premises.\n", "\n", - "*note that `MasterUserPassword` must contain at least 1 upper case letter and at least 1 decimal digit." + "*note that `MasterUserPassword` must contain at least 1 upper case letter and at least 1 decimal digit.\n", + "\n", + "Ensure that you change the secret password to be unique and secure." ] }, { @@ -604,8 +544,8 @@ "try:\n", " response = secretsmanager.create_secret(\n", " Name=\"tabular_redshift_login\",\n", - " Description=\"Boston House data New Cluster Redshift Login\",\n", - " SecretString='[{\"username\":\"awsuser\"},{\"password\":\"Bostonhouse1\"}]',\n", + " Description=\"California Housing data New Cluster Redshift Login\",\n", + " SecretString='[{\"username\":\"awsuser\"},{\"password\":\"Californiahousing1\"}]',\n", " Tags=[\n", " {\"Key\": \"name\", \"Value\": \"tabular_redshift_login\"},\n", " ],\n", @@ -643,7 +583,7 @@ "# Set up parameters\n", "# Redshift configuration parameters\n", "redshift_cluster_identifier = \"redshiftdemo\"\n", - "database_name = \"bostonhouse\"\n", + "database_name = \"california_housing\"\n", "cluster_type = \"multi-node\"\n", "\n", "node_type = \"dc2.large\"\n", @@ -698,7 +638,7 @@ " NumberOfNodes=int(number_nodes),\n", " MasterUsername=master_user_name,\n", " MasterUserPassword=master_user_pw,\n", - " ClusterSubnetGroupName=\"cluster-subnet-group-1\", # you can either specify an existing subnet group (change this to your Subnet Group name), or specify your security group below\n", + " # ClusterSubnetGroupName=\"\", # you can either specify an existing subnet group (change this to your Subnet Group name), or use the security group ID that was retrieved above\n", " IamRoles=[iam_role_redshift_arn],\n", " VpcSecurityGroupIds=[security_group_id],\n", " Port=5439,\n", @@ -790,15 +730,15 @@ "source": [ "redshift_cluster_identifier = \"redshiftdemo\"\n", "\n", - "database_name_redshift = \"bostonhouse\"\n", - "database_name_athena = \"tabularbh\"\n", + "database_name_redshift = \"california_housing\"\n", + "database_name_athena = \"tabular_california_housing\"\n", "\n", "redshift_port = \"5439\"\n", "\n", "schema_redshift = \"redshift\"\n", "schema_spectrum = \"spectrum\"\n", "\n", - "table_name_csv = \"boston_house_athena\"" + "table_name_csv = \"california_housing_athena\"" ] }, { @@ -817,7 +757,7 @@ "# check cluster status\n", "response = redshift.describe_clusters(ClusterIdentifier=redshift_cluster_identifier)\n", "cluster_status = response[\"Clusters\"][0][\"ClusterStatus\"]\n", - "print(cluster_status)" + "print(\"Cluster status is:\", cluster_status)" ] }, { @@ -972,20 +912,15 @@ "statement = \"\"\"\n", "rollback;\n", "create table if not exists redshift.{}(\n", - " CRIM float,\n", - " ZN float,\n", - " INDUS float,\n", - " CHAS float,\n", - " NOX float,\n", - " RM float,\n", - " AGE float,\n", - " DIS float, \n", - " RAD float, \n", - " TAX float,\n", - " PTRATIO float, \n", - " B float, \n", - " LSTAT float,\n", - " target float)\"\"\".format(\n", + " MedInc float,\n", + " HouseAge float,\n", + " AveRooms float,\n", + " AveBedrms float,\n", + " Population float,\n", + " AveOccup float,\n", + " Latitude float,\n", + " Longitude float, \n", + " MedValue float)\"\"\".format(\n", " table_name_redshift\n", ")\n", "\n", @@ -1063,20 +998,15 @@ "statement = \"\"\"\n", "rollback;\n", "create table if not exists redshift.{}(\n", - " CRIM float,\n", - " ZN float,\n", - " INDUS float,\n", - " CHAS float,\n", - " NOX float,\n", - " RM float,\n", - " AGE float,\n", - " DIS float, \n", - " RAD float, \n", - " TAX float,\n", - " PTRATIO float, \n", - " B float, \n", - " LSTAT float,\n", - " target float)\"\"\".format(\n", + " MedInc float,\n", + " HouseAge float,\n", + " AveRooms float,\n", + " AveBedrms float,\n", + " Population float,\n", + " AveOccup float,\n", + " Latitude float,\n", + " Longitude float, \n", + " MedValue float)\"\"\".format(\n", " table_name_redshift\n", ")\n", "\n", @@ -1099,7 +1029,7 @@ "outputs": [], "source": [ "table_name_redshift = table_name_csv + \"_\" + \"redshift_copy\"\n", - "data_s3_path = \"s3://sagemaker-us-east-2-060356833389/data/tabular/boston_house/boston_house.csv\"\n", + "data_s3_path = \"s3://{}/data/tabular/california_housing/california_housing.csv\".format(bucket)\n", "statement = \"\"\"\n", "rollback;\n", "copy redshift.{} \n", @@ -1174,6 +1104,18 @@ "https://aws-data-wrangler.readthedocs.io/en/latest/stubs/awswrangler.db.get_engine.html#awswrangler.db.get_engine" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "private_ip = redshift.describe_clusters(ClusterIdentifier=redshift_cluster_identifier)[\"Clusters\"][\n", + " 0\n", + "][\"ClusterNodes\"][0][\"PrivateIPAddress\"]\n", + "print(\"Private IP address is: \", private_ip)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -1182,7 +1124,7 @@ "source": [ "engine = wr.db.get_engine(\n", " db_type=\"postgresql\",\n", - " host=\"10.0.14.121\", # Private IP address of your Redshift Cluster\n", + " host=private_ip, # Private IP address of your Redshift Cluster\n", " port=redshift_port,\n", " database=database_name_redshift,\n", " user=master_user_name,\n", @@ -1213,7 +1155,6 @@ "metadata": {}, "source": [ "### Citation\n", - "Boston Housing data, Harrison, D. and Rubinfeld, D.L. `Hedonic prices and the demand for clean air', J. Environ. Economics & Management, vol.5, 81-102, 1978.\n", "\n", "Data Science On AWS workshops, Chris Fregly, Antje Barth, https://www.datascienceonaws.com/" ] @@ -1221,9 +1162,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "conda_python3", "language": "python", - "name": "python3" + "name": "conda_python3" }, "language_info": { "codemirror_mode": { @@ -1235,7 +1176,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/ingest_data/index.rst b/ingest_data/index.rst index cb08f40cba..28092253d9 100644 --- a/ingest_data/index.rst +++ b/ingest_data/index.rst @@ -30,7 +30,7 @@ Athena You can use Amazon Athena as a data source for SageMaker. Athena is a serverless interactive query service that makes it easy to analyze your S3 data with standard SQL. -This example runs the Boston housing dataset and uses PyAthena, a Python client for Athena, and `awswrangler`, a Pandas-like interface to many AWS data platforms. +This example runs the California housing dataset and uses PyAthena, a Python client for Athena, and `awswrangler`, a Pandas-like interface to many AWS data platforms. .. toctree:: :maxdepth: 1 @@ -43,7 +43,7 @@ EMR You can use Amazon EMR as a data source for SageMaker. While EMR supports is used for processing large amounts of data from a variety of sources, SageMaker-EMR examples focus on Apache Spark. -This example runs the Boston housing dataset. +This example runs the California housing dataset. .. toctree:: :maxdepth: 1 @@ -56,7 +56,7 @@ Redshift You can use Amazon Redshift as a data source for SageMaker. Redshift is a fully managed data warehouse that allows you to run complex analytic queries against petabytes of structured data. -This example runs the Boston housing dataset and uses `awswrangler`, a Pandas-like interface to many AWS data platforms. +This example runs the California housing dataset and uses `awswrangler`, a Pandas-like interface to many AWS data platforms. .. toctree:: diff --git a/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format-highlevel.ipynb b/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format-highlevel.ipynb index 054180e53c..9bb4f6e966 100644 --- a/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format-highlevel.ipynb +++ b/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format-highlevel.ipynb @@ -7,7 +7,7 @@ "# Image classification training with image format demo\n", "\n", "1. [Introduction](#Introduction)\n", - "2. [Prerequisites and Preprocessing](#Prequisites-and-Preprocessing)\n", + "2. [Prerequisites and Preprocessing](#Prerequisites-and-Preprocessing)\n", " 1. [Permissions and environment variables](#Permissions-and-environment-variables)\n", " 2. [Prepare the data](#Prepare-the-data)\n", "3. [Fine-tuning The Image Classification Model](#Fine-tuning-the-Image-classification-model)\n", @@ -22,7 +22,7 @@ "source": [ "## Introduction\n", "\n", - "Welcome to our end-to-end example of the image classification algorithm training with image format. In this demo, we will use the Amazon sagemaker image classification algorithm in transfer learning mode to fine-tune a pre-trained model (trained on imagenet data) to learn to classify a new dataset. In particular, the pre-trained model will be fine-tuned using [caltech-256 dataset](http://www.vision.caltech.edu/Image_Datasets/Caltech256/). \n", + "Welcome to our end-to-end example of the image classification algorithm training with image format. In this demo, we will use the Amazon SageMaker image classification algorithm in transfer learning mode to fine-tune a pre-trained model (trained on ImageNet data) to learn to classify a new dataset. In particular, the pre-trained model will be fine-tuned using the [Caltech-256 dataset](http://www.vision.caltech.edu/Image_Datasets/Caltech256/). \n", "\n", "To get started, we need to set up the environment with a few prerequisite steps, for permissions, configurations, and so on." ] @@ -31,7 +31,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Prequisites and Preprocessing\n", + "## Prerequisites and Preprocessing\n", "\n", "### Permissions and environment variables\n", "\n", @@ -39,7 +39,7 @@ "\n", "* The roles used to give learning and hosting access to your data. This will automatically be obtained from the role used to start the notebook\n", "* The S3 bucket that you want to use for training and model data\n", - "* The Amazon sagemaker image classification docker image which need not be changed" + "* The Amazon SageMaker image classification docker image which need not be changed" ] }, { @@ -66,9 +66,9 @@ "metadata": {}, "outputs": [], "source": [ - "from sagemaker.amazon.amazon_estimator import get_image_uri\n", + "from sagemaker import image_uris\n", "\n", - "training_image = get_image_uri(sess.boto_region_name, \"image-classification\", repo_version=\"latest\")\n", + "training_image = image_uris.retrieve(region=sess.boto_region_name, framework=\"image-classification\")\n", "print(training_image)" ] }, @@ -78,9 +78,9 @@ "source": [ "\n", "### Prepare the data\n", - "The caltech 256 dataset consist of images from 257 categories (the last one being a clutter category) and has 30k images with a minimum of 80 images and a maximum of about 800 images per category. \n", + "The Caltech-256 dataset consist of images from 257 categories (the last one being a clutter category) and has 30k images with a minimum of 80 images and a maximum of about 800 images per category. \n", "\n", - "The image classification algorithm can take two types of input formats. The first is a [RecordIO format](https://mxnet.incubator.apache.org/tutorials/basic/record_io.html) (content type: application/x-recordio) and the other is a [lst format](https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec) (content type: application/x-image). Files for both these formats are available at http://data.dmlc.ml/mxnet/data/caltech-256/. In this example, we will use the lst format for training and use the training/validation split [specified here](http://data.dmlc.ml/mxnet/data/caltech-256/)." + "The image classification algorithm can take two types of input formats. The first is a [RecordIO format](https://mxnet.incubator.apache.org/tutorials/basic/record_io.html) (content type: application/x-recordio) and the other is a [lst format](https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec) (content type: application/x-jpeg). Files for both these formats are available at http://data.dmlc.ml/mxnet/data/caltech-256/. In this example, we will use the lst format for training and use the training/validation split [specified here](http://data.dmlc.ml/mxnet/data/caltech-256/)." ] }, { @@ -89,6 +89,7 @@ "metadata": {}, "outputs": [], "source": [ + "import boto3\n", "import os\n", "import urllib.request\n", "\n", @@ -100,7 +101,12 @@ "\n", "\n", "# Caltech-256 image files\n", - "download(\"http://www.vision.caltech.edu/Image_Datasets/Caltech256/256_ObjectCategories.tar\")\n", + "s3 = boto3.client(\"s3\")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/caltech-256/256_ObjectCategories.tar\",\n", + " \"256_ObjectCategories.tar\",\n", + ")\n", "!tar -xf 256_ObjectCategories.tar\n", "\n", "# Tool for creating lst file\n", @@ -179,7 +185,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we have all the data stored in S3 bucket. The image and lst files will be converted to RecordIO file internelly by the image classification algorithm. But if you want do the conversion, the following cell shows how to do it using the [im2rec](https://github.com/apache/incubator-mxnet/blob/master/tools/im2rec.py) tool. Note that this is just an example of creating RecordIO files. We are **_not_** using them for training in this notebook. More details on creating RecordIO files can be found in this [tutorial](https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec)." + "Now we have all the data stored in S3 bucket. The image and lst files will be converted to RecordIO file internally by the image classification algorithm. But if you want to do the conversion, the following cell shows how to do it using the [im2rec](https://github.com/apache/incubator-mxnet/blob/master/tools/im2rec.py) tool. Note that this is just an example of creating RecordIO files. We are **_not_** using them for training in this notebook. More details on creating RecordIO files can be found in this [tutorial](https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec)." ] }, { @@ -204,7 +210,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Before training the model, we need to setup the training parameters. The next section will explain the parameters in detail." + "Before training the model, we need to set up the training parameters. The next section will explain the parameters in detail." ] }, { @@ -231,13 +237,14 @@ "ic = sagemaker.estimator.Estimator(\n", " training_image,\n", " role,\n", - " train_instance_count=1,\n", - " train_instance_type=\"ml.p2.xlarge\",\n", - " train_volume_size=50,\n", - " train_max_run=360000,\n", + " instance_count=1,\n", + " instance_type=\"ml.p2.xlarge\",\n", + " volume_size=50,\n", + " max_run=360000,\n", " input_mode=\"File\",\n", " output_path=s3_output_location,\n", " sagemaker_session=sess,\n", + " num_classes=257,\n", ")" ] }, @@ -247,11 +254,11 @@ "source": [ "Apart from the above set of parameters, there are hyperparameters that are specific to the algorithm. These are:\n", "\n", - "* **num_layers**: The number of layers (depth) for the network. We use 18 in this samples but other values such as 50, 152 can be used.\n", + "* **num_layers**: The number of layers (depth) for the network. We use 18 in this sample but other values such as 50, 152 can be used.\n", "* **use_pretrained_model**: Set to 1 to use pretrained model for transfer learning.\n", "* **image_shape**: The input image dimensions,'num_channels, height, width', for the network. It should be no larger than the actual image size. The number of channels should be same as the actual image.\n", - "* **num_classes**: This is the number of output classes for the new dataset. Imagenet was trained with 1000 output classes but the number of output classes can be changed for fine-tuning. For caltech, we use 257 because it has 256 object categories + 1 clutter class.\n", - "* **num_training_samples**: This is the total number of training samples. It is set to 15240 for caltech dataset with the current split.\n", + "* **num_classes**: This is the number of output classes for the new dataset. ImageNet was trained with 1000 output classes but the number of output classes can be changed for fine-tuning. For Caltech, we use 257 because it has 256 object categories + 1 clutter class.\n", + "* **num_training_samples**: This is the total number of training samples. It is set to 15240 for the Caltech dataset with the current split.\n", "* **mini_batch_size**: The number of training samples used for each mini batch. In distributed training, the number of training samples used per batch will be N * mini_batch_size where N is the number of hosts on which training is run.\n", "* **epochs**: Number of training epochs.\n", "* **learning_rate**: Learning rate for training.\n", @@ -297,28 +304,28 @@ "metadata": {}, "outputs": [], "source": [ - "train_data = sagemaker.session.s3_input(\n", + "train_data = sagemaker.inputs.TrainingInput(\n", " s3train,\n", " distribution=\"FullyReplicated\",\n", - " content_type=\"application/x-image\",\n", + " content_type=\"application/jpeg\",\n", " s3_data_type=\"S3Prefix\",\n", ")\n", - "validation_data = sagemaker.session.s3_input(\n", + "validation_data = sagemaker.inputs.TrainingInput(\n", " s3validation,\n", " distribution=\"FullyReplicated\",\n", - " content_type=\"application/x-image\",\n", + " content_type=\"application/jpeg\",\n", " s3_data_type=\"S3Prefix\",\n", ")\n", - "train_data_lst = sagemaker.session.s3_input(\n", + "train_data_lst = sagemaker.inputs.TrainingInput(\n", " s3train_lst,\n", " distribution=\"FullyReplicated\",\n", - " content_type=\"application/x-image\",\n", + " content_type=\"application/jpeg\",\n", " s3_data_type=\"S3Prefix\",\n", ")\n", - "validation_data_lst = sagemaker.session.s3_input(\n", + "validation_data_lst = sagemaker.inputs.TrainingInput(\n", " s3validation_lst,\n", " distribution=\"FullyReplicated\",\n", - " content_type=\"application/x-image\",\n", + " content_type=\"application/jpeg\",\n", " s3_data_type=\"S3Prefix\",\n", ")\n", "\n", @@ -380,8 +387,13 @@ "metadata": {}, "outputs": [], "source": [ - "!wget -O /tmp/test.jpg http://www.vision.caltech.edu/Image_Datasets/Caltech256/images/008.bathtub/008_0007.jpg\n", "file_name = \"/tmp/test.jpg\"\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/caltech-256/256_ObjectCategories/008.bathtub/008_0007.jpg\",\n", + " file_name,\n", + ")\n", + "\n", "# test image\n", "from IPython.display import Image\n", "\n", @@ -396,16 +408,17 @@ "source": [ "import json\n", "import numpy as np\n", + "from sagemaker.serializers import IdentitySerializer\n", "\n", "with open(file_name, \"rb\") as f:\n", " payload = f.read()\n", - " payload = bytearray(payload)\n", "\n", - "ic_classifier.content_type = \"application/x-image\"\n", + "ic_classifier.serializer = IdentitySerializer(\"image/jpeg\")\n", "result = json.loads(ic_classifier.predict(payload))\n", "# the result will output the probabilities for all classes\n", "# find the class with maximum probability and print the class index\n", "index = np.argmax(result)\n", + "\n", "object_categories = [\n", " \"ak47\",\n", " \"american-flag\",\n", @@ -703,7 +716,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.13" }, "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." }, diff --git a/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format.ipynb b/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format.ipynb index 9f6f1633d6..c7fda2a025 100644 --- a/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format.ipynb +++ b/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format.ipynb @@ -7,7 +7,7 @@ "# Image classification training with image format\n", "\n", "1. [Introduction](#Introduction)\n", - "2. [Prerequisites and Preprocessing](#Prequisites-and-Preprocessing)\n", + "2. [Prerequisites and Preprocessing](#Prerequisites-and-Preprocessing)\n", " 1. [Permissions and environment variables](#Permissions-and-environment-variables)\n", " 2. [Prepare the data](#Prepare-the-data)\n", "3. [Fine-tuning The Image Classification Model](#Fine-tuning-the-Image-classification-model)\n", @@ -29,7 +29,7 @@ "source": [ "## Introduction\n", "\n", - "Welcome to our end-to-end example of the image classification algorithm training with image format. In this demo, we will use the Amazon sagemaker image classification algorithm in transfer learning mode to fine-tune a pre-trained model (trained on imagenet data) to learn to classify a new dataset. In particular, the pre-trained model will be fine-tuned using [caltech-256 dataset](http://www.vision.caltech.edu/Image_Datasets/Caltech256/). \n", + "Welcome to our end-to-end example of the image classification algorithm training with image format. In this demo, we will use the Amazon SageMaker image classification algorithm in transfer learning mode to fine-tune a pre-trained model (trained on ImageNet data) to learn to classify a new dataset. In particular, the pre-trained model will be fine-tuned using the [Caltech-256 dataset](http://www.vision.caltech.edu/Image_Datasets/Caltech256/). \n", "\n", "To get started, we need to set up the environment with a few prerequisite steps, for permissions, configurations, and so on." ] @@ -38,7 +38,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Prequisites and Preprocessing\n", + "## Prerequisites and Preprocessing\n", "\n", "### Permissions and environment variables\n", "\n", @@ -46,7 +46,7 @@ "\n", "* The roles used to give learning and hosting access to your data. This will automatically be obtained from the role used to start the notebook\n", "* The S3 bucket that you want to use for training and model data\n", - "* The Amazon sagemaker image classification docker image which need not be changed" + "* The Amazon SageMaker image classification docker image which need not be changed" ] }, { @@ -62,14 +62,17 @@ "source": [ "%%time\n", "import boto3\n", + "import sagemaker\n", "from sagemaker import get_execution_role\n", - "from sagemaker.amazon.amazon_estimator import get_image_uri\n", + "from sagemaker import image_uris\n", "\n", "role = get_execution_role()\n", "\n", - "bucket = \"<>\" # customize to your bucket\n", + "bucket = sagemaker.session.Session().default_bucket()\n", "\n", - "training_image = get_image_uri(boto3.Session().region_name, \"image-classification\")" + "training_image = image_uris.retrieve(\n", + " region=boto3.Session().region_name, framework=\"image-classification\"\n", + ")" ] }, { @@ -79,7 +82,7 @@ "## Fine-tuning the Image classification model\n", "\n", "### Prepare the data\n", - "The caltech 256 dataset consist of images from 257 categories (the last one being a clutter category) and has 30k images with a minimum of 80 images and a maximum of about 800 images per category. \n", + "The Caltech-256 dataset consist of images from 257 categories (the last one being a clutter category) and has 30k images with a minimum of 80 images and a maximum of about 800 images per category. \n", "\n", "The image classification algorithm can take two types of input formats. The first is a [RecordIO format](https://mxnet.incubator.apache.org/tutorials/basic/record_io.html) (content type: application/x-recordio) and the other is a [lst format](https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec) (content type: application/x-image). Files for both these formats are available at http://data.dmlc.ml/mxnet/data/caltech-256/. In this example, we will use the lst format for training and use the training/validation split [specified here](http://data.dmlc.ml/mxnet/data/caltech-256/)." ] @@ -103,7 +106,12 @@ "\n", "\n", "# Caltech-256 image files\n", - "download(\"http://www.vision.caltech.edu/Image_Datasets/Caltech256/256_ObjectCategories.tar\")\n", + "s3 = boto3.client(\"s3\")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/caltech-256/256_ObjectCategories.tar\",\n", + " \"256_ObjectCategories.tar\",\n", + ")\n", "!tar -xf 256_ObjectCategories.tar\n", "\n", "# Tool for creating lst file\n", @@ -188,7 +196,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we have all the data stored in S3 bucket. The image and lst files will be converted to RecordIO file internelly by the image classification algorithm. But if you want do the conversion, the following cell shows how to do it using the [im2rec](https://github.com/apache/incubator-mxnet/blob/master/tools/im2rec.py) tool. Note that this is just an example of creating RecordIO files. We are **_not_** using them for training in this notebook. More details on creating RecordIO files can be found in this [tutorial](https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec)." + "Now we have all the data stored in S3 bucket. The image and lst files will be converted to RecordIO file internally by the image classification algorithm. But if you want do the conversion, the following cell shows how to do it using the [im2rec](https://github.com/apache/incubator-mxnet/blob/master/tools/im2rec.py) tool. Note that this is just an example of creating RecordIO files. We are **_not_** using them for training in this notebook. More details on creating RecordIO files can be found in this [tutorial](https://mxnet.incubator.apache.org/how_to/recordio.html?highlight=im2rec)." ] }, { @@ -215,7 +223,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Before training the model, we need to setup the training parameters. The next section will explain the parameters in detail." + "Before training the model, we need to set up the training parameters. The next section will explain the parameters in detail." ] }, { @@ -233,10 +241,10 @@ "\n", "Apart from the above set of parameters, there are hyperparameters that are specific to the algorithm. These are:\n", "\n", - "* **num_layers**: The number of layers (depth) for the network. We use 18 in this samples but other values such as 50, 152 can be used.\n", + "* **num_layers**: The number of layers (depth) for the network. We use 18 in this sample but other values such as 50, 152 can be used.\n", "* **image_shape**: The input image dimensions,'num_channels, height, width', for the network. It should be no larger than the actual image size. The number of channels should be same as the actual image.\n", - "* **num_training_samples**: This is the total number of training samples. It is set to 15240 for caltech dataset with the current split.\n", - "* **num_classes**: This is the number of output classes for the new dataset. Imagenet was trained with 1000 output classes but the number of output classes can be changed for fine-tuning. For caltech, we use 257 because it has 256 object categories + 1 clutter class.\n", + "* **num_training_samples**: This is the total number of training samples. It is set to 15240 for the Caltech dataset with the current split.\n", + "* **num_classes**: This is the number of output classes for the new dataset. ImageNet was trained with 1000 output classes but the number of output classes can be changed for fine-tuning. For Caltech, we use 257 because it has 256 object categories + 1 clutter class.\n", "* **mini_batch_size**: The number of training samples used for each mini batch. In distributed training, the number of training samples used per batch will be N * mini_batch_size where N is the number of hosts on which training is run.\n", "* **epochs**: Number of training epochs.\n", "* **learning_rate**: Learning rate for training.\n", @@ -250,7 +258,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "isConfigCell": true }, "outputs": [], @@ -286,7 +293,7 @@ "metadata": {}, "source": [ "### Training\n", - "Run the training using Amazon sagemaker CreateTrainingJob API" + "Run the training using Amazon SageMaker CreateTrainingJob API" ] }, { @@ -492,7 +499,9 @@ "model_data = info[\"ModelArtifacts\"][\"S3ModelArtifacts\"]\n", "print(model_data)\n", "\n", - "hosting_image = get_image_uri(boto3.Session().region_name, \"image-classification\")\n", + "hosting_image = image_uris.retrieve(\n", + " region=boto3.Session().region_name, framework=\"image-classification\"\n", + ")\n", "\n", "primary_container = {\n", " \"Image\": hosting_image,\n", @@ -1045,8 +1054,13 @@ }, "outputs": [], "source": [ - "!wget -O /tmp/test.jpg http://www.vision.caltech.edu/Image_Datasets/Caltech256/images/008.bathtub/008_0007.jpg\n", "file_name = \"/tmp/test.jpg\"\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/caltech-256/256_ObjectCategories/008.bathtub/008_0007.jpg\",\n", + " file_name,\n", + ")\n", + "\n", "# test image\n", "from IPython.display import Image\n", "\n", @@ -1076,6 +1090,7 @@ "# the result will output the probabilities for all classes\n", "# find the class with maximum probability and print the class index\n", "index = np.argmax(result)\n", + "\n", "object_categories = [\n", " \"ak47\",\n", " \"american-flag\",\n", @@ -1376,7 +1391,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.2" + "version": "3.6.13" }, "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." }, diff --git a/introduction_to_amazon_algorithms/object2vec_movie_recommendation/object2vec_movie_recommendation.ipynb b/introduction_to_amazon_algorithms/object2vec_movie_recommendation/object2vec_movie_recommendation.ipynb index 565ebabfae..14ea46ac15 100644 --- a/introduction_to_amazon_algorithms/object2vec_movie_recommendation/object2vec_movie_recommendation.ipynb +++ b/introduction_to_amazon_algorithms/object2vec_movie_recommendation/object2vec_movie_recommendation.ipynb @@ -636,8 +636,9 @@ "source": [ "import boto3\n", "import os\n", + "import sagemaker\n", "\n", - "bucket = \"\" # Customize your own bucket name\n", + "bucket = sagemaker.session.Session().default_bucket()\n", "input_prefix = \"object2vec/movielens/input\"\n", "output_prefix = \"object2vec/movielens/output\"" ] @@ -655,7 +656,7 @@ "metadata": {}, "outputs": [], "source": [ - "from sagemaker.session import s3_input\n", + "from sagemaker.inputs import TrainingInput\n", "\n", "s3_client = boto3.client(\"s3\")\n", "input_paths = {}\n", @@ -666,7 +667,7 @@ " fname = \"{}_r.jsonl\".format(data_name)\n", " data_path = os.path.join(\"s3://\", bucket, pre_key, fname)\n", " s3_client.upload_file(fname, bucket, os.path.join(pre_key, fname))\n", - " input_paths[data_name] = s3_input(\n", + " input_paths[data_name] = TrainingInput(\n", " data_path, distribution=\"ShardedByS3Key\", content_type=\"application/jsonlines\"\n", " )\n", " print(\"Uploaded {} data to {} and defined input path\".format(data_name, data_path))\n", @@ -696,9 +697,9 @@ "print(role)\n", "\n", "## Get docker image of ObjectToVec algorithm\n", - "from sagemaker.amazon.amazon_estimator import get_image_uri\n", + "from sagemaker import image_uris\n", "\n", - "container = get_image_uri(boto3.Session().region_name, \"object2vec\")" + "container = image_uris.retrieve(region=boto3.Session().region_name, framework=\"object2vec\")" ] }, { @@ -762,8 +763,8 @@ "regressor = sagemaker.estimator.Estimator(\n", " container,\n", " role,\n", - " train_instance_count=1,\n", - " train_instance_type=\"ml.p2.xlarge\",\n", + " instance_count=1,\n", + " instance_type=\"ml.p2.xlarge\",\n", " output_path=output_path,\n", " sagemaker_session=sess,\n", ")\n", @@ -806,12 +807,11 @@ "outputs": [], "source": [ "# import numpy as np\n", - "from sagemaker.predictor import json_serializer, json_deserializer\n", + "from sagemaker.serializers import JSONSerializer\n", + "from sagemaker.deserializers import JSONDeserializer\n", "\n", "# create a model using the trained algorithm\n", - "regression_model = regressor.create_model(\n", - " serializer=json_serializer, deserializer=json_deserializer, content_type=\"application/json\"\n", - ")" + "regression_model = regressor.create_model()" ] }, { @@ -821,7 +821,13 @@ "outputs": [], "source": [ "# deploy the model\n", - "predictor = regression_model.deploy(initial_instance_count=1, instance_type=\"ml.m4.xlarge\")" + "predictor = regression_model.deploy(\n", + " serializer=JSONSerializer(),\n", + " deserializer=JSONDeserializer(),\n", + " content_type=\"application/json\",\n", + " initial_instance_count=1,\n", + " instance_type=\"ml.m4.xlarge\",\n", + ")" ] }, { @@ -886,7 +892,7 @@ " pre_key = os.path.join(input_prefix, \"recommendation\", f\"{data_name}\")\n", " data_path = os.path.join(\"s3://\", bucket, pre_key, fname)\n", " s3_client.upload_file(fname, bucket, os.path.join(pre_key, fname))\n", - " input_paths[data_name] = s3_input(\n", + " input_paths[data_name] = TrainingInput(\n", " data_path, distribution=\"ShardedByS3Key\", content_type=\"application/jsonlines\"\n", " )\n", " print(\"Uploaded data to {}\".format(data_path))" @@ -949,8 +955,8 @@ "classifier = sagemaker.estimator.Estimator(\n", " container,\n", " role,\n", - " train_instance_count=1,\n", - " train_instance_type=\"ml.p2.xlarge\",\n", + " instance_count=1,\n", + " instance_type=\"ml.p2.xlarge\",\n", " output_path=output_path,\n", " sagemaker_session=sess,\n", ")\n", @@ -975,11 +981,15 @@ "metadata": {}, "outputs": [], "source": [ - "classification_model = classifier.create_model(\n", - " serializer=json_serializer, deserializer=json_deserializer, content_type=\"application/json\"\n", - ")\n", + "classification_model = classifier.create_model()\n", "\n", - "predictor_2 = classification_model.deploy(initial_instance_count=1, instance_type=\"ml.m4.xlarge\")" + "predictor_2 = classification_model.deploy(\n", + " serializer=JSONSerializer(),\n", + " deserializer=JSONDeserializer(),\n", + " content_type=\"application/json\",\n", + " initial_instance_count=1,\n", + " instance_type=\"ml.m4.xlarge\",\n", + ")" ] }, { @@ -1127,7 +1137,7 @@ }, "outputs": [], "source": [ - "movie_id_to_examine = \"\" # Customize the movie ID you want to examine" + "movie_id_to_examine = 195 # Customize the movie ID you want to examine" ] }, { @@ -1161,8 +1171,8 @@ "outputs": [], "source": [ "## clean up\n", - "sess.delete_endpoint(predictor.endpoint)\n", - "sess.delete_endpoint(predictor_2.endpoint)" + "predictor.delete_endpoint()\n", + "predictor_2.delete_endpoint()" ] } ], @@ -1183,7 +1193,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/introduction_to_applying_machine_learning/README.md b/introduction_to_applying_machine_learning/README.md index 0f7eea5e82..e39c21994d 100644 --- a/introduction_to_applying_machine_learning/README.md +++ b/introduction_to_applying_machine_learning/README.md @@ -4,7 +4,6 @@ These examples provide a gentle introduction to machine learning concepts as they are applied in practical use cases across a variety of sectors. -- [Targeted Direct Marketing](xgboost_direct_marketing) predicts potential customers that are most likely to convert based on customer and aggregate level metrics, using Amazon SageMaker's implementation of [XGBoost](https://github.com/dmlc/xgboost). - [Predicting Customer Churn](xgboost_customer_churn) uses customer interaction and service usage data to find those most likely to churn, and then walks through the cost/benefit trade-offs of providing retention incentives. This uses Amazon SageMaker's implementation of [XGBoost](https://github.com/dmlc/xgboost) to create a highly predictive model. - [Time-series Forecasting](linear_time_series_forecast) generates a forecast for topline product demand using Amazon SageMaker's Linear Learner algorithm. - [Cancer Prediction](breast_cancer_prediction) predicts Breast Cancer based on features derived from images, using SageMaker's Linear Learner. diff --git a/introduction_to_applying_machine_learning/ntm_20newsgroups_topic_modeling/ntm_20newsgroups_topic_model.ipynb b/introduction_to_applying_machine_learning/ntm_20newsgroups_topic_modeling/ntm_20newsgroups_topic_model.ipynb index ae6056e57a..50c0b83b59 100644 --- a/introduction_to_applying_machine_learning/ntm_20newsgroups_topic_modeling/ntm_20newsgroups_topic_model.ipynb +++ b/introduction_to_applying_machine_learning/ntm_20newsgroups_topic_modeling/ntm_20newsgroups_topic_model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "compound-allen", + "id": "000c40b8", "metadata": { "papermill": { "duration": 0.038556, @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "large-aviation", + "id": "8f02a2ca", "metadata": { "papermill": { "duration": 0.072845, @@ -84,7 +84,27 @@ }, { "cell_type": "markdown", - "id": "ranging-failure", + "id": "5833a4a3", + "metadata": {}, + "source": [ + "# Install Python packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb10078e", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "!{sys.executable} -m pip install \"scikit_learn==0.20.0\" \"nltk==3.4.4\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ad81a71", "metadata": { "papermill": { "duration": 0.037545, @@ -108,7 +128,7 @@ }, { "cell_type": "markdown", - "id": "prepared-coupon", + "id": "da015914", "metadata": { "papermill": { "duration": 0.037456, @@ -127,8 +147,8 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "public-seller", + "execution_count": null, + "id": "8207a187", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:05:07.806750Z", @@ -150,220 +170,96 @@ "import os\n", "import shutil\n", "\n", - "data_dir = \"20_newsgroups\"\n", + "data_dir = \"20_newsgroups_bulk\"\n", "if os.path.exists(data_dir): # cleanup existing data folder\n", " shutil.rmtree(data_dir)" ] }, { "cell_type": "markdown", - "id": "average-squad", - "metadata": { - "papermill": { - "duration": 0.037312, - "end_time": "2021-06-08T21:05:07.883506", - "exception": false, - "start_time": "2021-06-08T21:05:07.846194", - "status": "completed" - }, - "tags": [] - }, + "id": "85509162", + "metadata": {}, "source": [ - "Now we can download the data. *Please review the following Acknowledgements, Copyright Information, and Availability notice before downloading the data.*" + "Now we can download the data. We download the [`20 newsgroups dataset`](http://qwone.com/~jason/20Newsgroups/). The `20 newsgroups dataset` consists of 20000 messages taken from 20 Usenet newsgroups." ] }, { "cell_type": "code", - "execution_count": 8, - "id": "through-specialist", - "metadata": { - "execution": { - "iopub.execute_input": "2021-06-08T21:05:07.962889Z", - "iopub.status.busy": "2021-06-08T21:05:07.962309Z", - "iopub.status.idle": "2021-06-08T21:05:09.030495Z", - "shell.execute_reply": "2021-06-08T21:05:09.030946Z" - }, - "papermill": { - "duration": 1.11015, - "end_time": "2021-06-08T21:05:09.031100", - "exception": false, - "start_time": "2021-06-08T21:05:07.920950", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2021-06-08 23:14:05-- https://archive.ics.uci.edu/ml/machine-learning-databases/20newsgroups-mld/20_newsgroups.tar.gz\n", - "Resolving archive.ics.uci.edu (archive.ics.uci.edu)... 128.195.10.252\n", - "Connecting to archive.ics.uci.edu (archive.ics.uci.edu)|128.195.10.252|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 17332201 (17M) [application/x-httpd-php]\n", - "Saving to: ‘20_newsgroups.tar.gz.1’\n", - "\n", - "20_newsgroups.tar.g 100%[===================>] 16.53M 29.2MB/s in 0.6s \n", - "\n", - "2021-06-08 23:14:06 (29.2 MB/s) - ‘20_newsgroups.tar.gz.1’ saved [17332201/17332201]\n", - "\n" - ] - } - ], + "execution_count": null, + "id": "3582587d", + "metadata": {}, + "outputs": [], "source": [ - "# **Acknowledgements, Copyright Information, and Availability**\n", - "# You may use this material free of charge for any educational purpose,\n", - "# provided attribution is given in any lectures or publications that make use of this material.\n", - "#\n", - "# Source: https://archive.ics.uci.edu/ml/machine-learning-databases/20newsgroups-mld/20newsgroups.data.html\n", - "\n", - "!wget https://archive.ics.uci.edu/ml/machine-learning-databases/20newsgroups-mld/20_newsgroups.tar.gz" + "!aws s3 cp s3://sagemaker-sample-files/datasets/text/20_newsgroups/20_newsgroups_bulk.tar.gz ." ] }, { - "cell_type": "markdown", - "id": "mineral-richardson", - "metadata": { - "papermill": { - "duration": 0.038722, - "end_time": "2021-06-08T21:05:09.108277", - "exception": false, - "start_time": "2021-06-08T21:05:09.069555", - "status": "completed" - }, - "tags": [] - }, + "cell_type": "code", + "execution_count": null, + "id": "ae91cb76", + "metadata": {}, + "outputs": [], "source": [ - "In the next 2 cells, we unpack the data set and extract a list of the files" + "!tar xzf 20_newsgroups_bulk.tar.gz\n", + "!ls 20_newsgroups_bulk" ] }, { "cell_type": "code", - "execution_count": 9, - "id": "employed-birmingham", - "metadata": { - "execution": { - "iopub.execute_input": "2021-06-08T21:05:09.189173Z", - "iopub.status.busy": "2021-06-08T21:05:09.188622Z", - "iopub.status.idle": "2021-06-08T21:05:09.964498Z", - "shell.execute_reply": "2021-06-08T21:05:09.963864Z" - }, - "papermill": { - "duration": 0.818146, - "end_time": "2021-06-08T21:05:09.964625", - "exception": false, - "start_time": "2021-06-08T21:05:09.146479", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "alt.atheism\t\t rec.autos\t sci.space\n", - "comp.graphics\t\t rec.motorcycles soc.religion.christian\n", - "comp.os.ms-windows.misc rec.sport.baseball talk.politics.guns\n", - "comp.sys.ibm.pc.hardware rec.sport.hockey talk.politics.mideast\n", - "comp.sys.mac.hardware\t sci.crypt\t talk.politics.misc\n", - "comp.windows.x\t\t sci.electronics talk.religion.misc\n", - "misc.forsale\t\t sci.med\n" - ] - } - ], + "execution_count": null, + "id": "dcec2989", + "metadata": {}, + "outputs": [], "source": [ - "!tar -xzf 20_newsgroups.tar.gz\n", - "!ls 20_newsgroups" + "file_list = [os.path.join(data_dir, f) for f in os.listdir(data_dir)]\n", + "print(\"Number of files:\", len(file_list))" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "developed-monte", - "metadata": { - "execution": { - "iopub.execute_input": "2021-06-08T21:05:10.048277Z", - "iopub.status.busy": "2021-06-08T21:05:10.047405Z", - "iopub.status.idle": "2021-06-08T21:05:10.091088Z", - "shell.execute_reply": "2021-06-08T21:05:10.090517Z" - }, - "papermill": { - "duration": 0.087547, - "end_time": "2021-06-08T21:05:10.091211", - "exception": false, - "start_time": "2021-06-08T21:05:10.003664", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of documents: 19997\n" - ] - } - ], + "execution_count": null, + "id": "c1b44ef4", + "metadata": {}, + "outputs": [], "source": [ - "folders = [\n", - " os.path.join(data_dir, f)\n", - " for f in sorted(os.listdir(data_dir))\n", - " if os.path.isdir(os.path.join(data_dir, f))\n", - "]\n", - "file_list = [os.path.join(d, f) for d in folders for f in os.listdir(d)]\n", - "print(\"Number of documents:\", len(file_list))" + "import pandas as pd\n", + "\n", + "\n", + "documents_count = 0\n", + "for file in file_list:\n", + " df = pd.read_csv(file, header=None, names=[\"text\"])\n", + " documents_count = documents_count + df.shape[0]\n", + "print(\"Number of documents:\", documents_count)" ] }, { "cell_type": "markdown", - "id": "destroyed-nothing", - "metadata": { - "papermill": { - "duration": 0.038869, - "end_time": "2021-06-08T21:05:10.169455", - "exception": false, - "start_time": "2021-06-08T21:05:10.130586", - "status": "completed" - }, - "tags": [] - }, + "id": "95ccaa85", + "metadata": {}, "source": [ - "Here we read in the content of all the files and remove the header, footer and quotes (of earlier messages in each email)." + "This following function will remove the header, footer and quotes (of earlier messages in each text)." ] }, { "cell_type": "code", - "execution_count": 11, - "id": "about-lover", - "metadata": { - "execution": { - "iopub.execute_input": "2021-06-08T21:05:10.252718Z", - "iopub.status.busy": "2021-06-08T21:05:10.251761Z", - "iopub.status.idle": "2021-06-08T21:05:12.857853Z", - "shell.execute_reply": "2021-06-08T21:05:12.857307Z" - }, - "papermill": { - "duration": 2.649839, - "end_time": "2021-06-08T21:05:12.858015", - "exception": false, - "start_time": "2021-06-08T21:05:10.208176", - "status": "completed" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/sklearn/utils/deprecation.py:144: FutureWarning: The sklearn.datasets.twenty_newsgroups module is deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.datasets. Anything that cannot be imported from sklearn.datasets is now part of the private API.\n", - " warnings.warn(message, FutureWarning)\n" - ] - } - ], + "execution_count": null, + "id": "62348ad5", + "metadata": {}, + "outputs": [], + "source": [ + "def strip_newsgroup_item(item):\n", + " item = strip_newsgroup_header(item)\n", + " item = strip_newsgroup_quoting(item)\n", + " item = strip_newsgroup_footer(item)\n", + " return item" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee198539", + "metadata": {}, + "outputs": [], "source": [ "from sklearn.datasets.twenty_newsgroups import (\n", " strip_newsgroup_header,\n", @@ -372,19 +268,18 @@ ")\n", "\n", "data = []\n", - "for f in file_list:\n", - " with open(f, \"rb\") as fin:\n", - " content = fin.read().decode(\"latin1\")\n", - " # remove header, quoting and footer\n", - " content = strip_newsgroup_header(content)\n", - " content = strip_newsgroup_quoting(content)\n", - " content = strip_newsgroup_footer(content)\n", - " data.append(content)" + "\n", + "for file in file_list:\n", + " print(f\"Processing {file}\")\n", + " label = file.split(\"/\")[1]\n", + " df = pd.read_csv(file, header=None, names=[\"text\"])\n", + " df[\"text\"] = df[\"text\"].apply(strip_newsgroup_item)\n", + " data.extend(df[\"text\"].tolist())" ] }, { "cell_type": "markdown", - "id": "educated-sigma", + "id": "2028ec9a", "metadata": { "papermill": { "duration": 0.039066, @@ -401,8 +296,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "plastic-right", + "execution_count": null, + "id": "6cca6efd", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:05:13.025327Z", @@ -419,27 +314,14 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "['But it\\'s STILL HAPPENING. That\\'s the entire point. Only last month, John\\nMajor hailed it as a great victory that he had personally secured a sale of\\narms to Saudi Arabia. The same month, we sold jet fighters to the same\\nIndonesian government that\\'s busy killing the East Timorese.\\n\\nIt\\'s all very well to say \"Oops, we made a boo-boo, better clean up the\\nmistake\", but the US and UK *keep* making the *same* mistake. They do it so\\noften that I can\\'t believe it\\'s not deliberate. This suspicion is reinforced\\nby the fact that the mistake is an extremely profitable one for a decrepit\\neconomy reliant on arms sales.\\n\\n\\nNo, I thought both were terrible.\\n',\n", - " 'Does anybody have Bobby\\'s post in which he said something like \"I don\\'t\\nknow why there are more men than women in islamic countries. Maybe it\\'s\\natheists killing the female children\"? It\\'s my personal favorite!\\n',\n", - " 'MC> Theory of Creationism: MY theistic view of the theory of\\nMC> creationism, (there are many others) is stated in Genesis\\nMC> 1. In the beginning God created the heavens and the earth.\\n\\nAnd which order of Creation do you accept?\\tThe story of creation is one of the\\nmany places in the Bible where the Story contradicts itself. The following is\\nan example...\\n\\nGEN 1:25 And God made the beast of the earth after his kind, and cattle \\nafter their kind, and every thing that creepeth upon the earth after his\\nkind: and God saw that it was good.\\nGEN 1:26 And God said, Let us make man in our image, after our likeness: \\nand let them have dominion over the fish of the sea, and over the fowl of\\nthe air, and over the cattle, and over all the earth, and over every\\ncreeping thing that creepeth upon the earth.\\n\\nGEN 2:18 And the LORD God said, It is not good that the man should be\\nalone; I will make him an help meet for him.\\nGEN 2:19 And out of the ground the LORD God formed every beast of the \\nfield, and every fowl of the air; and brought them unto Adam to see what he\\nwould call them: and whatsoever Adam called every living creature, that was\\nthe name thereof.\\n\\nEven your Bible cannot agree on how things were created. Why should we\\nbelieve in it?']" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "data[10:13]" ] }, { "cell_type": "markdown", - "id": "strange-lithuania", + "id": "cbdb1fe8", "metadata": { "papermill": { "duration": 0.039457, @@ -473,7 +355,7 @@ }, { "cell_type": "markdown", - "id": "marked-queen", + "id": "8ed0ed38", "metadata": { "papermill": { "duration": 0.039099, @@ -491,8 +373,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "id": "polish-operator", + "execution_count": null, + "id": "ac6fd71a", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:05:13.272646Z", @@ -509,28 +391,8 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: nltk in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (3.4.5)\n", - "Requirement already satisfied: six in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from nltk) (1.14.0)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[nltk_data] Downloading package punkt to /home/ubuntu/nltk_data...\n", - "[nltk_data] Package punkt is already up-to-date!\n", - "[nltk_data] Downloading package wordnet to /home/ubuntu/nltk_data...\n", - "[nltk_data] Package wordnet is already up-to-date!\n" - ] - } - ], + "outputs": [], "source": [ - "!pip install nltk\n", "import nltk\n", "\n", "nltk.download(\"punkt\")\n", @@ -556,7 +418,7 @@ }, { "cell_type": "markdown", - "id": "burning-manufacturer", + "id": "8198b7db", "metadata": { "papermill": { "duration": 0.042907, @@ -573,8 +435,8 @@ }, { "cell_type": "code", - "execution_count": 14, - "id": "minus-belarus", + "execution_count": null, + "id": "fd806401", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:05:17.904594Z", @@ -591,31 +453,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Tokenizing and counting, this may take a few minutes...\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/sklearn/feature_extraction/text.py:385: UserWarning: Your stop_words may be inconsistent with your preprocessing. Tokenizing the stop words generated tokens ['ha', 'le', 'u', 'wa'] not in stop_words.\n", - " 'stop_words.' % sorted(inconsistent))\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "vocab size: 2000\n", - "Done. Time elapsed: 48.74s\n" - ] - } - ], + "outputs": [], "source": [ "import time\n", "import numpy as np\n", @@ -647,7 +485,7 @@ }, { "cell_type": "markdown", - "id": "centered-brazilian", + "id": "5eeaf288", "metadata": { "papermill": { "duration": 0.043706, @@ -664,8 +502,8 @@ }, { "cell_type": "code", - "execution_count": 15, - "id": "motivated-arbitration", + "execution_count": null, + "id": "e1459db7", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:22.299481Z", @@ -682,16 +520,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "removed short docs (<25 words)\n", - "(9677, 2000)\n" - ] - } - ], + "outputs": [], "source": [ "threshold = 25\n", "vectors = vectors[\n", @@ -705,7 +534,7 @@ }, { "cell_type": "markdown", - "id": "sustained-teaching", + "id": "1530abcb", "metadata": { "papermill": { "duration": 0.043682, @@ -722,8 +551,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "christian-spread", + "execution_count": null, + "id": "c2652ee9", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:22.487668Z", @@ -740,51 +569,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " int64\n", - " (0, 1814)\t1\n", - " (0, 1008)\t1\n", - " (0, 1274)\t1\n", - " (0, 137)\t1\n", - " (0, 1593)\t1\n", - " (0, 1046)\t1\n", - " (0, 1525)\t1\n", - " (0, 1337)\t1\n", - " (0, 1167)\t1\n", - " (0, 1861)\t1\n", - " (0, 200)\t1\n", - " (0, 1025)\t1\n", - " (0, 1758)\t1\n", - " (0, 770)\t1\n", - " (0, 785)\t1\n", - " (0, 1799)\t1\n", - " (0, 768)\t1\n", - " (0, 729)\t2\n", - " (0, 1024)\t1\n", - " (0, 961)\t1\n", - " (0, 750)\t1\n", - " (0, 763)\t1\n", - " (0, 155)\t1\n", - " (0, 1249)\t1\n", - " (0, 1132)\t1\n", - " (0, 1945)\t2\n", - " (0, 558)\t1\n", - " (0, 1181)\t1\n", - " (0, 559)\t1\n", - " (0, 1630)\t1\n", - " (0, 87)\t1\n", - " (0, 1178)\t1\n", - " (0, 1273)\t1\n", - " (0, 1749)\t2\n", - " (0, 1568)\t1\n", - " (0, 1315)\t2\n" - ] - } - ], + "outputs": [], "source": [ "print(type(vectors), vectors.dtype)\n", "print(vectors[0])" @@ -792,7 +577,7 @@ }, { "cell_type": "markdown", - "id": "intermediate-dairy", + "id": "062c066f", "metadata": { "papermill": { "duration": 0.044141, @@ -809,8 +594,8 @@ }, { "cell_type": "code", - "execution_count": 17, - "id": "naughty-glory", + "execution_count": null, + "id": "3987a91b", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:22.671001Z", @@ -827,15 +612,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " float32\n" - ] - } - ], + "outputs": [], "source": [ "import scipy.sparse as sparse\n", "\n", @@ -845,7 +622,7 @@ }, { "cell_type": "markdown", - "id": "organized-memphis", + "id": "f775a26c", "metadata": { "papermill": { "duration": 0.044211, @@ -866,8 +643,8 @@ }, { "cell_type": "code", - "execution_count": 18, - "id": "awful-blackberry", + "execution_count": null, + "id": "60a187f4", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:22.856890Z", @@ -900,8 +677,8 @@ }, { "cell_type": "code", - "execution_count": 19, - "id": "varied-turkish", + "execution_count": null, + "id": "15ad2043", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:22.956233Z", @@ -918,22 +695,14 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(7741, 2000) (968, 2000) (968, 2000)\n" - ] - } - ], + "outputs": [], "source": [ "print(train_vectors.shape, test_vectors.shape, val_vectors.shape)" ] }, { "cell_type": "markdown", - "id": "structured-hampshire", + "id": "c00cb142", "metadata": { "papermill": { "duration": 0.044527, @@ -953,7 +722,7 @@ }, { "cell_type": "markdown", - "id": "characteristic-craft", + "id": "d655334d", "metadata": { "papermill": { "duration": 0.045019, @@ -975,8 +744,8 @@ }, { "cell_type": "code", - "execution_count": 20, - "id": "fuzzy-borough", + "execution_count": null, + "id": "47d50738", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:23.231174Z", @@ -1009,8 +778,8 @@ }, { "cell_type": "code", - "execution_count": 21, - "id": "automated-republic", + "execution_count": null, + "id": "147c2113", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:24.948559Z", @@ -1028,17 +797,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Training set location s3://sagemaker-us-west-2-688520471316/20newsgroups/train\n", - "Validation set location s3://sagemaker-us-west-2-688520471316/20newsgroups/val\n", - "Trained model will be saved at s3://sagemaker-us-west-2-688520471316/20newsgroups/output\n" - ] - } - ], + "outputs": [], "source": [ "prefix = \"20newsgroups\"\n", "\n", @@ -1056,7 +815,7 @@ }, { "cell_type": "markdown", - "id": "reserved-salem", + "id": "37aa22f3", "metadata": { "papermill": { "duration": 0.045114, @@ -1077,8 +836,8 @@ }, { "cell_type": "code", - "execution_count": 22, - "id": "dental-major", + "execution_count": null, + "id": "9525de29", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:25.135640Z", @@ -1103,8 +862,8 @@ }, { "cell_type": "code", - "execution_count": 23, - "id": "recognized-forum", + "execution_count": null, + "id": "b39be48d", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:25.236469Z", @@ -1150,8 +909,8 @@ }, { "cell_type": "code", - "execution_count": 24, - "id": "public-guard", + "execution_count": null, + "id": "8c27fc2d", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:25.334393Z", @@ -1168,23 +927,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part0.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part1.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part2.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part3.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part4.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part5.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part6.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/train/train_part7.pbr\n", - "Uploaded data to s3://sagemaker-us-west-2-688520471316/20newsgroups/val/val_part0.pbr\n" - ] - } - ], + "outputs": [], "source": [ "split_convert_upload(\n", " train_vectors, bucket=bucket, prefix=train_prefix, fname_template=\"train_part{}.pbr\", n_parts=8\n", @@ -1196,7 +939,7 @@ }, { "cell_type": "markdown", - "id": "streaming-trace", + "id": "ca066694", "metadata": { "papermill": { "duration": 0.048076, @@ -1216,7 +959,7 @@ }, { "cell_type": "markdown", - "id": "capital-lobby", + "id": "86b297e8", "metadata": { "papermill": { "duration": 0.047668, @@ -1233,8 +976,8 @@ }, { "cell_type": "code", - "execution_count": 25, - "id": "figured-forwarding", + "execution_count": null, + "id": "b7e5589e", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:28.188477Z", @@ -1255,12 +998,13 @@ "source": [ "import boto3\n", "from sagemaker.image_uris import retrieve\n", + "\n", "container = retrieve(\"ntm\", boto3.Session().region_name)" ] }, { "cell_type": "markdown", - "id": "northern-dancing", + "id": "0eaf3809", "metadata": { "papermill": { "duration": 0.047712, @@ -1277,8 +1021,8 @@ }, { "cell_type": "code", - "execution_count": 26, - "id": "listed-progressive", + "execution_count": null, + "id": "db0842c1", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:28.395130Z", @@ -1312,7 +1056,7 @@ }, { "cell_type": "markdown", - "id": "caring-arctic", + "id": "95a405f8", "metadata": { "papermill": { "duration": 0.047662, @@ -1339,8 +1083,8 @@ }, { "cell_type": "code", - "execution_count": 27, - "id": "unlimited-ocean", + "execution_count": null, + "id": "772f52ed", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:28.618626Z", @@ -1373,7 +1117,7 @@ }, { "cell_type": "markdown", - "id": "collect-theory", + "id": "f1aa584b", "metadata": { "papermill": { "duration": 0.04791, @@ -1395,8 +1139,8 @@ }, { "cell_type": "code", - "execution_count": 28, - "id": "confused-absorption", + "execution_count": null, + "id": "3b50dfa4", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:28.815330Z", @@ -1416,12 +1160,13 @@ "outputs": [], "source": [ "from sagemaker.inputs import TrainingInput\n", + "\n", "s3_train = TrainingInput(s3_train_data, distribution=\"ShardedByS3Key\")" ] }, { "cell_type": "markdown", - "id": "wired-clause", + "id": "2e0d6c2f", "metadata": { "papermill": { "duration": 0.047552, @@ -1438,8 +1183,8 @@ }, { "cell_type": "code", - "execution_count": 29, - "id": "reverse-syndrome", + "execution_count": null, + "id": "c9e4b1e2", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:06:29.014408Z", @@ -1457,3813 +1202,14 @@ "scrolled": true, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2021-06-08 23:15:03 Starting - Starting the training job...\n", - "2021-06-08 23:15:06 Starting - Launching requested ML instances......\n", - "2021-06-08 23:16:16 Starting - Preparing the instances for training......\n", - "2021-06-08 23:17:21 Downloading - Downloading input data\n", - "2021-06-08 23:17:21 Training - Downloading the training image.....\u001b[35mDocker entrypoint called with argument(s): train\u001b[0m\n", - "\u001b[35mRunning default environment configuration script\u001b[0m\n", - "\u001b[35m/opt/amazon/lib/python3.7/site-packages/jsonref.py:8: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working\n", - " from collections import Mapping, MutableMapping, Sequence\u001b[0m\n", - "\u001b[34mDocker entrypoint called with argument(s): train\u001b[0m\n", - "\u001b[34mRunning default environment configuration script\u001b[0m\n", - "\u001b[34m/opt/amazon/lib/python3.7/site-packages/jsonref.py:8: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working\n", - " from collections import Mapping, MutableMapping, Sequence\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:14 INFO 139703431448384] Reading default configuration from /opt/amazon/lib/python3.7/site-packages/algorithm/default-input.json: {'encoder_layers': 'auto', 'mini_batch_size': '256', 'epochs': '50', 'encoder_layers_activation': 'sigmoid', 'optimizer': 'adadelta', 'tolerance': '0.001', 'num_patience_epochs': '3', 'batch_norm': 'false', 'rescale_gradient': '1.0', 'clip_gradient': 'Inf', 'weight_decay': '0.0', 'learning_rate': '0.01', 'sub_sample': '1.0', '_tuning_objective_metric': '', '_data_format': 'record', '_num_gpus': 'auto', '_num_kv_servers': 'auto', '_kvstore': 'auto_gpu'}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:14 INFO 139703431448384] Merging with provided configuration from /opt/ml/input/config/hyperparameters.json: {'feature_dim': '2000', 'num_topics': '20', 'num_patience_epochs': '5', 'epochs': '100', 'tolerance': '0.001', 'mini_batch_size': '128'}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:14 INFO 139703431448384] Final configuration: {'encoder_layers': 'auto', 'mini_batch_size': '128', 'epochs': '100', 'encoder_layers_activation': 'sigmoid', 'optimizer': 'adadelta', 'tolerance': '0.001', 'num_patience_epochs': '5', 'batch_norm': 'false', 'rescale_gradient': '1.0', 'clip_gradient': 'Inf', 'weight_decay': '0.0', 'learning_rate': '0.01', 'sub_sample': '1.0', '_tuning_objective_metric': '', '_data_format': 'record', '_num_gpus': 'auto', '_num_kv_servers': 'auto', '_kvstore': 'auto_gpu', 'feature_dim': '2000', 'num_topics': '20'}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:14 INFO 139703431448384] nvidia-smi: took 0.028 seconds to run.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:14 INFO 139703431448384] nvidia-smi identified 0 GPUs.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:14 INFO 140403258652480] Reading default configuration from /opt/amazon/lib/python3.7/site-packages/algorithm/default-input.json: {'encoder_layers': 'auto', 'mini_batch_size': '256', 'epochs': '50', 'encoder_layers_activation': 'sigmoid', 'optimizer': 'adadelta', 'tolerance': '0.001', 'num_patience_epochs': '3', 'batch_norm': 'false', 'rescale_gradient': '1.0', 'clip_gradient': 'Inf', 'weight_decay': '0.0', 'learning_rate': '0.01', 'sub_sample': '1.0', '_tuning_objective_metric': '', '_data_format': 'record', '_num_gpus': 'auto', '_num_kv_servers': 'auto', '_kvstore': 'auto_gpu'}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:14 INFO 140403258652480] Merging with provided configuration from /opt/ml/input/config/hyperparameters.json: {'feature_dim': '2000', 'num_topics': '20', 'num_patience_epochs': '5', 'epochs': '100', 'tolerance': '0.001', 'mini_batch_size': '128'}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:14 INFO 140403258652480] Final configuration: {'encoder_layers': 'auto', 'mini_batch_size': '128', 'epochs': '100', 'encoder_layers_activation': 'sigmoid', 'optimizer': 'adadelta', 'tolerance': '0.001', 'num_patience_epochs': '5', 'batch_norm': 'false', 'rescale_gradient': '1.0', 'clip_gradient': 'Inf', 'weight_decay': '0.0', 'learning_rate': '0.01', 'sub_sample': '1.0', '_tuning_objective_metric': '', '_data_format': 'record', '_num_gpus': 'auto', '_num_kv_servers': 'auto', '_kvstore': 'auto_gpu', 'feature_dim': '2000', 'num_topics': '20'}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:14 INFO 140403258652480] nvidia-smi: took 0.028 seconds to run.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:14 INFO 140403258652480] nvidia-smi identified 0 GPUs.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Launching parameter server for role scheduler\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] {'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-132-203.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/fd94bbd0-d2ad-41d3-b8d9-c2e03adae0b0', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'AWS_REGION': 'us-west-2', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60b36e67-87ed-4157-a58b-cacd43209060', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60b36e67-87ed-4157-a58b-cacd43209060', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml'}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] envs={'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-132-203.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/fd94bbd0-d2ad-41d3-b8d9-c2e03adae0b0', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'AWS_REGION': 'us-west-2', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60b36e67-87ed-4157-a58b-cacd43209060', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60b36e67-87ed-4157-a58b-cacd43209060', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml', 'DMLC_ROLE': 'scheduler', 'DMLC_PS_ROOT_URI': '10.0.132.203', 'DMLC_PS_ROOT_PORT': '9000', 'DMLC_NUM_SERVER': '2', 'DMLC_NUM_WORKER': '2'}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Launching parameter server for role server\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] {'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-132-203.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/fd94bbd0-d2ad-41d3-b8d9-c2e03adae0b0', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'AWS_REGION': 'us-west-2', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60b36e67-87ed-4157-a58b-cacd43209060', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60b36e67-87ed-4157-a58b-cacd43209060', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml'}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] envs={'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-132-203.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/fd94bbd0-d2ad-41d3-b8d9-c2e03adae0b0', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'AWS_REGION': 'us-west-2', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60b36e67-87ed-4157-a58b-cacd43209060', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60b36e67-87ed-4157-a58b-cacd43209060', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml', 'DMLC_ROLE': 'server', 'DMLC_PS_ROOT_URI': '10.0.132.203', 'DMLC_PS_ROOT_PORT': '9000', 'DMLC_NUM_SERVER': '2', 'DMLC_NUM_WORKER': '2'}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Environment: {'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-132-203.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/fd94bbd0-d2ad-41d3-b8d9-c2e03adae0b0', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'AWS_REGION': 'us-west-2', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60b36e67-87ed-4157-a58b-cacd43209060', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60b36e67-87ed-4157-a58b-cacd43209060', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml', 'DMLC_ROLE': 'worker', 'DMLC_PS_ROOT_URI': '10.0.132.203', 'DMLC_PS_ROOT_PORT': '9000', 'DMLC_NUM_SERVER': '2', 'DMLC_NUM_WORKER': '2'}\u001b[0m\n", - "\u001b[34mProcess 33 is a shell:scheduler.\u001b[0m\n", - "\u001b[34mProcess 34 is a shell:server.\u001b[0m\n", - "\u001b[34mProcess 1 is a worker.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Using default worker.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Checkpoint loading and saving are disabled.\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:15.519] [tensorio] [warning] TensorIO is already initialized; ignoring the initialization routine.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Initializing\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] None\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] vocab.txt\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Vocab file is not provided\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Number of GPUs being used: 0\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:15 INFO 139703431448384] Create Store: dist_async\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Launching parameter server for role server\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] {'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-172-252.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/5c199049-6e7a-415e-bc69-28a3e33c5f9a', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'AWS_REGION': 'us-west-2', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60a11e7a-186d-4f37-91e9-9a832d095495', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60a11e7a-186d-4f37-91e9-9a832d095495', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml'}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] envs={'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-172-252.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/5c199049-6e7a-415e-bc69-28a3e33c5f9a', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'AWS_REGION': 'us-west-2', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60a11e7a-186d-4f37-91e9-9a832d095495', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60a11e7a-186d-4f37-91e9-9a832d095495', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml', 'DMLC_ROLE': 'server', 'DMLC_PS_ROOT_URI': '10.0.132.203', 'DMLC_PS_ROOT_PORT': '9000', 'DMLC_NUM_SERVER': '2', 'DMLC_NUM_WORKER': '2'}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Environment: {'ENVROOT': '/opt/amazon', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION': 'cpp', 'HOSTNAME': 'ip-10-0-172-252.us-west-2.compute.internal', 'TRAINING_JOB_NAME': 'ntm-2021-06-08-23-15-03-276', 'NVIDIA_REQUIRE_CUDA': 'cuda>=9.0', 'TRAINING_JOB_ARN': 'arn:aws:sagemaker:us-west-2:688520471316:training-job/ntm-2021-06-08-23-15-03-276', 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI': '/v2/credentials/5c199049-6e7a-415e-bc69-28a3e33c5f9a', 'CANONICAL_ENVROOT': '/opt/amazon', 'PYTHONUNBUFFERED': 'TRUE', 'NVIDIA_VISIBLE_DEVICES': 'void', 'LD_LIBRARY_PATH': '/opt/amazon/lib/python3.7/site-packages/cv2/../../../../lib:/usr/local/nvidia/lib64:/opt/amazon/lib', 'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility', 'AWS_EXECUTION_ENV': 'AWS_ECS_EC2', 'PATH': '/opt/amazon/bin:/usr/local/nvidia/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/amazon/bin:/opt/amazon/bin', 'MXNET_STORAGE_FALLBACK_LOG_VERBOSE': '0', 'PWD': '/', 'LANG': 'en_US.utf8', 'SAGEMAKER_METRICS_DIRECTORY': '/opt/ml/output/metrics/sagemaker', 'AWS_REGION': 'us-west-2', 'HOME': '/root', 'SHLVL': '1', 'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION': '2', 'OMP_NUM_THREADS': '2', 'ECS_CONTAINER_METADATA_URI': 'http://169.254.170.2/v3/60a11e7a-186d-4f37-91e9-9a832d095495', 'DMLC_INTERFACE': 'eth0', 'ECS_CONTAINER_METADATA_URI_V4': 'http://169.254.170.2/v4/60a11e7a-186d-4f37-91e9-9a832d095495', 'SAGEMAKER_HTTP_PORT': '8080', 'SAGEMAKER_DATA_PATH': '/opt/ml', 'DMLC_ROLE': 'worker', 'DMLC_PS_ROOT_URI': '10.0.132.203', 'DMLC_PS_ROOT_PORT': '9000', 'DMLC_NUM_SERVER': '2', 'DMLC_NUM_WORKER': '2'}\u001b[0m\n", - "\u001b[35mProcess 34 is a shell:server.\u001b[0m\n", - "\u001b[35mProcess 1 is a worker.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Using default worker.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Checkpoint loading and saving are disabled.\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:15.517] [tensorio] [warning] TensorIO is already initialized; ignoring the initialization routine.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Initializing\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] None\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] vocab.txt\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Vocab file is not provided\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Number of GPUs being used: 0\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:15 INFO 140403258652480] Create Store: dist_async\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194296.2641668, \"EndTime\": 1623194296.2641964, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"Meta\": \"init_train_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Total Batches Seen\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Max Records Seen Between Resets\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Max Batches Seen Between Resets\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Reset Count\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Number of Records Since Last Reset\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Number of Batches Since Last Reset\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}}}\n", - "\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:16.264] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 0, \"duration\": 757, \"num_examples\": 1, \"num_bytes\": 55596}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:16 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:16 INFO 139703431448384] # Starting training for epoch 1\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194296.2179184, \"EndTime\": 1623194296.217946, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"Meta\": \"init_train_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Total Batches Seen\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Max Records Seen Between Resets\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Max Batches Seen Between Resets\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Reset Count\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Number of Records Since Last Reset\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}, \"Number of Batches Since Last Reset\": {\"sum\": 0.0, \"count\": 1, \"min\": 0, \"max\": 0}}}\n", - "\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:16.218] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 0, \"duration\": 705, \"num_examples\": 1, \"num_bytes\": 48048}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:16 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:16 INFO 140403258652480] # Starting training for epoch 1\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:17.362] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 2, \"duration\": 1097, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] # Finished training epoch 1 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) total: 7.021950817877246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) kld: 0.01430272898587939\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) recons: 7.007648098853327\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) logppx: 7.021950817877246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] #quality_metric: host=algo-1, epoch=1, train total_loss =7.021950817877246\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:17.369] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 0, \"duration\": 1849, \"num_examples\": 1, \"num_bytes\": 43464}\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:17.442] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 2, \"duration\": 73, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) total: 7.136931283133371\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) kld: 0.0017484314074473722\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) recons: 7.135182857513428\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Loss (name: value) logppx: 7.136931283133371\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] #validation_score (1): 7.136931283133371\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] Timing: train: 1.10s, val: 0.08s, epoch: 1.18s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] #progress_metric: host=algo-1, completed 1.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194296.2646484, \"EndTime\": 1623194297.4443984, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 0, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Total Batches Seen\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3278.2553720648184 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:17 INFO 139703431448384] # Starting training for epoch 2\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:17.275] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 2, \"duration\": 1056, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] # Finished training epoch 1 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) total: 7.048994029721906\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) kld: 0.014254417152128994\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) recons: 7.034739609687559\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) logppx: 7.048994029721906\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] #quality_metric: host=algo-2, epoch=1, train total_loss =7.048994029721906\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:17.281] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 0, \"duration\": 1763, \"num_examples\": 1, \"num_bytes\": 43464}\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:17.377] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 2, \"duration\": 95, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) total: 7.139745439801898\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) kld: 0.0017864805746025272\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) recons: 7.137959071568081\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Loss (name: value) logppx: 7.139745439801898\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] #validation_score (1): 7.139745439801898\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] Timing: train: 1.06s, val: 0.10s, epoch: 1.16s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] #progress_metric: host=algo-2, completed 1.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194296.2184074, \"EndTime\": 1623194297.379345, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 0, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Total Batches Seen\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 2.0, \"count\": 1, \"min\": 2, \"max\": 2}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3335.7898596094724 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:17 INFO 140403258652480] # Starting training for epoch 2\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:18.520] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 5, \"duration\": 1075, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] # Finished training epoch 2 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) total: 6.945022417652991\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) kld: 0.0031111678878416216\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) recons: 6.941911282077912\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) logppx: 6.945022417652991\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] #quality_metric: host=algo-1, epoch=2, train total_loss =6.945022417652991\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:18.681] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 5, \"duration\": 159, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) total: 7.119487626211984\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) kld: 0.0032733817185674396\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) recons: 7.116214207240513\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Loss (name: value) logppx: 7.119487626211984\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] #validation_score (2): 7.119487626211984\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] Timing: train: 1.08s, val: 0.16s, epoch: 1.24s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] #progress_metric: host=algo-1, completed 2.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194297.4447153, \"EndTime\": 1623194298.6862426, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 1, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 7736.0, \"count\": 1, \"min\": 7736, \"max\": 7736}, \"Total Batches Seen\": {\"sum\": 62.0, \"count\": 1, \"min\": 62, \"max\": 62}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 4.0, \"count\": 1, \"min\": 4, \"max\": 4}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3115.119614255585 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:18 INFO 139703431448384] # Starting training for epoch 3\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:18.564] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 5, \"duration\": 1185, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] # Finished training epoch 2 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) total: 6.961147154531171\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) kld: 0.003194315143064746\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) recons: 6.9579527608809935\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) logppx: 6.961147154531171\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] #quality_metric: host=algo-2, epoch=2, train total_loss =6.961147154531171\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:18.658] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 5, \"duration\": 91, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) total: 7.119496617998395\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) kld: 0.0033224847367299454\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) recons: 7.116174152919224\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Loss (name: value) logppx: 7.119496617998395\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] #validation_score (2): 7.119496617998395\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] Timing: train: 1.19s, val: 0.10s, epoch: 1.29s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] #progress_metric: host=algo-2, completed 2.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194297.3795354, \"EndTime\": 1623194298.667446, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 1, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 7746.0, \"count\": 1, \"min\": 7746, \"max\": 7746}, \"Total Batches Seen\": {\"sum\": 62.0, \"count\": 1, \"min\": 62, \"max\": 62}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 4.0, \"count\": 1, \"min\": 4, \"max\": 4}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3006.7530111416822 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:18 INFO 140403258652480] # Starting training for epoch 3\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:19.860] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 8, \"duration\": 1173, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] # Finished training epoch 3 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) total: 6.9309429314828686\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) kld: 0.004128934038172085\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) recons: 6.926813971611761\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) logppx: 6.9309429314828686\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] #quality_metric: host=algo-1, epoch=3, train total_loss =6.9309429314828686\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:19.920] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 8, \"duration\": 1252, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:19 INFO 140403258652480] # Finished training epoch 3 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:19 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:19 INFO 140403258652480] Loss (name: value) total: 6.944729205100767\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:19 INFO 140403258652480] Loss (name: value) kld: 0.004006417156497557\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:19 INFO 140403258652480] Loss (name: value) recons: 6.940722815452084\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:19 INFO 140403258652480] Loss (name: value) logppx: 6.944729205100767\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:19 INFO 140403258652480] #quality_metric: host=algo-2, epoch=3, train total_loss =6.944729205100767\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:20.019] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 8, \"duration\": 95, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] Loss (name: value) total: 7.109448705400739\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] Loss (name: value) kld: 0.003918564678835017\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] Loss (name: value) recons: 7.105530193873814\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] Loss (name: value) logppx: 7.109448705400739\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] #validation_score (3): 7.109448705400739\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] Timing: train: 1.25s, val: 0.10s, epoch: 1.36s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] #progress_metric: host=algo-2, completed 3.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194298.6680233, \"EndTime\": 1623194300.024858, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 2, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 11619.0, \"count\": 1, \"min\": 11619, \"max\": 11619}, \"Total Batches Seen\": {\"sum\": 93.0, \"count\": 1, \"min\": 93, \"max\": 93}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 6.0, \"count\": 1, \"min\": 6, \"max\": 6}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=2854.06409378392 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:20 INFO 140403258652480] # Starting training for epoch 4\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:19.959] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 8, \"duration\": 96, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) total: 7.116677624838693\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) kld: 0.004577102804822581\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) recons: 7.112100533076695\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Loss (name: value) logppx: 7.116677624838693\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] #validation_score (3): 7.116677624838693\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] Timing: train: 1.18s, val: 0.10s, epoch: 1.28s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] #progress_metric: host=algo-1, completed 3.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194298.686546, \"EndTime\": 1623194299.9663444, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 2, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 11604.0, \"count\": 1, \"min\": 11604, \"max\": 11604}, \"Total Batches Seen\": {\"sum\": 93.0, \"count\": 1, \"min\": 93, \"max\": 93}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 6.0, \"count\": 1, \"min\": 6, \"max\": 6}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3022.0343676153866 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:19 INFO 139703431448384] # Starting training for epoch 4\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:20.939] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 11, \"duration\": 972, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:20 INFO 139703431448384] # Finished training epoch 4 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:20 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:20 INFO 139703431448384] Loss (name: value) total: 6.92934158155995\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:20 INFO 139703431448384] Loss (name: value) kld: 0.005020001377429693\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:20 INFO 139703431448384] Loss (name: value) recons: 6.924321613004131\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:20 INFO 139703431448384] Loss (name: value) logppx: 6.92934158155995\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:20 INFO 139703431448384] #quality_metric: host=algo-1, epoch=4, train total_loss =6.92934158155995\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:21.076] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 11, \"duration\": 1051, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] # Finished training epoch 4 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) total: 6.940548423797853\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) kld: 0.005003343933382102\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) recons: 6.935545083015196\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) logppx: 6.940548423797853\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] #quality_metric: host=algo-2, epoch=4, train total_loss =6.940548423797853\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:21.152] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 11, \"duration\": 74, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) total: 7.105281829833984\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) kld: 0.005025317825909171\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) recons: 7.10025657926287\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Loss (name: value) logppx: 7.105281829833984\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] #validation_score (4): 7.105281829833984\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] Timing: train: 1.05s, val: 0.08s, epoch: 1.13s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] #progress_metric: host=algo-2, completed 4.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194300.025165, \"EndTime\": 1623194301.1595345, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 3, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 15492.0, \"count\": 1, \"min\": 15492, \"max\": 15492}, \"Total Batches Seen\": {\"sum\": 124.0, \"count\": 1, \"min\": 124, \"max\": 124}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 8.0, \"count\": 1, \"min\": 8, \"max\": 8}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3413.730286856041 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:21 INFO 140403258652480] # Starting training for epoch 5\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:21.028] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 11, \"duration\": 87, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) total: 7.111966950552804\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) kld: 0.005739550172750439\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) recons: 7.106227466038296\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) logppx: 7.111966950552804\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] #validation_score (4): 7.111966950552804\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Timing: train: 0.97s, val: 0.09s, epoch: 1.07s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] #progress_metric: host=algo-1, completed 4.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194299.96661, \"EndTime\": 1623194301.0333276, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 3, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 15472.0, \"count\": 1, \"min\": 15472, \"max\": 15472}, \"Total Batches Seen\": {\"sum\": 124.0, \"count\": 1, \"min\": 124, \"max\": 124}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 8.0, \"count\": 1, \"min\": 8, \"max\": 8}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3625.557345290125 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] # Starting training for epoch 5\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:22.114] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 14, \"duration\": 954, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] # Finished training epoch 5 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) total: 6.93538026655874\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) kld: 0.0059138025277324265\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) recons: 6.929466424449798\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) logppx: 6.93538026655874\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] #quality_metric: host=algo-2, epoch=5, train total_loss =6.93538026655874\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:21.986] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 14, \"duration\": 952, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] # Finished training epoch 5 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) total: 6.9223884728647045\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) kld: 0.005677949573333946\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) recons: 6.916710538248862\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] Loss (name: value) logppx: 6.9223884728647045\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:21 INFO 139703431448384] #quality_metric: host=algo-1, epoch=5, train total_loss =6.9223884728647045\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:22.058] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 14, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] Loss (name: value) total: 7.098155226026263\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] Loss (name: value) kld: 0.005471409098910434\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] Loss (name: value) recons: 7.092683860233852\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] Loss (name: value) logppx: 7.098155226026263\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] #validation_score (5): 7.098155226026263\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] Timing: train: 0.95s, val: 0.08s, epoch: 1.03s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] #progress_metric: host=algo-1, completed 5.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194301.033632, \"EndTime\": 1623194302.0641418, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 4, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 19340.0, \"count\": 1, \"min\": 19340, \"max\": 19340}, \"Total Batches Seen\": {\"sum\": 155.0, \"count\": 1, \"min\": 155, \"max\": 155}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 10.0, \"count\": 1, \"min\": 10, \"max\": 10}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3752.8988635751152 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:22 INFO 139703431448384] # Starting training for epoch 6\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:22.218] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 14, \"duration\": 103, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) total: 7.094639165060861\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) kld: 0.005065387048359428\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) recons: 7.089573860168457\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Loss (name: value) logppx: 7.094639165060861\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] #validation_score (5): 7.094639165060861\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] Timing: train: 0.96s, val: 0.11s, epoch: 1.06s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] #progress_metric: host=algo-2, completed 5.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194301.1598465, \"EndTime\": 1623194302.224869, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 4, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 19365.0, \"count\": 1, \"min\": 19365, \"max\": 19365}, \"Total Batches Seen\": {\"sum\": 155.0, \"count\": 1, \"min\": 155, \"max\": 155}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 10.0, \"count\": 1, \"min\": 10, \"max\": 10}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3635.967529855732 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:22 INFO 140403258652480] # Starting training for epoch 6\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:23.167] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 17, \"duration\": 940, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] # Finished training epoch 6 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) total: 6.933675193017529\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) kld: 0.007857177000973494\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) recons: 6.925818047215862\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) logppx: 6.933675193017529\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] #quality_metric: host=algo-2, epoch=6, train total_loss =6.933675193017529\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:23.029] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 17, \"duration\": 964, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] # Finished training epoch 6 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) total: 6.918802434398282\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) kld: 0.00695909055009965\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) recons: 6.911843342165793\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) logppx: 6.918802434398282\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] #quality_metric: host=algo-1, epoch=6, train total_loss =6.918802434398282\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:23.116] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 17, \"duration\": 85, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) total: 7.1021351133074075\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) kld: 0.007741069953356471\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) recons: 7.0943940707615445\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) logppx: 7.1021351133074075\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] #validation_score (6): 7.1021351133074075\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] patience losses:[7.136931283133371, 7.119487626211984, 7.116677624838693, 7.111966950552804, 7.098155226026263] min patience loss:7.098155226026263 current loss:7.1021351133074075 absolute loss difference:0.003979887281144734\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Timing: train: 0.97s, val: 0.09s, epoch: 1.05s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] #progress_metric: host=algo-1, completed 6.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194302.0644732, \"EndTime\": 1623194303.1175935, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 5, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 23208.0, \"count\": 1, \"min\": 23208, \"max\": 23208}, \"Total Batches Seen\": {\"sum\": 186.0, \"count\": 1, \"min\": 186, \"max\": 186}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 12.0, \"count\": 1, \"min\": 12, \"max\": 12}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3672.328294612598 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] # Starting training for epoch 7\u001b[0m\n", - "\n", - "2021-06-08 23:18:11 Training - Training image download completed. Training in progress.\u001b[35m[2021-06-08 23:18:23.231] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 17, \"duration\": 63, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) total: 7.101483889988491\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) kld: 0.0077785625388579705\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) recons: 7.093705381665911\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Loss (name: value) logppx: 7.101483889988491\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] #validation_score (6): 7.101483889988491\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] patience losses:[7.139745439801898, 7.119496617998395, 7.109448705400739, 7.105281829833984, 7.094639165060861] min patience loss:7.094639165060861 current loss:7.101483889988491 absolute loss difference:0.006844724927629997\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] Timing: train: 0.94s, val: 0.06s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] #progress_metric: host=algo-2, completed 6.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194302.2252653, \"EndTime\": 1623194303.2330728, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 5, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 23238.0, \"count\": 1, \"min\": 23238, \"max\": 23238}, \"Total Batches Seen\": {\"sum\": 186.0, \"count\": 1, \"min\": 186, \"max\": 186}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 12.0, \"count\": 1, \"min\": 12, \"max\": 12}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3842.388624220295 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:23 INFO 140403258652480] # Starting training for epoch 7\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:23.974] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 20, \"duration\": 856, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] # Finished training epoch 7 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) total: 6.916796845774496\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) kld: 0.008649216882223565\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) recons: 6.908147592698374\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] Loss (name: value) logppx: 6.916796845774496\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:23 INFO 139703431448384] #quality_metric: host=algo-1, epoch=7, train total_loss =6.916796845774496\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:24.043] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 20, \"duration\": 67, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) total: 7.092641285487583\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) kld: 0.007715762925467321\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) recons: 7.084925447191511\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) logppx: 7.092641285487583\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] #validation_score (7): 7.092641285487583\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] patience losses:[7.119487626211984, 7.116677624838693, 7.111966950552804, 7.098155226026263, 7.1021351133074075] min patience loss:7.098155226026263 current loss:7.092641285487583 absolute loss difference:0.005513940538679485\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Timing: train: 0.86s, val: 0.07s, epoch: 0.93s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] #progress_metric: host=algo-1, completed 7.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194303.1178982, \"EndTime\": 1623194304.0474145, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 6, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 27076.0, \"count\": 1, \"min\": 27076, \"max\": 27076}, \"Total Batches Seen\": {\"sum\": 217.0, \"count\": 1, \"min\": 217, \"max\": 217}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 14.0, \"count\": 1, \"min\": 14, \"max\": 14}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4160.689330512278 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] # Starting training for epoch 8\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:24.933] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 23, \"duration\": 885, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] # Finished training epoch 8 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) total: 6.908025887704665\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) kld: 0.010726808224834742\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) recons: 6.897299074357556\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] Loss (name: value) logppx: 6.908025887704665\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:24 INFO 139703431448384] #quality_metric: host=algo-1, epoch=8, train total_loss =6.908025887704665\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:24.194] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 20, \"duration\": 959, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] # Finished training epoch 7 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) total: 6.928057343729081\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) kld: 0.009298830878950896\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) recons: 6.918758549997883\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) logppx: 6.928057343729081\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] #quality_metric: host=algo-2, epoch=7, train total_loss =6.928057343729081\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:24.285] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 20, \"duration\": 90, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) total: 7.101057393210275\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) kld: 0.011410580415810858\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) recons: 7.089646748134068\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Loss (name: value) logppx: 7.101057393210275\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] #validation_score (7): 7.101057393210275\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] patience losses:[7.119496617998395, 7.109448705400739, 7.105281829833984, 7.094639165060861, 7.101483889988491] min patience loss:7.094639165060861 current loss:7.101057393210275 absolute loss difference:0.0064182281494140625\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] Timing: train: 0.96s, val: 0.09s, epoch: 1.05s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] #progress_metric: host=algo-2, completed 7.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194303.2335095, \"EndTime\": 1623194304.2873878, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 6, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 27111.0, \"count\": 1, \"min\": 27111, \"max\": 27111}, \"Total Batches Seen\": {\"sum\": 217.0, \"count\": 1, \"min\": 217, \"max\": 217}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 14.0, \"count\": 1, \"min\": 14, \"max\": 14}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3674.429608531523 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:24 INFO 140403258652480] # Starting training for epoch 8\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:25.009] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 23, \"duration\": 74, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) total: 7.107043198176792\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) kld: 0.01612756241645132\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) recons: 7.090915748051235\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) logppx: 7.107043198176792\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] #validation_score (8): 7.107043198176792\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] patience losses:[7.116677624838693, 7.111966950552804, 7.098155226026263, 7.1021351133074075, 7.092641285487583] min patience loss:7.092641285487583 current loss:7.107043198176792 absolute loss difference:0.014401912689208984\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Timing: train: 0.89s, val: 0.08s, epoch: 0.96s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] #progress_metric: host=algo-1, completed 8.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194304.047655, \"EndTime\": 1623194305.011412, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 7, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 30944.0, \"count\": 1, \"min\": 30944, \"max\": 30944}, \"Total Batches Seen\": {\"sum\": 248.0, \"count\": 1, \"min\": 248, \"max\": 248}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 16.0, \"count\": 1, \"min\": 16, \"max\": 16}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4012.8560928324187 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] # Starting training for epoch 9\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:25.944] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 26, \"duration\": 932, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] # Finished training epoch 9 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) total: 6.897835677669894\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) kld: 0.014341895273255726\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) recons: 6.8834937849352436\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] Loss (name: value) logppx: 6.897835677669894\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:25 INFO 139703431448384] #quality_metric: host=algo-1, epoch=9, train total_loss =6.897835677669894\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:25.215] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 23, \"duration\": 927, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] # Finished training epoch 8 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) total: 6.921251077805796\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) kld: 0.01125404444493113\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) recons: 6.909997101752989\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) logppx: 6.921251077805796\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] #quality_metric: host=algo-2, epoch=8, train total_loss =6.921251077805796\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:25.297] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 23, \"duration\": 81, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) total: 7.077770573752267\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) kld: 0.009851935452648572\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) recons: 7.067918709346226\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Loss (name: value) logppx: 7.077770573752267\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] #validation_score (8): 7.077770573752267\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] patience losses:[7.109448705400739, 7.105281829833984, 7.094639165060861, 7.101483889988491, 7.101057393210275] min patience loss:7.094639165060861 current loss:7.077770573752267 absolute loss difference:0.01686859130859375\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] Timing: train: 0.93s, val: 0.09s, epoch: 1.02s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] #progress_metric: host=algo-2, completed 8.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194304.2876914, \"EndTime\": 1623194305.3039777, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 7, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 30984.0, \"count\": 1, \"min\": 30984, \"max\": 30984}, \"Total Batches Seen\": {\"sum\": 248.0, \"count\": 1, \"min\": 248, \"max\": 248}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 16.0, \"count\": 1, \"min\": 16, \"max\": 16}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3809.479668714784 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:25 INFO 140403258652480] # Starting training for epoch 9\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:26.019] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 26, \"duration\": 74, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) total: 7.067824908665249\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) kld: 0.01927896429385458\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) recons: 7.048545973641532\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) logppx: 7.067824908665249\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] #validation_score (9): 7.067824908665249\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] patience losses:[7.111966950552804, 7.098155226026263, 7.1021351133074075, 7.092641285487583, 7.107043198176792] min patience loss:7.092641285487583 current loss:7.067824908665249 absolute loss difference:0.024816376822334618\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Timing: train: 0.93s, val: 0.08s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] #progress_metric: host=algo-1, completed 9.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194305.011714, \"EndTime\": 1623194306.0244596, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 8, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 34812.0, \"count\": 1, \"min\": 34812, \"max\": 34812}, \"Total Batches Seen\": {\"sum\": 279.0, \"count\": 1, \"min\": 279, \"max\": 279}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 18.0, \"count\": 1, \"min\": 18, \"max\": 18}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3818.821442274331 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] # Starting training for epoch 10\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:26.943] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 29, \"duration\": 918, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] # Finished training epoch 10 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) total: 6.866616229857168\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) kld: 0.02988805096115797\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) recons: 6.836728161381137\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] Loss (name: value) logppx: 6.866616229857168\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:26 INFO 139703431448384] #quality_metric: host=algo-1, epoch=10, train total_loss =6.866616229857168\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:26.254] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 26, \"duration\": 948, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] # Finished training epoch 9 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) total: 6.904637463631168\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) kld: 0.018383676441566597\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) recons: 6.886253783779759\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) logppx: 6.904637463631168\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] #quality_metric: host=algo-2, epoch=9, train total_loss =6.904637463631168\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:26.326] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 26, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) total: 7.051619393484933\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) kld: 0.025550063433391706\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) recons: 7.026069368634905\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Loss (name: value) logppx: 7.051619393484933\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] #validation_score (9): 7.051619393484933\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] patience losses:[7.105281829833984, 7.094639165060861, 7.101483889988491, 7.101057393210275, 7.077770573752267] min patience loss:7.077770573752267 current loss:7.051619393484933 absolute loss difference:0.026151180267333984\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] Timing: train: 0.95s, val: 0.08s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] #progress_metric: host=algo-2, completed 9.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194305.3045847, \"EndTime\": 1623194306.3326316, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 8, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 34857.0, \"count\": 1, \"min\": 34857, \"max\": 34857}, \"Total Batches Seen\": {\"sum\": 279.0, \"count\": 1, \"min\": 279, \"max\": 279}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 18.0, \"count\": 1, \"min\": 18, \"max\": 18}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3765.9284260893855 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:26 INFO 140403258652480] # Starting training for epoch 10\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:27.014] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 29, \"duration\": 69, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Loss (name: value) total: 7.012120178767613\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Loss (name: value) kld: 0.03921731774296079\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Loss (name: value) recons: 6.972902774810791\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Loss (name: value) logppx: 7.012120178767613\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] #validation_score (10): 7.012120178767613\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] patience losses:[7.098155226026263, 7.1021351133074075, 7.092641285487583, 7.107043198176792, 7.067824908665249] min patience loss:7.067824908665249 current loss:7.012120178767613 absolute loss difference:0.055704729897636085\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Timing: train: 0.92s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] #progress_metric: host=algo-1, completed 10.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194306.0247035, \"EndTime\": 1623194307.0191705, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 9, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 38680.0, \"count\": 1, \"min\": 38680, \"max\": 38680}, \"Total Batches Seen\": {\"sum\": 310.0, \"count\": 1, \"min\": 310, \"max\": 310}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 20.0, \"count\": 1, \"min\": 20, \"max\": 20}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3889.006903746433 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] # Starting training for epoch 11\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:27.306] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 29, \"duration\": 972, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] # Finished training epoch 10 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) total: 6.860330039455045\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) kld: 0.03817620948557892\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) recons: 6.822153822068246\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) logppx: 6.860330039455045\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] #quality_metric: host=algo-2, epoch=10, train total_loss =6.860330039455045\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:27.413] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 29, \"duration\": 106, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) total: 7.009148188999721\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) kld: 0.03916592576674053\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) recons: 6.969982283455985\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Loss (name: value) logppx: 7.009148188999721\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] #validation_score (10): 7.009148188999721\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] patience losses:[7.094639165060861, 7.101483889988491, 7.101057393210275, 7.077770573752267, 7.051619393484933] min patience loss:7.051619393484933 current loss:7.009148188999721 absolute loss difference:0.0424712044852118\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] Timing: train: 0.97s, val: 0.11s, epoch: 1.09s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] #progress_metric: host=algo-2, completed 10.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194306.3332198, \"EndTime\": 1623194307.4189389, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 9, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 38730.0, \"count\": 1, \"min\": 38730, \"max\": 38730}, \"Total Batches Seen\": {\"sum\": 310.0, \"count\": 1, \"min\": 310, \"max\": 310}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 20.0, \"count\": 1, \"min\": 20, \"max\": 20}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3566.7040638525095 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:27 INFO 140403258652480] # Starting training for epoch 11\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:27.999] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 32, \"duration\": 979, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] # Finished training epoch 11 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:27 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) total: 6.827744795430091\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) kld: 0.04285170258052887\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) recons: 6.78489310895243\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) logppx: 6.827744795430091\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] #quality_metric: host=algo-1, epoch=11, train total_loss =6.827744795430091\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:28.085] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 32, \"duration\": 84, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) total: 6.982710361480713\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) kld: 0.04274229811770575\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) recons: 6.939968109130859\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Loss (name: value) logppx: 6.982710361480713\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] #validation_score (11): 6.982710361480713\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] patience losses:[7.1021351133074075, 7.092641285487583, 7.107043198176792, 7.067824908665249, 7.012120178767613] min patience loss:7.012120178767613 current loss:6.982710361480713 absolute loss difference:0.02940981728689973\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] Timing: train: 0.98s, val: 0.09s, epoch: 1.07s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] #progress_metric: host=algo-1, completed 11.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194307.019444, \"EndTime\": 1623194308.0911007, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 10, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 42548.0, \"count\": 1, \"min\": 42548, \"max\": 42548}, \"Total Batches Seen\": {\"sum\": 341.0, \"count\": 1, \"min\": 341, \"max\": 341}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 22.0, \"count\": 1, \"min\": 22, \"max\": 22}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3608.861403707412 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:28 INFO 139703431448384] # Starting training for epoch 12\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:28.313] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 32, \"duration\": 894, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] # Finished training epoch 11 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) total: 6.831307157393424\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) kld: 0.046623781113134276\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) recons: 6.784683385202961\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) logppx: 6.831307157393424\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] #quality_metric: host=algo-2, epoch=11, train total_loss =6.831307157393424\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:28.397] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 32, \"duration\": 82, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) total: 6.9772820472717285\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) kld: 0.04676898941397667\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) recons: 6.930512973240444\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Loss (name: value) logppx: 6.9772820472717285\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] #validation_score (11): 6.9772820472717285\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] patience losses:[7.101483889988491, 7.101057393210275, 7.077770573752267, 7.051619393484933, 7.009148188999721] min patience loss:7.009148188999721 current loss:6.9772820472717285 absolute loss difference:0.03186614172799285\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] Timing: train: 0.90s, val: 0.09s, epoch: 0.98s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] #progress_metric: host=algo-2, completed 11.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194307.4191885, \"EndTime\": 1623194308.4029512, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 10, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 42603.0, \"count\": 1, \"min\": 42603, \"max\": 42603}, \"Total Batches Seen\": {\"sum\": 341.0, \"count\": 1, \"min\": 341, \"max\": 341}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 22.0, \"count\": 1, \"min\": 22, \"max\": 22}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3935.5065904948706 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:28 INFO 140403258652480] # Starting training for epoch 12\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:29.007] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 35, \"duration\": 915, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] # Finished training epoch 12 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) total: 6.7968784224602485\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) kld: 0.04590961355115137\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) recons: 6.75096881774164\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) logppx: 6.7968784224602485\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] #quality_metric: host=algo-1, epoch=12, train total_loss =6.7968784224602485\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:29.079] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 35, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) total: 6.960537365504673\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) kld: 0.05211935032691274\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) recons: 6.908417906079974\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Loss (name: value) logppx: 6.960537365504673\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] #validation_score (12): 6.960537365504673\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] patience losses:[7.092641285487583, 7.107043198176792, 7.067824908665249, 7.012120178767613, 6.982710361480713] min patience loss:6.982710361480713 current loss:6.960537365504673 absolute loss difference:0.022172995976039722\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] Timing: train: 0.92s, val: 0.08s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] #progress_metric: host=algo-1, completed 12.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194308.0913901, \"EndTime\": 1623194309.084099, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 11, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 46416.0, \"count\": 1, \"min\": 46416, \"max\": 46416}, \"Total Batches Seen\": {\"sum\": 372.0, \"count\": 1, \"min\": 372, \"max\": 372}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 24.0, \"count\": 1, \"min\": 24, \"max\": 24}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3895.8831761034608 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:29 INFO 139703431448384] # Starting training for epoch 13\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:29.317] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 35, \"duration\": 913, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] # Finished training epoch 12 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) total: 6.808753951903312\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) kld: 0.05013171859806584\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) recons: 6.758622204103777\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) logppx: 6.808753951903312\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] #quality_metric: host=algo-2, epoch=12, train total_loss =6.808753951903312\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:29.397] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 35, \"duration\": 77, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) total: 6.9570103372846335\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) kld: 0.04965064355305263\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) recons: 6.907359736306327\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Loss (name: value) logppx: 6.9570103372846335\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] #validation_score (12): 6.9570103372846335\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] patience losses:[7.101057393210275, 7.077770573752267, 7.051619393484933, 7.009148188999721, 6.9772820472717285] min patience loss:6.9772820472717285 current loss:6.9570103372846335 absolute loss difference:0.020271709987095043\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] Timing: train: 0.92s, val: 0.09s, epoch: 1.00s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] #progress_metric: host=algo-2, completed 12.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194308.403702, \"EndTime\": 1623194309.4065828, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 11, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 46476.0, \"count\": 1, \"min\": 46476, \"max\": 46476}, \"Total Batches Seen\": {\"sum\": 372.0, \"count\": 1, \"min\": 372, \"max\": 372}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 24.0, \"count\": 1, \"min\": 24, \"max\": 24}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3860.6604048282793 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:29 INFO 140403258652480] # Starting training for epoch 13\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:30.004] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 38, \"duration\": 920, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] # Finished training epoch 13 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) total: 6.784047307506684\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) kld: 0.05167782204526086\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) recons: 6.732369480594512\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) logppx: 6.784047307506684\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] #quality_metric: host=algo-1, epoch=13, train total_loss =6.784047307506684\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:30.075] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 38, \"duration\": 69, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) total: 6.945607253483364\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) kld: 0.05221213772892952\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) recons: 6.893395015171596\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Loss (name: value) logppx: 6.945607253483364\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] #validation_score (13): 6.945607253483364\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] patience losses:[7.107043198176792, 7.067824908665249, 7.012120178767613, 6.982710361480713, 6.960537365504673] min patience loss:6.960537365504673 current loss:6.945607253483364 absolute loss difference:0.014930112021309228\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] Timing: train: 0.92s, val: 0.07s, epoch: 1.00s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] #progress_metric: host=algo-1, completed 13.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194309.0843346, \"EndTime\": 1623194310.0809343, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 12, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 50284.0, \"count\": 1, \"min\": 50284, \"max\": 50284}, \"Total Batches Seen\": {\"sum\": 403.0, \"count\": 1, \"min\": 403, \"max\": 403}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 26.0, \"count\": 1, \"min\": 26, \"max\": 26}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3880.729424338352 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:30 INFO 139703431448384] # Starting training for epoch 14\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:30.352] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 38, \"duration\": 944, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] # Finished training epoch 13 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) total: 6.790463997471717\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) kld: 0.05356326711273963\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) recons: 6.736900691063173\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) logppx: 6.790463997471717\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] #quality_metric: host=algo-2, epoch=13, train total_loss =6.790463997471717\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:30.431] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 38, \"duration\": 77, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) total: 6.949711663382394\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) kld: 0.06298925408295222\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) recons: 6.886722496577671\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Loss (name: value) logppx: 6.949711663382394\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] #validation_score (13): 6.949711663382394\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] patience losses:[7.077770573752267, 7.051619393484933, 7.009148188999721, 6.9772820472717285, 6.9570103372846335] min patience loss:6.9570103372846335 current loss:6.949711663382394 absolute loss difference:0.007298673902239372\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] Timing: train: 0.95s, val: 0.08s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] #progress_metric: host=algo-2, completed 13.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194309.4069364, \"EndTime\": 1623194310.4379973, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 12, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 50349.0, \"count\": 1, \"min\": 50349, \"max\": 50349}, \"Total Batches Seen\": {\"sum\": 403.0, \"count\": 1, \"min\": 403, \"max\": 403}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 26.0, \"count\": 1, \"min\": 26, \"max\": 26}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3754.8299049650914 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:30 INFO 140403258652480] # Starting training for epoch 14\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:31.050] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 41, \"duration\": 969, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] # Finished training epoch 14 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) total: 6.768345082959821\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) kld: 0.05379751351692023\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) recons: 6.714547584133763\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) logppx: 6.768345082959821\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] #quality_metric: host=algo-1, epoch=14, train total_loss =6.768345082959821\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:31.121] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 41, \"duration\": 69, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) total: 6.93729373386928\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) kld: 0.05581598622458322\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) recons: 6.881477764674595\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Loss (name: value) logppx: 6.93729373386928\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] #validation_score (14): 6.93729373386928\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] patience losses:[7.067824908665249, 7.012120178767613, 6.982710361480713, 6.960537365504673, 6.945607253483364] min patience loss:6.945607253483364 current loss:6.93729373386928 absolute loss difference:0.008313519614083553\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] Timing: train: 0.97s, val: 0.07s, epoch: 1.05s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] #progress_metric: host=algo-1, completed 14.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194310.081162, \"EndTime\": 1623194311.1264644, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 13, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 54152.0, \"count\": 1, \"min\": 54152, \"max\": 54152}, \"Total Batches Seen\": {\"sum\": 434.0, \"count\": 1, \"min\": 434, \"max\": 434}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 28.0, \"count\": 1, \"min\": 28, \"max\": 28}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3699.8321466599255 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:31 INFO 139703431448384] # Starting training for epoch 15\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:31.409] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 41, \"duration\": 969, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] # Finished training epoch 14 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) total: 6.777322265409654\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) kld: 0.05655155463084098\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) recons: 6.720770716667175\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) logppx: 6.777322265409654\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] #quality_metric: host=algo-2, epoch=14, train total_loss =6.777322265409654\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:31.487] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 41, \"duration\": 76, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) total: 6.92958572932652\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) kld: 0.06050405012709754\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) recons: 6.869081701551165\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Loss (name: value) logppx: 6.92958572932652\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] #validation_score (14): 6.92958572932652\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] patience losses:[7.051619393484933, 7.009148188999721, 6.9772820472717285, 6.9570103372846335, 6.949711663382394] min patience loss:6.949711663382394 current loss:6.92958572932652 absolute loss difference:0.020125934055873707\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] Timing: train: 0.97s, val: 0.08s, epoch: 1.05s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] #progress_metric: host=algo-2, completed 14.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194310.4386146, \"EndTime\": 1623194311.4932613, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 13, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 54222.0, \"count\": 1, \"min\": 54222, \"max\": 54222}, \"Total Batches Seen\": {\"sum\": 434.0, \"count\": 1, \"min\": 434, \"max\": 434}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 28.0, \"count\": 1, \"min\": 28, \"max\": 28}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3671.7420173793935 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:31 INFO 140403258652480] # Starting training for epoch 15\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:32.013] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 44, \"duration\": 886, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] # Finished training epoch 15 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) total: 6.756431210425593\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) kld: 0.05619427904246315\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) recons: 6.700236870396521\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) logppx: 6.756431210425593\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] #quality_metric: host=algo-1, epoch=15, train total_loss =6.756431210425593\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:32.094] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 44, \"duration\": 80, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) total: 6.931581974029541\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) kld: 0.06444319231169564\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) recons: 6.867138794490269\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Loss (name: value) logppx: 6.931581974029541\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] #validation_score (15): 6.931581974029541\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] patience losses:[7.012120178767613, 6.982710361480713, 6.960537365504673, 6.945607253483364, 6.93729373386928] min patience loss:6.93729373386928 current loss:6.931581974029541 absolute loss difference:0.005711759839739372\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] Timing: train: 0.89s, val: 0.09s, epoch: 0.97s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] #progress_metric: host=algo-1, completed 15.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194311.12675, \"EndTime\": 1623194312.1009548, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 14, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 58020.0, \"count\": 1, \"min\": 58020, \"max\": 58020}, \"Total Batches Seen\": {\"sum\": 465.0, \"count\": 1, \"min\": 465, \"max\": 465}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 30.0, \"count\": 1, \"min\": 30, \"max\": 30}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3969.844593964667 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:32 INFO 139703431448384] # Starting training for epoch 16\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:32.458] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 44, \"duration\": 959, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] # Finished training epoch 15 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) total: 6.762902828954881\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) kld: 0.06072674670647229\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) recons: 6.702176090209715\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) logppx: 6.762902828954881\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] #quality_metric: host=algo-2, epoch=15, train total_loss =6.762902828954881\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:32.538] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 44, \"duration\": 78, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) total: 6.923871857779367\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) kld: 0.06473846627133233\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) recons: 6.859133379799979\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Loss (name: value) logppx: 6.923871857779367\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] #validation_score (15): 6.923871857779367\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] patience losses:[7.009148188999721, 6.9772820472717285, 6.9570103372846335, 6.949711663382394, 6.92958572932652] min patience loss:6.92958572932652 current loss:6.923871857779367 absolute loss difference:0.005713871547153637\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] Timing: train: 0.97s, val: 0.08s, epoch: 1.05s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] #progress_metric: host=algo-2, completed 15.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194311.493514, \"EndTime\": 1623194312.544257, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 14, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 58095.0, \"count\": 1, \"min\": 58095, \"max\": 58095}, \"Total Batches Seen\": {\"sum\": 465.0, \"count\": 1, \"min\": 465, \"max\": 465}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 30.0, \"count\": 1, \"min\": 30, \"max\": 30}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3685.4618964161864 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:32 INFO 140403258652480] # Starting training for epoch 16\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:33.063] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 47, \"duration\": 962, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] # Finished training epoch 16 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) total: 6.7487992163627375\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) kld: 0.06103249519102035\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) recons: 6.687766698098952\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) logppx: 6.7487992163627375\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] #quality_metric: host=algo-1, epoch=16, train total_loss =6.7487992163627375\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:33.134] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 47, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) total: 6.906581197466169\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) kld: 0.06776464677282742\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) recons: 6.8388165065220425\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Loss (name: value) logppx: 6.906581197466169\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] #validation_score (16): 6.906581197466169\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] patience losses:[6.982710361480713, 6.960537365504673, 6.945607253483364, 6.93729373386928, 6.931581974029541] min patience loss:6.931581974029541 current loss:6.906581197466169 absolute loss difference:0.025000776563372185\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] Timing: train: 0.96s, val: 0.07s, epoch: 1.04s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] #progress_metric: host=algo-1, completed 16.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194312.1012487, \"EndTime\": 1623194313.1397288, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 15, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 61888.0, \"count\": 1, \"min\": 61888, \"max\": 61888}, \"Total Batches Seen\": {\"sum\": 496.0, \"count\": 1, \"min\": 496, \"max\": 496}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 32.0, \"count\": 1, \"min\": 32, \"max\": 32}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3723.7373859741456 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:33 INFO 139703431448384] # Starting training for epoch 17\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:33.479] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 47, \"duration\": 934, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] # Finished training epoch 16 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) total: 6.74975081797569\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) kld: 0.06422678399230203\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) recons: 6.6855241137166175\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) logppx: 6.74975081797569\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] #quality_metric: host=algo-2, epoch=16, train total_loss =6.74975081797569\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:33.545] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 47, \"duration\": 64, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) total: 6.904898847852435\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) kld: 0.06404854729771614\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) recons: 6.840850285121372\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Loss (name: value) logppx: 6.904898847852435\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] #validation_score (16): 6.904898847852435\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] patience losses:[6.9772820472717285, 6.9570103372846335, 6.949711663382394, 6.92958572932652, 6.923871857779367] min patience loss:6.923871857779367 current loss:6.904898847852435 absolute loss difference:0.018973009926932072\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] Timing: train: 0.94s, val: 0.07s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] #progress_metric: host=algo-2, completed 16.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194312.5446615, \"EndTime\": 1623194313.5512521, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 15, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 61968.0, \"count\": 1, \"min\": 61968, \"max\": 61968}, \"Total Batches Seen\": {\"sum\": 496.0, \"count\": 1, \"min\": 496, \"max\": 496}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 32.0, \"count\": 1, \"min\": 32, \"max\": 32}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3847.1250520424564 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:33 INFO 140403258652480] # Starting training for epoch 17\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:34.066] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 50, \"duration\": 925, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] # Finished training epoch 17 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) total: 6.7264841295057725\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) kld: 0.06508037003297959\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) recons: 6.661403782906071\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) logppx: 6.7264841295057725\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] #quality_metric: host=algo-1, epoch=17, train total_loss =6.7264841295057725\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:34.157] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 50, \"duration\": 87, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) total: 6.898202623639788\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) kld: 0.06815796505127635\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) recons: 6.830044542040143\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Loss (name: value) logppx: 6.898202623639788\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] #validation_score (17): 6.898202623639788\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] patience losses:[6.960537365504673, 6.945607253483364, 6.93729373386928, 6.931581974029541, 6.906581197466169] min patience loss:6.906581197466169 current loss:6.898202623639788 absolute loss difference:0.00837857382638063\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] Timing: train: 0.93s, val: 0.10s, epoch: 1.02s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] #progress_metric: host=algo-1, completed 17.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194313.1402123, \"EndTime\": 1623194314.1630564, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 16, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 65756.0, \"count\": 1, \"min\": 65756, \"max\": 65756}, \"Total Batches Seen\": {\"sum\": 527.0, \"count\": 1, \"min\": 527, \"max\": 527}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 34.0, \"count\": 1, \"min\": 34, \"max\": 34}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3781.1410269856297 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:34 INFO 139703431448384] # Starting training for epoch 18\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:34.485] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 50, \"duration\": 933, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] # Finished training epoch 17 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) total: 6.73356645337997\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) kld: 0.06828877852568703\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) recons: 6.665277673352149\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) logppx: 6.73356645337997\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] #quality_metric: host=algo-2, epoch=17, train total_loss =6.73356645337997\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:34.579] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 50, \"duration\": 93, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) total: 6.883122852870396\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) kld: 0.06898650154471397\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) recons: 6.814136300768171\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Loss (name: value) logppx: 6.883122852870396\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] #validation_score (17): 6.883122852870396\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] patience losses:[6.9570103372846335, 6.949711663382394, 6.92958572932652, 6.923871857779367, 6.904898847852435] min patience loss:6.904898847852435 current loss:6.883122852870396 absolute loss difference:0.02177599498203886\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] Timing: train: 0.93s, val: 0.10s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] #progress_metric: host=algo-2, completed 17.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194313.551498, \"EndTime\": 1623194314.5854766, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 16, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 65841.0, \"count\": 1, \"min\": 65841, \"max\": 65841}, \"Total Batches Seen\": {\"sum\": 527.0, \"count\": 1, \"min\": 527, \"max\": 527}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 34.0, \"count\": 1, \"min\": 34, \"max\": 34}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3745.138764726225 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:34 INFO 140403258652480] # Starting training for epoch 18\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:35.099] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 53, \"duration\": 935, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] # Finished training epoch 18 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) total: 6.713530228983972\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) kld: 0.06813806379514356\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) recons: 6.645392121807221\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) logppx: 6.713530228983972\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] #quality_metric: host=algo-1, epoch=18, train total_loss =6.713530228983972\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:35.183] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 53, \"duration\": 82, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) total: 6.8816390718732565\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) kld: 0.07851824377264295\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) recons: 6.803120681217739\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Loss (name: value) logppx: 6.8816390718732565\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] #validation_score (18): 6.8816390718732565\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] patience losses:[6.945607253483364, 6.93729373386928, 6.931581974029541, 6.906581197466169, 6.898202623639788] min patience loss:6.898202623639788 current loss:6.8816390718732565 absolute loss difference:0.01656355176653168\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] Timing: train: 0.94s, val: 0.09s, epoch: 1.03s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] #progress_metric: host=algo-1, completed 18.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194314.1633422, \"EndTime\": 1623194315.1897638, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 17, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 69624.0, \"count\": 1, \"min\": 69624, \"max\": 69624}, \"Total Batches Seen\": {\"sum\": 558.0, \"count\": 1, \"min\": 558, \"max\": 558}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 36.0, \"count\": 1, \"min\": 36, \"max\": 36}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3767.8799355745973 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:35 INFO 139703431448384] # Starting training for epoch 19\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:35.505] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 53, \"duration\": 917, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] # Finished training epoch 18 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) total: 6.71918063394485\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) kld: 0.07071425573479745\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) recons: 6.64846638325722\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) logppx: 6.71918063394485\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] #quality_metric: host=algo-2, epoch=18, train total_loss =6.71918063394485\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:35.576] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 53, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) total: 6.869148254394531\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) kld: 0.06843102563704763\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) recons: 6.800717285701206\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Loss (name: value) logppx: 6.869148254394531\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] #validation_score (18): 6.869148254394531\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] patience losses:[6.949711663382394, 6.92958572932652, 6.923871857779367, 6.904898847852435, 6.883122852870396] min patience loss:6.883122852870396 current loss:6.869148254394531 absolute loss difference:0.013974598475864575\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] Timing: train: 0.92s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] #progress_metric: host=algo-2, completed 18.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194314.5858042, \"EndTime\": 1623194315.581066, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 17, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 69714.0, \"count\": 1, \"min\": 69714, \"max\": 69714}, \"Total Batches Seen\": {\"sum\": 558.0, \"count\": 1, \"min\": 558, \"max\": 558}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 36.0, \"count\": 1, \"min\": 36, \"max\": 36}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3890.8638374609914 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:35 INFO 140403258652480] # Starting training for epoch 19\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:36.121] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 56, \"duration\": 931, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] # Finished training epoch 19 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) total: 6.700147301919999\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) kld: 0.07084768109263913\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) recons: 6.6292996521919\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) logppx: 6.700147301919999\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] #quality_metric: host=algo-1, epoch=19, train total_loss =6.700147301919999\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:36.199] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 56, \"duration\": 76, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) total: 6.861605439867292\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) kld: 0.0726701415010861\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) recons: 6.788935320717948\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Loss (name: value) logppx: 6.861605439867292\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] #validation_score (19): 6.861605439867292\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] patience losses:[6.93729373386928, 6.931581974029541, 6.906581197466169, 6.898202623639788, 6.8816390718732565] min patience loss:6.8816390718732565 current loss:6.861605439867292 absolute loss difference:0.02003363200596464\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] Timing: train: 0.93s, val: 0.08s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] #progress_metric: host=algo-1, completed 19.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194315.1900723, \"EndTime\": 1623194316.204166, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 18, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 73492.0, \"count\": 1, \"min\": 73492, \"max\": 73492}, \"Total Batches Seen\": {\"sum\": 589.0, \"count\": 1, \"min\": 589, \"max\": 589}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 38.0, \"count\": 1, \"min\": 38, \"max\": 38}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3813.6669139598407 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:36 INFO 139703431448384] # Starting training for epoch 20\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:36.555] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 56, \"duration\": 973, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] # Finished training epoch 19 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) total: 6.708913426245412\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) kld: 0.07473494022363616\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) recons: 6.634178511558041\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) logppx: 6.708913426245412\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] #quality_metric: host=algo-2, epoch=19, train total_loss =6.708913426245412\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:36.626] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 56, \"duration\": 69, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) total: 6.881233283451626\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) kld: 0.08027186244726181\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) recons: 6.800961426326206\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Loss (name: value) logppx: 6.881233283451626\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] #validation_score (19): 6.881233283451626\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] patience losses:[6.92958572932652, 6.923871857779367, 6.904898847852435, 6.883122852870396, 6.869148254394531] min patience loss:6.869148254394531 current loss:6.881233283451626 absolute loss difference:0.01208502905709441\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] Timing: train: 0.97s, val: 0.07s, epoch: 1.05s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] #progress_metric: host=algo-2, completed 19.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194315.581353, \"EndTime\": 1623194316.6274457, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 18, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 73587.0, \"count\": 1, \"min\": 73587, \"max\": 73587}, \"Total Batches Seen\": {\"sum\": 589.0, \"count\": 1, \"min\": 589, \"max\": 589}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 38.0, \"count\": 1, \"min\": 38, \"max\": 38}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3701.85669887567 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:36 INFO 140403258652480] # Starting training for epoch 20\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:37.098] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 59, \"duration\": 893, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] # Finished training epoch 20 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) total: 6.689366098373167\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) kld: 0.07546150498092175\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) recons: 6.61390463382967\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) logppx: 6.689366098373167\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] #quality_metric: host=algo-1, epoch=20, train total_loss =6.689366098373167\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:37.170] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 59, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) total: 6.854649407523019\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) kld: 0.07737864979675838\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) recons: 6.777270589556013\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Loss (name: value) logppx: 6.854649407523019\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] #validation_score (20): 6.854649407523019\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] patience losses:[6.931581974029541, 6.906581197466169, 6.898202623639788, 6.8816390718732565, 6.861605439867292] min patience loss:6.861605439867292 current loss:6.854649407523019 absolute loss difference:0.006956032344272778\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] Timing: train: 0.89s, val: 0.08s, epoch: 0.97s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] #progress_metric: host=algo-1, completed 20.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194316.2044725, \"EndTime\": 1623194317.1766822, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 19, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 77360.0, \"count\": 1, \"min\": 77360, \"max\": 77360}, \"Total Batches Seen\": {\"sum\": 620.0, \"count\": 1, \"min\": 620, \"max\": 620}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 40.0, \"count\": 1, \"min\": 40, \"max\": 40}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3977.9090391956092 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:37 INFO 139703431448384] # Starting training for epoch 21\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:37.539] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 59, \"duration\": 911, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] # Finished training epoch 20 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) total: 6.694458761522847\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) kld: 0.07785314904345621\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) recons: 6.616605570239406\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) logppx: 6.694458761522847\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] #quality_metric: host=algo-2, epoch=20, train total_loss =6.694458761522847\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:37.666] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 59, \"duration\": 124, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) total: 6.862727505820138\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) kld: 0.0882593042084149\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) recons: 6.774468285696847\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Loss (name: value) logppx: 6.862727505820138\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] #validation_score (20): 6.862727505820138\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] patience losses:[6.923871857779367, 6.904898847852435, 6.883122852870396, 6.869148254394531, 6.881233283451626] min patience loss:6.869148254394531 current loss:6.862727505820138 absolute loss difference:0.006420748574393009\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] Timing: train: 0.91s, val: 0.13s, epoch: 1.04s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] #progress_metric: host=algo-2, completed 20.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194316.6277177, \"EndTime\": 1623194317.6726937, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 19, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 77460.0, \"count\": 1, \"min\": 77460, \"max\": 77460}, \"Total Batches Seen\": {\"sum\": 620.0, \"count\": 1, \"min\": 620, \"max\": 620}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 40.0, \"count\": 1, \"min\": 40, \"max\": 40}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3705.4310664211366 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:37 INFO 140403258652480] # Starting training for epoch 21\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:38.123] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 62, \"duration\": 946, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] # Finished training epoch 21 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) total: 6.676068590533349\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) kld: 0.07864594267260644\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) recons: 6.59742263824709\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) logppx: 6.676068590533349\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] #quality_metric: host=algo-1, epoch=21, train total_loss =6.676068590533349\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:38.189] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 62, \"duration\": 64, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) total: 6.880430153438023\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) kld: 0.10037313401699066\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) recons: 6.78005702154977\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Loss (name: value) logppx: 6.880430153438023\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] #validation_score (21): 6.880430153438023\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] patience losses:[6.906581197466169, 6.898202623639788, 6.8816390718732565, 6.861605439867292, 6.854649407523019] min patience loss:6.854649407523019 current loss:6.880430153438023 absolute loss difference:0.025780745915003678\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] Timing: train: 0.95s, val: 0.07s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] #progress_metric: host=algo-1, completed 21.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194317.1769848, \"EndTime\": 1623194318.1921291, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 20, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 81228.0, \"count\": 1, \"min\": 81228, \"max\": 81228}, \"Total Batches Seen\": {\"sum\": 651.0, \"count\": 1, \"min\": 651, \"max\": 651}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 42.0, \"count\": 1, \"min\": 42, \"max\": 42}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3809.7247015471785 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:38 INFO 139703431448384] # Starting training for epoch 22\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:38.602] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 62, \"duration\": 928, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] # Finished training epoch 21 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) total: 6.691170004106337\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) kld: 0.08345616254354676\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) recons: 6.6077139146866335\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) logppx: 6.691170004106337\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] #quality_metric: host=algo-2, epoch=21, train total_loss =6.691170004106337\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:38.683] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 62, \"duration\": 79, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) total: 6.859888144901821\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) kld: 0.08680688589811325\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) recons: 6.77308109828404\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Loss (name: value) logppx: 6.859888144901821\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] #validation_score (21): 6.859888144901821\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] patience losses:[6.904898847852435, 6.883122852870396, 6.869148254394531, 6.881233283451626, 6.862727505820138] min patience loss:6.862727505820138 current loss:6.859888144901821 absolute loss difference:0.0028393609183172686\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] Timing: train: 0.93s, val: 0.09s, epoch: 1.02s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] #progress_metric: host=algo-2, completed 21.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194317.673201, \"EndTime\": 1623194318.6890996, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 20, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 81333.0, \"count\": 1, \"min\": 81333, \"max\": 81333}, \"Total Batches Seen\": {\"sum\": 651.0, \"count\": 1, \"min\": 651, \"max\": 651}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 42.0, \"count\": 1, \"min\": 42, \"max\": 42}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3811.877153877255 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:38 INFO 140403258652480] # Starting training for epoch 22\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:39.571] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 65, \"duration\": 881, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] # Finished training epoch 22 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) total: 6.6779345543153825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) kld: 0.0850946291560127\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) recons: 6.592839902447116\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) logppx: 6.6779345543153825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] #quality_metric: host=algo-2, epoch=22, train total_loss =6.6779345543153825\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:39.653] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 65, \"duration\": 80, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) total: 6.845040798187256\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) kld: 0.08850874858243125\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) recons: 6.756531987871442\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Loss (name: value) logppx: 6.845040798187256\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] #validation_score (22): 6.845040798187256\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] patience losses:[6.883122852870396, 6.869148254394531, 6.881233283451626, 6.862727505820138, 6.859888144901821] min patience loss:6.859888144901821 current loss:6.845040798187256 absolute loss difference:0.014847346714565113\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] Timing: train: 0.88s, val: 0.09s, epoch: 0.97s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] #progress_metric: host=algo-2, completed 22.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194318.6893473, \"EndTime\": 1623194319.6583855, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 21, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 85206.0, \"count\": 1, \"min\": 85206, \"max\": 85206}, \"Total Batches Seen\": {\"sum\": 682.0, \"count\": 1, \"min\": 682, \"max\": 682}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 44.0, \"count\": 1, \"min\": 44, \"max\": 44}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3996.1917370335336 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:39 INFO 140403258652480] # Starting training for epoch 23\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:40.607] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 68, \"duration\": 948, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] # Finished training epoch 23 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) total: 6.659779464044878\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) kld: 0.08626832957229306\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) recons: 6.573511092893539\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) logppx: 6.659779464044878\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] #quality_metric: host=algo-2, epoch=23, train total_loss =6.659779464044878\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:40.700] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 68, \"duration\": 90, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) total: 6.821001393454416\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) kld: 0.08628573162215096\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) recons: 6.734715734209333\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Loss (name: value) logppx: 6.821001393454416\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] #validation_score (23): 6.821001393454416\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] patience losses:[6.869148254394531, 6.881233283451626, 6.862727505820138, 6.859888144901821, 6.845040798187256] min patience loss:6.845040798187256 current loss:6.821001393454416 absolute loss difference:0.024039404732840275\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] Timing: train: 0.95s, val: 0.10s, epoch: 1.05s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] #progress_metric: host=algo-2, completed 23.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194319.6586356, \"EndTime\": 1623194320.7053936, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 22, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 89079.0, \"count\": 1, \"min\": 89079, \"max\": 89079}, \"Total Batches Seen\": {\"sum\": 713.0, \"count\": 1, \"min\": 713, \"max\": 713}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 46.0, \"count\": 1, \"min\": 46, \"max\": 46}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3699.511316339163 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:40 INFO 140403258652480] # Starting training for epoch 24\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:41.620] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 71, \"duration\": 914, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] # Finished training epoch 24 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) total: 6.656355638657847\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) kld: 0.08939000471465049\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) recons: 6.566965664586713\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) logppx: 6.656355638657847\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] #quality_metric: host=algo-2, epoch=24, train total_loss =6.656355638657847\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:41.717] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 71, \"duration\": 96, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) total: 6.8199052810668945\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) kld: 0.08641789640699114\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) recons: 6.733487401689802\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Loss (name: value) logppx: 6.8199052810668945\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] #validation_score (24): 6.8199052810668945\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] patience losses:[6.881233283451626, 6.862727505820138, 6.859888144901821, 6.845040798187256, 6.821001393454416] min patience loss:6.821001393454416 current loss:6.8199052810668945 absolute loss difference:0.0010961123875210532\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] Timing: train: 0.92s, val: 0.10s, epoch: 1.02s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] #progress_metric: host=algo-2, completed 24.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194320.705646, \"EndTime\": 1623194321.722293, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 23, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 92952.0, \"count\": 1, \"min\": 92952, \"max\": 92952}, \"Total Batches Seen\": {\"sum\": 744.0, \"count\": 1, \"min\": 744, \"max\": 744}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 48.0, \"count\": 1, \"min\": 48, \"max\": 48}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3809.137544599477 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:41 INFO 140403258652480] # Starting training for epoch 25\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:42.647] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 74, \"duration\": 925, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] # Finished training epoch 25 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) total: 6.646712899208069\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) kld: 0.09210404513343688\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) recons: 6.554608864168967\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) logppx: 6.646712899208069\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] #quality_metric: host=algo-2, epoch=25, train total_loss =6.646712899208069\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:42.738] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 74, \"duration\": 88, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) total: 6.8057683535984586\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) kld: 0.09298491052218846\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) recons: 6.712783472878592\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Loss (name: value) logppx: 6.8057683535984586\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] #validation_score (25): 6.8057683535984586\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] patience losses:[6.862727505820138, 6.859888144901821, 6.845040798187256, 6.821001393454416, 6.8199052810668945] min patience loss:6.8199052810668945 current loss:6.8057683535984586 absolute loss difference:0.014136927468435978\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] Timing: train: 0.93s, val: 0.09s, epoch: 1.02s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] #progress_metric: host=algo-2, completed 25.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194321.7225623, \"EndTime\": 1623194322.744094, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 24, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 96825.0, \"count\": 1, \"min\": 96825, \"max\": 96825}, \"Total Batches Seen\": {\"sum\": 775.0, \"count\": 1, \"min\": 775, \"max\": 775}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 50.0, \"count\": 1, \"min\": 50, \"max\": 50}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3790.728004228374 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:42 INFO 140403258652480] # Starting training for epoch 26\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:39.076] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 65, \"duration\": 882, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] # Finished training epoch 22 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) total: 6.665810604249278\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) kld: 0.0821861119400109\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) recons: 6.583624524454916\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) logppx: 6.665810604249278\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] #quality_metric: host=algo-1, epoch=22, train total_loss =6.665810604249278\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:39.148] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 65, \"duration\": 69, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) total: 6.834024769919259\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) kld: 0.08342199559722628\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) recons: 6.750602858407157\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Loss (name: value) logppx: 6.834024769919259\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] #validation_score (22): 6.834024769919259\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] patience losses:[6.898202623639788, 6.8816390718732565, 6.861605439867292, 6.854649407523019, 6.880430153438023] min patience loss:6.854649407523019 current loss:6.834024769919259 absolute loss difference:0.020624637603759766\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] Timing: train: 0.89s, val: 0.07s, epoch: 0.96s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] #progress_metric: host=algo-1, completed 22.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194318.1924777, \"EndTime\": 1623194319.1527398, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 21, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 85096.0, \"count\": 1, \"min\": 85096, \"max\": 85096}, \"Total Batches Seen\": {\"sum\": 682.0, \"count\": 1, \"min\": 682, \"max\": 682}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 44.0, \"count\": 1, \"min\": 44, \"max\": 44}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4027.447115882302 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:39 INFO 139703431448384] # Starting training for epoch 23\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:40.013] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 68, \"duration\": 860, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] # Finished training epoch 23 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) total: 6.659317255020142\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) kld: 0.08528950359792478\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) recons: 6.574027769027218\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) logppx: 6.659317255020142\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] #quality_metric: host=algo-1, epoch=23, train total_loss =6.659317255020142\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:40.102] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 68, \"duration\": 87, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) total: 6.8279876708984375\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) kld: 0.08783190378120967\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) recons: 6.740155628749302\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) logppx: 6.8279876708984375\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] #validation_score (23): 6.8279876708984375\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] patience losses:[6.8816390718732565, 6.861605439867292, 6.854649407523019, 6.880430153438023, 6.834024769919259] min patience loss:6.834024769919259 current loss:6.8279876708984375 absolute loss difference:0.0060370990208218345\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Timing: train: 0.86s, val: 0.09s, epoch: 0.95s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] #progress_metric: host=algo-1, completed 23.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194319.153012, \"EndTime\": 1623194320.107997, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 22, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 88964.0, \"count\": 1, \"min\": 88964, \"max\": 88964}, \"Total Batches Seen\": {\"sum\": 713.0, \"count\": 1, \"min\": 713, \"max\": 713}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 46.0, \"count\": 1, \"min\": 46, \"max\": 46}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4049.786914226803 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] # Starting training for epoch 24\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:40.987] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 71, \"duration\": 879, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] # Finished training epoch 24 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) total: 6.6417797573151125\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) kld: 0.08622417755184635\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) recons: 6.555555520519134\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] Loss (name: value) logppx: 6.6417797573151125\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:40 INFO 139703431448384] #quality_metric: host=algo-1, epoch=24, train total_loss =6.6417797573151125\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:41.055] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 71, \"duration\": 66, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) total: 6.84266642161778\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) kld: 0.09828001260757446\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) recons: 6.7443864686148505\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) logppx: 6.84266642161778\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] #validation_score (24): 6.84266642161778\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] patience losses:[6.861605439867292, 6.854649407523019, 6.880430153438023, 6.834024769919259, 6.8279876708984375] min patience loss:6.8279876708984375 current loss:6.84266642161778 absolute loss difference:0.01467875071934266\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Timing: train: 0.88s, val: 0.07s, epoch: 0.95s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] #progress_metric: host=algo-1, completed 24.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194320.1082702, \"EndTime\": 1623194321.0569303, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 23, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 92832.0, \"count\": 1, \"min\": 92832, \"max\": 92832}, \"Total Batches Seen\": {\"sum\": 744.0, \"count\": 1, \"min\": 744, \"max\": 744}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 48.0, \"count\": 1, \"min\": 48, \"max\": 48}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4076.811104982441 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] # Starting training for epoch 25\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:41.979] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 74, \"duration\": 921, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] # Finished training epoch 25 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) total: 6.638374851595971\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) kld: 0.08941735267158478\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) recons: 6.548957474770084\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] Loss (name: value) logppx: 6.638374851595971\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:41 INFO 139703431448384] #quality_metric: host=algo-1, epoch=25, train total_loss =6.638374851595971\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:42.066] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 74, \"duration\": 85, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) total: 6.8112970760890414\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) kld: 0.08955710913453784\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) recons: 6.7217399052211215\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) logppx: 6.8112970760890414\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] #validation_score (25): 6.8112970760890414\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] patience losses:[6.854649407523019, 6.880430153438023, 6.834024769919259, 6.8279876708984375, 6.84266642161778] min patience loss:6.8279876708984375 current loss:6.8112970760890414 absolute loss difference:0.016690594809396053\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Timing: train: 0.92s, val: 0.09s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] #progress_metric: host=algo-1, completed 25.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194321.0572002, \"EndTime\": 1623194322.071541, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 24, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 96700.0, \"count\": 1, \"min\": 96700, \"max\": 96700}, \"Total Batches Seen\": {\"sum\": 775.0, \"count\": 1, \"min\": 775, \"max\": 775}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 50.0, \"count\": 1, \"min\": 50, \"max\": 50}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3812.8279960780224 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] # Starting training for epoch 26\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:42.996] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 77, \"duration\": 924, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] # Finished training epoch 26 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) total: 6.627557700680148\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) kld: 0.09210854029703525\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) recons: 6.535449158760809\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] Loss (name: value) logppx: 6.627557700680148\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:42 INFO 139703431448384] #quality_metric: host=algo-1, epoch=26, train total_loss =6.627557700680148\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:43.061] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 77, \"duration\": 63, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) total: 6.818722111838205\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) kld: 0.10457579791545868\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) recons: 6.714146341596331\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) logppx: 6.818722111838205\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] #validation_score (26): 6.818722111838205\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] patience losses:[6.880430153438023, 6.834024769919259, 6.8279876708984375, 6.84266642161778, 6.8112970760890414] min patience loss:6.8112970760890414 current loss:6.818722111838205 absolute loss difference:0.0074250357491632\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Timing: train: 0.93s, val: 0.06s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] #progress_metric: host=algo-1, completed 26.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194322.071815, \"EndTime\": 1623194323.0623777, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 25, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 100568.0, \"count\": 1, \"min\": 100568, \"max\": 100568}, \"Total Batches Seen\": {\"sum\": 806.0, \"count\": 1, \"min\": 806, \"max\": 806}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 52.0, \"count\": 1, \"min\": 52, \"max\": 52}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3904.331669102928 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] # Starting training for epoch 27\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:43.998] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 80, \"duration\": 935, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] # Finished training epoch 27 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) total: 6.614984527710946\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) kld: 0.09493106976151466\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) recons: 6.5200534059155375\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] Loss (name: value) logppx: 6.614984527710946\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:43 INFO 139703431448384] #quality_metric: host=algo-1, epoch=27, train total_loss =6.614984527710946\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:43.699] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 77, \"duration\": 948, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] # Finished training epoch 26 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) total: 6.63441482282454\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) kld: 0.09381848026908213\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) recons: 6.540596377465032\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) logppx: 6.63441482282454\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] #quality_metric: host=algo-2, epoch=26, train total_loss =6.63441482282454\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:43.768] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 77, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) total: 6.793333053588867\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) kld: 0.09652209707668849\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) recons: 6.696810926709857\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Loss (name: value) logppx: 6.793333053588867\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] #validation_score (26): 6.793333053588867\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] patience losses:[6.859888144901821, 6.845040798187256, 6.821001393454416, 6.8199052810668945, 6.8057683535984586] min patience loss:6.8057683535984586 current loss:6.793333053588867 absolute loss difference:0.012435300009591366\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] Timing: train: 0.96s, val: 0.07s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] #progress_metric: host=algo-2, completed 26.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194322.7444117, \"EndTime\": 1623194323.7742157, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 25, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 100698.0, \"count\": 1, \"min\": 100698, \"max\": 100698}, \"Total Batches Seen\": {\"sum\": 806.0, \"count\": 1, \"min\": 806, \"max\": 806}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 52.0, \"count\": 1, \"min\": 52, \"max\": 52}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3760.334416982332 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:43 INFO 140403258652480] # Starting training for epoch 27\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:44.062] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 80, \"duration\": 62, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) total: 6.802752086094448\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) kld: 0.0908956772514752\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) recons: 6.711856365203857\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) logppx: 6.802752086094448\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] #validation_score (27): 6.802752086094448\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] patience losses:[6.834024769919259, 6.8279876708984375, 6.84266642161778, 6.8112970760890414, 6.818722111838205] min patience loss:6.8112970760890414 current loss:6.802752086094448 absolute loss difference:0.008544989994593521\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Timing: train: 0.94s, val: 0.07s, epoch: 1.00s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] #progress_metric: host=algo-1, completed 27.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194323.0626183, \"EndTime\": 1623194324.067874, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 26, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 104436.0, \"count\": 1, \"min\": 104436, \"max\": 104436}, \"Total Batches Seen\": {\"sum\": 837.0, \"count\": 1, \"min\": 837, \"max\": 837}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 54.0, \"count\": 1, \"min\": 54, \"max\": 54}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3847.2626111239692 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] # Starting training for epoch 28\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:44.954] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 83, \"duration\": 886, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] # Finished training epoch 28 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) total: 6.614842334101277\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) kld: 0.09931317446452956\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) recons: 6.5155291941858104\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] Loss (name: value) logppx: 6.614842334101277\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:44 INFO 139703431448384] #quality_metric: host=algo-1, epoch=28, train total_loss =6.614842334101277\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:44.687] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 80, \"duration\": 912, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] # Finished training epoch 27 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) total: 6.636626032090956\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) kld: 0.09950101405622498\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) recons: 6.537124991416931\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) logppx: 6.636626032090956\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] #quality_metric: host=algo-2, epoch=27, train total_loss =6.636626032090956\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:44.776] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 80, \"duration\": 85, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) total: 6.79046276637486\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) kld: 0.09723434916564397\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) recons: 6.6932283129010886\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Loss (name: value) logppx: 6.79046276637486\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] #validation_score (27): 6.79046276637486\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] patience losses:[6.845040798187256, 6.821001393454416, 6.8199052810668945, 6.8057683535984586, 6.793333053588867] min patience loss:6.793333053588867 current loss:6.79046276637486 absolute loss difference:0.00287028721400695\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] Timing: train: 0.91s, val: 0.09s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] #progress_metric: host=algo-2, completed 27.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194323.7745767, \"EndTime\": 1623194324.7804508, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 26, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 104571.0, \"count\": 1, \"min\": 104571, \"max\": 104571}, \"Total Batches Seen\": {\"sum\": 837.0, \"count\": 1, \"min\": 837, \"max\": 837}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 54.0, \"count\": 1, \"min\": 54, \"max\": 54}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3849.8329184385802 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:44 INFO 140403258652480] # Starting training for epoch 28\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:45.053] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 83, \"duration\": 96, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) total: 6.793524197169712\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) kld: 0.10013756581715175\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) recons: 6.693386622837612\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) logppx: 6.793524197169712\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] #validation_score (28): 6.793524197169712\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] patience losses:[6.8279876708984375, 6.84266642161778, 6.8112970760890414, 6.818722111838205, 6.802752086094448] min patience loss:6.802752086094448 current loss:6.793524197169712 absolute loss difference:0.009227888924735694\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Timing: train: 0.89s, val: 0.10s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] #progress_metric: host=algo-1, completed 28.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194324.0681894, \"EndTime\": 1623194325.057605, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 27, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 108304.0, \"count\": 1, \"min\": 108304, \"max\": 108304}, \"Total Batches Seen\": {\"sum\": 868.0, \"count\": 1, \"min\": 868, \"max\": 868}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 56.0, \"count\": 1, \"min\": 56, \"max\": 56}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3908.7481221294665 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] # Starting training for epoch 29\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:45.972] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 86, \"duration\": 914, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] # Finished training epoch 29 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) total: 6.59899850045481\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) kld: 0.09868734065563448\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) recons: 6.50031118623672\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] Loss (name: value) logppx: 6.59899850045481\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:45 INFO 139703431448384] #quality_metric: host=algo-1, epoch=29, train total_loss =6.59899850045481\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:45.703] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 83, \"duration\": 922, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] # Finished training epoch 28 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) total: 6.6168160938447524\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) kld: 0.09838753313787522\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) recons: 6.518428598680804\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) logppx: 6.6168160938447524\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] #quality_metric: host=algo-2, epoch=28, train total_loss =6.6168160938447524\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:45.791] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 83, \"duration\": 86, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) total: 6.784268311091831\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) kld: 0.09896422496863774\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) recons: 6.685304233006069\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Loss (name: value) logppx: 6.784268311091831\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] #validation_score (28): 6.784268311091831\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] patience losses:[6.821001393454416, 6.8199052810668945, 6.8057683535984586, 6.793333053588867, 6.79046276637486] min patience loss:6.79046276637486 current loss:6.784268311091831 absolute loss difference:0.006194455283028866\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] Timing: train: 0.92s, val: 0.09s, epoch: 1.02s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] #progress_metric: host=algo-2, completed 28.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194324.7807548, \"EndTime\": 1623194325.7973247, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 27, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 108444.0, \"count\": 1, \"min\": 108444, \"max\": 108444}, \"Total Batches Seen\": {\"sum\": 868.0, \"count\": 1, \"min\": 868, \"max\": 868}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 56.0, \"count\": 1, \"min\": 56, \"max\": 56}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3809.361749546768 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:45 INFO 140403258652480] # Starting training for epoch 29\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:46.042] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 86, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) total: 6.791742052350726\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) kld: 0.10195284017494746\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) recons: 6.689789090837751\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) logppx: 6.791742052350726\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] #validation_score (29): 6.791742052350726\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] patience losses:[6.84266642161778, 6.8112970760890414, 6.818722111838205, 6.802752086094448, 6.793524197169712] min patience loss:6.793524197169712 current loss:6.791742052350726 absolute loss difference:0.0017821448189865308\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Timing: train: 0.92s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] #progress_metric: host=algo-1, completed 29.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194325.0579338, \"EndTime\": 1623194326.0472052, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 28, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 112172.0, \"count\": 1, \"min\": 112172, \"max\": 112172}, \"Total Batches Seen\": {\"sum\": 899.0, \"count\": 1, \"min\": 899, \"max\": 899}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 58.0, \"count\": 1, \"min\": 58, \"max\": 58}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3909.381070949301 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] # Starting training for epoch 30\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:46.964] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 89, \"duration\": 916, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] # Finished training epoch 30 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) total: 6.598636688724641\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) kld: 0.1024318223879222\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) recons: 6.496204860748783\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] Loss (name: value) logppx: 6.598636688724641\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:46 INFO 139703431448384] #quality_metric: host=algo-1, epoch=30, train total_loss =6.598636688724641\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:46.713] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 86, \"duration\": 915, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] # Finished training epoch 29 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) total: 6.618988790819722\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) kld: 0.10295827873051167\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) recons: 6.516030557693973\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) logppx: 6.618988790819722\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] #quality_metric: host=algo-2, epoch=29, train total_loss =6.618988790819722\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:46.800] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 86, \"duration\": 85, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) total: 6.779223578316825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) kld: 0.10176127403974533\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) recons: 6.677462237221854\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Loss (name: value) logppx: 6.779223578316825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] #validation_score (29): 6.779223578316825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] patience losses:[6.8199052810668945, 6.8057683535984586, 6.793333053588867, 6.79046276637486, 6.784268311091831] min patience loss:6.784268311091831 current loss:6.779223578316825 absolute loss difference:0.005044732775006722\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] Timing: train: 0.92s, val: 0.09s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] #progress_metric: host=algo-2, completed 29.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194325.7975643, \"EndTime\": 1623194326.8060765, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 28, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 112317.0, \"count\": 1, \"min\": 112317, \"max\": 112317}, \"Total Batches Seen\": {\"sum\": 899.0, \"count\": 1, \"min\": 899, \"max\": 899}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 58.0, \"count\": 1, \"min\": 58, \"max\": 58}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3839.126784110173 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:46 INFO 140403258652480] # Starting training for epoch 30\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:47.028] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 89, \"duration\": 62, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] Loss (name: value) total: 6.782483509608677\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] Loss (name: value) kld: 0.10839060693979263\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] Loss (name: value) recons: 6.674092905861991\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] Loss (name: value) logppx: 6.782483509608677\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] #validation_score (30): 6.782483509608677\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] patience losses:[6.8112970760890414, 6.818722111838205, 6.802752086094448, 6.793524197169712, 6.791742052350726] min patience loss:6.791742052350726 current loss:6.782483509608677 absolute loss difference:0.009258542742048625\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] Timing: train: 0.92s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] #progress_metric: host=algo-1, completed 30.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194326.047535, \"EndTime\": 1623194327.0353074, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 29, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 116040.0, \"count\": 1, \"min\": 116040, \"max\": 116040}, \"Total Batches Seen\": {\"sum\": 930.0, \"count\": 1, \"min\": 930, \"max\": 930}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 60.0, \"count\": 1, \"min\": 60, \"max\": 60}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3914.838383619015 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:47 INFO 139703431448384] # Starting training for epoch 31\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:47.720] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 89, \"duration\": 913, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] # Finished training epoch 30 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) total: 6.602058433717297\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) kld: 0.10410269217625741\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) recons: 6.4979557721845564\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) logppx: 6.602058433717297\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] #quality_metric: host=algo-2, epoch=30, train total_loss =6.602058433717297\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:47.899] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 89, \"duration\": 178, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) total: 6.772921425955636\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) kld: 0.10418781638145447\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) recons: 6.668733596801758\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Loss (name: value) logppx: 6.772921425955636\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] #validation_score (30): 6.772921425955636\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] patience losses:[6.8057683535984586, 6.793333053588867, 6.79046276637486, 6.784268311091831, 6.779223578316825] min patience loss:6.779223578316825 current loss:6.772921425955636 absolute loss difference:0.006302152361188362\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] Timing: train: 0.91s, val: 0.18s, epoch: 1.10s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] #progress_metric: host=algo-2, completed 30.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194326.8066654, \"EndTime\": 1623194327.9061403, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 29, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 116190.0, \"count\": 1, \"min\": 116190, \"max\": 116190}, \"Total Batches Seen\": {\"sum\": 930.0, \"count\": 1, \"min\": 930, \"max\": 930}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 60.0, \"count\": 1, \"min\": 60, \"max\": 60}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3522.087309914095 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:47 INFO 140403258652480] # Starting training for epoch 31\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:48.055] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 92, \"duration\": 1019, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] # Finished training epoch 31 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) total: 6.587060159252536\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) kld: 0.10416518590382991\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) recons: 6.482894958988313\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) logppx: 6.587060159252536\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] #quality_metric: host=algo-1, epoch=31, train total_loss =6.587060159252536\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:48.167] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 92, \"duration\": 107, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) total: 6.768149716513498\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) kld: 0.11289980156081063\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) recons: 6.65524993624006\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Loss (name: value) logppx: 6.768149716513498\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] #validation_score (31): 6.768149716513498\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] patience losses:[6.818722111838205, 6.802752086094448, 6.793524197169712, 6.791742052350726, 6.782483509608677] min patience loss:6.782483509608677 current loss:6.768149716513498 absolute loss difference:0.014333793095179459\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] Timing: train: 1.02s, val: 0.11s, epoch: 1.14s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] #progress_metric: host=algo-1, completed 31.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194327.0357637, \"EndTime\": 1623194328.173518, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 30, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 119908.0, \"count\": 1, \"min\": 119908, \"max\": 119908}, \"Total Batches Seen\": {\"sum\": 961.0, \"count\": 1, \"min\": 961, \"max\": 961}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 62.0, \"count\": 1, \"min\": 62, \"max\": 62}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3398.5439063599124 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:48 INFO 139703431448384] # Starting training for epoch 32\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:48.998] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 92, \"duration\": 1090, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:48 INFO 140403258652480] # Finished training epoch 31 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:48 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:48 INFO 140403258652480] Loss (name: value) total: 6.5946077608293105\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:48 INFO 140403258652480] Loss (name: value) kld: 0.10742388677693182\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:48 INFO 140403258652480] Loss (name: value) recons: 6.48718390926238\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:48 INFO 140403258652480] Loss (name: value) logppx: 6.5946077608293105\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:48 INFO 140403258652480] #quality_metric: host=algo-2, epoch=31, train total_loss =6.5946077608293105\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:49.092] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 92, \"duration\": 91, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] Loss (name: value) total: 6.761534009660993\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] Loss (name: value) kld: 0.11521699492420469\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] Loss (name: value) recons: 6.646316937037876\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] Loss (name: value) logppx: 6.761534009660993\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] #validation_score (31): 6.761534009660993\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] patience losses:[6.793333053588867, 6.79046276637486, 6.784268311091831, 6.779223578316825, 6.772921425955636] min patience loss:6.772921425955636 current loss:6.761534009660993 absolute loss difference:0.011387416294643238\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] Timing: train: 1.09s, val: 0.10s, epoch: 1.19s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] #progress_metric: host=algo-2, completed 31.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194327.906468, \"EndTime\": 1623194329.0968785, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 30, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 120063.0, \"count\": 1, \"min\": 120063, \"max\": 120063}, \"Total Batches Seen\": {\"sum\": 961.0, \"count\": 1, \"min\": 961, \"max\": 961}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 62.0, \"count\": 1, \"min\": 62, \"max\": 62}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3253.022301006313 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:49 INFO 140403258652480] # Starting training for epoch 32\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:50.010] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 95, \"duration\": 912, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] # Finished training epoch 32 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) total: 6.5838039267447686\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) kld: 0.10994393276351114\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) recons: 6.4738600100240395\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) logppx: 6.5838039267447686\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] #quality_metric: host=algo-2, epoch=32, train total_loss =6.5838039267447686\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:50.094] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 95, \"duration\": 83, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) total: 6.753398418426514\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) kld: 0.1077413484454155\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) recons: 6.645657130650112\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Loss (name: value) logppx: 6.753398418426514\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] #validation_score (32): 6.753398418426514\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] patience losses:[6.79046276637486, 6.784268311091831, 6.779223578316825, 6.772921425955636, 6.761534009660993] min patience loss:6.761534009660993 current loss:6.753398418426514 absolute loss difference:0.008135591234479378\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] Timing: train: 0.91s, val: 0.09s, epoch: 1.00s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] #progress_metric: host=algo-2, completed 32.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194329.097209, \"EndTime\": 1623194330.101256, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 31, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 123936.0, \"count\": 1, \"min\": 123936, \"max\": 123936}, \"Total Batches Seen\": {\"sum\": 992.0, \"count\": 1, \"min\": 992, \"max\": 992}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 64.0, \"count\": 1, \"min\": 64, \"max\": 64}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3856.72275680519 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:50 INFO 140403258652480] # Starting training for epoch 33\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:51.048] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 98, \"duration\": 946, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] # Finished training epoch 33 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) total: 6.590159473880645\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) kld: 0.11490659926447176\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) recons: 6.475252874435917\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) logppx: 6.590159473880645\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] #quality_metric: host=algo-2, epoch=33, train total_loss =6.590159473880645\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:51.140] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 98, \"duration\": 90, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) total: 6.754370212554932\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) kld: 0.1153566518000194\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) recons: 6.639013562883649\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Loss (name: value) logppx: 6.754370212554932\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] #validation_score (33): 6.754370212554932\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] patience losses:[6.784268311091831, 6.779223578316825, 6.772921425955636, 6.761534009660993, 6.753398418426514] min patience loss:6.753398418426514 current loss:6.754370212554932 absolute loss difference:0.0009717941284179688\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] Timing: train: 0.95s, val: 0.09s, epoch: 1.04s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] #progress_metric: host=algo-2, completed 33.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194330.101636, \"EndTime\": 1623194331.1416678, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 32, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 127809.0, \"count\": 1, \"min\": 127809, \"max\": 127809}, \"Total Batches Seen\": {\"sum\": 1023.0, \"count\": 1, \"min\": 1023, \"max\": 1023}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 66.0, \"count\": 1, \"min\": 66, \"max\": 66}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3723.182502998456 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:51 INFO 140403258652480] # Starting training for epoch 34\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:52.037] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 101, \"duration\": 895, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] # Finished training epoch 34 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) total: 6.575856385692473\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) kld: 0.11619408200344732\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) recons: 6.459662279775066\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) logppx: 6.575856385692473\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] #quality_metric: host=algo-2, epoch=34, train total_loss =6.575856385692473\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:52.112] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 101, \"duration\": 72, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) total: 6.749467509133475\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) kld: 0.12622197504554475\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) recons: 6.623245511736188\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Loss (name: value) logppx: 6.749467509133475\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] #validation_score (34): 6.749467509133475\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] patience losses:[6.779223578316825, 6.772921425955636, 6.761534009660993, 6.753398418426514, 6.754370212554932] min patience loss:6.753398418426514 current loss:6.749467509133475 absolute loss difference:0.003930909293038631\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] Timing: train: 0.90s, val: 0.08s, epoch: 0.97s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] #progress_metric: host=algo-2, completed 34.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194331.1421874, \"EndTime\": 1623194332.1172612, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 33, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 131682.0, \"count\": 1, \"min\": 131682, \"max\": 131682}, \"Total Batches Seen\": {\"sum\": 1054.0, \"count\": 1, \"min\": 1054, \"max\": 1054}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 68.0, \"count\": 1, \"min\": 68, \"max\": 68}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3971.4835707448974 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:52 INFO 140403258652480] # Starting training for epoch 35\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:53.099] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 104, \"duration\": 981, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] # Finished training epoch 35 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) total: 6.570859336083935\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) kld: 0.1189706643983241\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) recons: 6.4518886227761545\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) logppx: 6.570859336083935\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] #quality_metric: host=algo-2, epoch=35, train total_loss =6.570859336083935\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:53.165] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 104, \"duration\": 63, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) total: 6.766678537641253\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) kld: 0.11529988795518875\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) recons: 6.651378767830985\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Loss (name: value) logppx: 6.766678537641253\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] #validation_score (35): 6.766678537641253\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] patience losses:[6.772921425955636, 6.761534009660993, 6.753398418426514, 6.754370212554932, 6.749467509133475] min patience loss:6.749467509133475 current loss:6.766678537641253 absolute loss difference:0.017211028507778003\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] Timing: train: 0.98s, val: 0.07s, epoch: 1.05s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] #progress_metric: host=algo-2, completed 35.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194332.1175148, \"EndTime\": 1623194333.1669867, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 34, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 135555.0, \"count\": 1, \"min\": 135555, \"max\": 135555}, \"Total Batches Seen\": {\"sum\": 1085.0, \"count\": 1, \"min\": 1085, \"max\": 1085}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 70.0, \"count\": 1, \"min\": 70, \"max\": 70}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3689.908805219308 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:53 INFO 140403258652480] # Starting training for epoch 36\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:49.161] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 95, \"duration\": 983, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] # Finished training epoch 32 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) total: 6.579069637483166\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) kld: 0.10942346674780692\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) recons: 6.469646188520616\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) logppx: 6.579069637483166\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] #quality_metric: host=algo-1, epoch=32, train total_loss =6.579069637483166\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:49.236] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 95, \"duration\": 72, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) total: 6.765038354056222\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) kld: 0.11022824261869703\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) recons: 6.6548100880214145\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Loss (name: value) logppx: 6.765038354056222\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] #validation_score (32): 6.765038354056222\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] patience losses:[6.802752086094448, 6.793524197169712, 6.791742052350726, 6.782483509608677, 6.768149716513498] min patience loss:6.768149716513498 current loss:6.765038354056222 absolute loss difference:0.0031113624572753906\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] Timing: train: 0.99s, val: 0.08s, epoch: 1.07s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] #progress_metric: host=algo-1, completed 32.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194328.1741936, \"EndTime\": 1623194329.2415597, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 31, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 123776.0, \"count\": 1, \"min\": 123776, \"max\": 123776}, \"Total Batches Seen\": {\"sum\": 992.0, \"count\": 1, \"min\": 992, \"max\": 992}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 64.0, \"count\": 1, \"min\": 64, \"max\": 64}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3623.4066763671613 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:49 INFO 139703431448384] # Starting training for epoch 33\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:50.117] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 98, \"duration\": 874, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] # Finished training epoch 33 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) total: 6.571246977775328\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) kld: 0.11036725204077459\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) recons: 6.460879710412795\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) logppx: 6.571246977775328\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] #quality_metric: host=algo-1, epoch=33, train total_loss =6.571246977775328\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:50.181] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 98, \"duration\": 62, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) total: 6.752309662955148\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) kld: 0.11210065760782786\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) recons: 6.640208925519671\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Loss (name: value) logppx: 6.752309662955148\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] #validation_score (33): 6.752309662955148\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] patience losses:[6.793524197169712, 6.791742052350726, 6.782483509608677, 6.768149716513498, 6.765038354056222] min patience loss:6.765038354056222 current loss:6.752309662955148 absolute loss difference:0.012728691101074219\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] Timing: train: 0.88s, val: 0.07s, epoch: 0.94s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] #progress_metric: host=algo-1, completed 33.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194329.2419796, \"EndTime\": 1623194330.1868086, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 32, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 127644.0, \"count\": 1, \"min\": 127644, \"max\": 127644}, \"Total Batches Seen\": {\"sum\": 1023.0, \"count\": 1, \"min\": 1023, \"max\": 1023}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 66.0, \"count\": 1, \"min\": 66, \"max\": 66}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4093.336789617221 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:50 INFO 139703431448384] # Starting training for epoch 34\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:51.133] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 101, \"duration\": 946, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] # Finished training epoch 34 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) total: 6.572240337248771\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) kld: 0.11495615529917902\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) recons: 6.457284154430512\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) logppx: 6.572240337248771\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] #quality_metric: host=algo-1, epoch=34, train total_loss =6.572240337248771\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:51.200] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 101, \"duration\": 65, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) total: 6.741094384874616\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) kld: 0.11860519647598267\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) recons: 6.622489043644497\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Loss (name: value) logppx: 6.741094384874616\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] #validation_score (34): 6.741094384874616\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] patience losses:[6.791742052350726, 6.782483509608677, 6.768149716513498, 6.765038354056222, 6.752309662955148] min patience loss:6.752309662955148 current loss:6.741094384874616 absolute loss difference:0.01121527808053191\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] Timing: train: 0.95s, val: 0.07s, epoch: 1.02s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] #progress_metric: host=algo-1, completed 34.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194330.1870756, \"EndTime\": 1623194331.2051654, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 33, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 131512.0, \"count\": 1, \"min\": 131512, \"max\": 131512}, \"Total Batches Seen\": {\"sum\": 1054.0, \"count\": 1, \"min\": 1054, \"max\": 1054}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 68.0, \"count\": 1, \"min\": 68, \"max\": 68}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3798.7854221472935 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:51 INFO 139703431448384] # Starting training for epoch 35\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:52.124] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 104, \"duration\": 918, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] # Finished training epoch 35 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) total: 6.558247773878036\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) kld: 0.11554081527696501\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) recons: 6.44270698870382\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) logppx: 6.558247773878036\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] #quality_metric: host=algo-1, epoch=35, train total_loss =6.558247773878036\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:52.185] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 104, \"duration\": 59, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) total: 6.740245342254639\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) kld: 0.1171108867440905\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) recons: 6.623134476797921\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Loss (name: value) logppx: 6.740245342254639\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] #validation_score (35): 6.740245342254639\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] patience losses:[6.782483509608677, 6.768149716513498, 6.765038354056222, 6.752309662955148, 6.741094384874616] min patience loss:6.741094384874616 current loss:6.740245342254639 absolute loss difference:0.0008490426199774248\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] Timing: train: 0.92s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] #progress_metric: host=algo-1, completed 35.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194331.2054236, \"EndTime\": 1623194332.1928053, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 34, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 135380.0, \"count\": 1, \"min\": 135380, \"max\": 135380}, \"Total Batches Seen\": {\"sum\": 1085.0, \"count\": 1, \"min\": 1085, \"max\": 1085}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 70.0, \"count\": 1, \"min\": 70, \"max\": 70}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3916.825093070531 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:52 INFO 139703431448384] # Starting training for epoch 36\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:53.159] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 107, \"duration\": 965, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] # Finished training epoch 36 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) total: 6.554140636997838\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) kld: 0.11930101304765671\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) recons: 6.434839640894244\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) logppx: 6.554140636997838\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] #quality_metric: host=algo-1, epoch=36, train total_loss =6.554140636997838\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:53.227] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 107, \"duration\": 67, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) total: 6.735398360661098\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) kld: 0.11427459014313561\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) recons: 6.621123790740967\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Loss (name: value) logppx: 6.735398360661098\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] #validation_score (36): 6.735398360661098\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] patience losses:[6.768149716513498, 6.765038354056222, 6.752309662955148, 6.741094384874616, 6.740245342254639] min patience loss:6.740245342254639 current loss:6.735398360661098 absolute loss difference:0.004846981593540356\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] Timing: train: 0.97s, val: 0.07s, epoch: 1.04s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] #progress_metric: host=algo-1, completed 36.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194332.1930695, \"EndTime\": 1623194333.2319074, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 35, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 139248.0, \"count\": 1, \"min\": 139248, \"max\": 139248}, \"Total Batches Seen\": {\"sum\": 1116.0, \"count\": 1, \"min\": 1116, \"max\": 1116}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 72.0, \"count\": 1, \"min\": 72, \"max\": 72}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3722.9452512366547 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:53 INFO 139703431448384] # Starting training for epoch 37\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:54.080] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 107, \"duration\": 912, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] # Finished training epoch 36 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) total: 6.568975002534928\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) kld: 0.12304298783982953\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) recons: 6.445932003759569\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) logppx: 6.568975002534928\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] #quality_metric: host=algo-2, epoch=36, train total_loss =6.568975002534928\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:54.137] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 107, \"duration\": 56, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) total: 6.730280126844134\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) kld: 0.12150586609329496\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) recons: 6.6087742533002585\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Loss (name: value) logppx: 6.730280126844134\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] #validation_score (36): 6.730280126844134\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] patience losses:[6.761534009660993, 6.753398418426514, 6.754370212554932, 6.749467509133475, 6.766678537641253] min patience loss:6.749467509133475 current loss:6.730280126844134 absolute loss difference:0.019187382289341137\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] Timing: train: 0.91s, val: 0.06s, epoch: 0.98s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] #progress_metric: host=algo-2, completed 36.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194333.1672814, \"EndTime\": 1623194334.142825, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 35, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 139428.0, \"count\": 1, \"min\": 139428, \"max\": 139428}, \"Total Batches Seen\": {\"sum\": 1116.0, \"count\": 1, \"min\": 1116, \"max\": 1116}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 72.0, \"count\": 1, \"min\": 72, \"max\": 72}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3969.5678343725695 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:54 INFO 140403258652480] # Starting training for epoch 37\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:54.084] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 110, \"duration\": 851, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] # Finished training epoch 37 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) total: 6.552084976626981\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) kld: 0.12133233657767696\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) recons: 6.430752623465754\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) logppx: 6.552084976626981\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] #quality_metric: host=algo-1, epoch=37, train total_loss =6.552084976626981\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:54.147] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 110, \"duration\": 62, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) total: 6.733829634530204\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) kld: 0.12001204171351024\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) recons: 6.6138176918029785\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Loss (name: value) logppx: 6.733829634530204\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] #validation_score (37): 6.733829634530204\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] patience losses:[6.765038354056222, 6.752309662955148, 6.741094384874616, 6.740245342254639, 6.735398360661098] min patience loss:6.735398360661098 current loss:6.733829634530204 absolute loss difference:0.0015687261308947598\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] Timing: train: 0.85s, val: 0.07s, epoch: 0.92s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] #progress_metric: host=algo-1, completed 37.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194333.2321966, \"EndTime\": 1623194334.1526773, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 36, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 143116.0, \"count\": 1, \"min\": 143116, \"max\": 143116}, \"Total Batches Seen\": {\"sum\": 1147.0, \"count\": 1, \"min\": 1147, \"max\": 1147}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 74.0, \"count\": 1, \"min\": 74, \"max\": 74}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4201.567671929211 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:54 INFO 139703431448384] # Starting training for epoch 38\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:55.084] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 110, \"duration\": 941, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] # Finished training epoch 37 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) total: 6.557133839976403\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) kld: 0.12426442292428785\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) recons: 6.432869422820307\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) logppx: 6.557133839976403\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] #quality_metric: host=algo-2, epoch=37, train total_loss =6.557133839976403\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:55.149] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 110, \"duration\": 63, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) total: 6.729712554386684\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) kld: 0.12496718444994517\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) recons: 6.604745388031006\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Loss (name: value) logppx: 6.729712554386684\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] #validation_score (37): 6.729712554386684\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] patience losses:[6.753398418426514, 6.754370212554932, 6.749467509133475, 6.766678537641253, 6.730280126844134] min patience loss:6.730280126844134 current loss:6.729712554386684 absolute loss difference:0.0005675724574496499\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] Timing: train: 0.94s, val: 0.07s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] #progress_metric: host=algo-2, completed 37.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194334.1430824, \"EndTime\": 1623194335.1548357, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 36, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 143301.0, \"count\": 1, \"min\": 143301, \"max\": 143301}, \"Total Batches Seen\": {\"sum\": 1147.0, \"count\": 1, \"min\": 1147, \"max\": 1147}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 74.0, \"count\": 1, \"min\": 74, \"max\": 74}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3827.493181708941 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:55 INFO 140403258652480] # Starting training for epoch 38\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:55.115] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 113, \"duration\": 961, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] # Finished training epoch 38 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) total: 6.541282984518236\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) kld: 0.12293701594875704\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) recons: 6.418345962801287\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) logppx: 6.541282984518236\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] #quality_metric: host=algo-1, epoch=38, train total_loss =6.541282984518236\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:55.173] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 113, \"duration\": 57, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) total: 6.729048728942871\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) kld: 0.12496718444994517\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) recons: 6.604081562587193\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Loss (name: value) logppx: 6.729048728942871\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] #validation_score (38): 6.729048728942871\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] patience losses:[6.752309662955148, 6.741094384874616, 6.740245342254639, 6.735398360661098, 6.733829634530204] min patience loss:6.733829634530204 current loss:6.729048728942871 absolute loss difference:0.004780905587332462\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] Timing: train: 0.96s, val: 0.06s, epoch: 1.03s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] #progress_metric: host=algo-1, completed 38.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194334.1529512, \"EndTime\": 1623194335.179533, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 37, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 146984.0, \"count\": 1, \"min\": 146984, \"max\": 146984}, \"Total Batches Seen\": {\"sum\": 1178.0, \"count\": 1, \"min\": 1178, \"max\": 1178}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 76.0, \"count\": 1, \"min\": 76, \"max\": 76}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3767.256981651084 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:55 INFO 139703431448384] # Starting training for epoch 39\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:56.094] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 113, \"duration\": 938, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] # Finished training epoch 38 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) total: 6.55517364317371\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) kld: 0.12642149963686544\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) recons: 6.428752214677872\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) logppx: 6.55517364317371\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] #quality_metric: host=algo-2, epoch=38, train total_loss =6.55517364317371\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:56.174] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 113, \"duration\": 79, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) total: 6.722713470458984\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) kld: 0.12360682977097374\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) recons: 6.599106448037284\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Loss (name: value) logppx: 6.722713470458984\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] #validation_score (38): 6.722713470458984\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] patience losses:[6.754370212554932, 6.749467509133475, 6.766678537641253, 6.730280126844134, 6.729712554386684] min patience loss:6.729712554386684 current loss:6.722713470458984 absolute loss difference:0.006999083927699878\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] Timing: train: 0.94s, val: 0.09s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] #progress_metric: host=algo-2, completed 38.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194335.155098, \"EndTime\": 1623194336.1812508, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 37, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 147174.0, \"count\": 1, \"min\": 147174, \"max\": 147174}, \"Total Batches Seen\": {\"sum\": 1178.0, \"count\": 1, \"min\": 1178, \"max\": 1178}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 76.0, \"count\": 1, \"min\": 76, \"max\": 76}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3772.540235648207 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:56 INFO 140403258652480] # Starting training for epoch 39\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:56.063] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 116, \"duration\": 883, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] # Finished training epoch 39 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) total: 6.541344427293347\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) kld: 0.12446937782149162\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) recons: 6.416875043222981\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) logppx: 6.541344427293347\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] #quality_metric: host=algo-1, epoch=39, train total_loss =6.541344427293347\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:56.131] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 116, \"duration\": 67, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) total: 6.733092171805246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) kld: 0.12680137902498245\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) recons: 6.606290681021554\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Loss (name: value) logppx: 6.733092171805246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] #validation_score (39): 6.733092171805246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] patience losses:[6.741094384874616, 6.740245342254639, 6.735398360661098, 6.733829634530204, 6.729048728942871] min patience loss:6.729048728942871 current loss:6.733092171805246 absolute loss difference:0.004043442862374569\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] Timing: train: 0.88s, val: 0.07s, epoch: 0.95s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] #progress_metric: host=algo-1, completed 39.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194335.1798508, \"EndTime\": 1623194336.133397, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 38, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 150852.0, \"count\": 1, \"min\": 150852, \"max\": 150852}, \"Total Batches Seen\": {\"sum\": 1209.0, \"count\": 1, \"min\": 1209, \"max\": 1209}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 78.0, \"count\": 1, \"min\": 78, \"max\": 78}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4055.80578212713 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:56 INFO 139703431448384] # Starting training for epoch 40\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:57.025] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 119, \"duration\": 891, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] # Finished training epoch 40 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) total: 6.531485234537432\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) kld: 0.12565534165309322\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) recons: 6.405829914154545\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) logppx: 6.531485234537432\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] #quality_metric: host=algo-1, epoch=40, train total_loss =6.531485234537432\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:57.110] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 116, \"duration\": 928, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] # Finished training epoch 39 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) total: 6.545046337189213\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) kld: 0.1267885029796631\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) recons: 6.418257905590918\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) logppx: 6.545046337189213\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] #quality_metric: host=algo-2, epoch=39, train total_loss =6.545046337189213\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:57.185] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 116, \"duration\": 73, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) total: 6.7241122382027765\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) kld: 0.1309032684990338\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) recons: 6.593208926064627\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Loss (name: value) logppx: 6.7241122382027765\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] #validation_score (39): 6.7241122382027765\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] patience losses:[6.749467509133475, 6.766678537641253, 6.730280126844134, 6.729712554386684, 6.722713470458984] min patience loss:6.722713470458984 current loss:6.7241122382027765 absolute loss difference:0.0013987677437921064\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] Timing: train: 0.93s, val: 0.08s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] #progress_metric: host=algo-2, completed 39.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194336.1820056, \"EndTime\": 1623194337.1874182, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 38, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 151047.0, \"count\": 1, \"min\": 151047, \"max\": 151047}, \"Total Batches Seen\": {\"sum\": 1209.0, \"count\": 1, \"min\": 1209, \"max\": 1209}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 78.0, \"count\": 1, \"min\": 78, \"max\": 78}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3851.5507861938677 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:57 INFO 140403258652480] # Starting training for epoch 40\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:57.093] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 119, \"duration\": 67, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) total: 6.724212918962751\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) kld: 0.12819062811987741\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) recons: 6.596022265298026\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Loss (name: value) logppx: 6.724212918962751\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] #validation_score (40): 6.724212918962751\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] patience losses:[6.740245342254639, 6.735398360661098, 6.733829634530204, 6.729048728942871, 6.733092171805246] min patience loss:6.729048728942871 current loss:6.724212918962751 absolute loss difference:0.0048358099801202314\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] Timing: train: 0.89s, val: 0.07s, epoch: 0.97s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] #progress_metric: host=algo-1, completed 40.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194336.1336927, \"EndTime\": 1623194337.1003275, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 39, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 154720.0, \"count\": 1, \"min\": 154720, \"max\": 154720}, \"Total Batches Seen\": {\"sum\": 1240.0, \"count\": 1, \"min\": 1240, \"max\": 1240}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 80.0, \"count\": 1, \"min\": 80, \"max\": 80}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4000.8838164082035 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:57 INFO 139703431448384] # Starting training for epoch 41\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:58.018] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 122, \"duration\": 917, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] # Finished training epoch 41 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) total: 6.527125789273169\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) kld: 0.12927909075252472\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) recons: 6.397846710297369\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) logppx: 6.527125789273169\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] #quality_metric: host=algo-1, epoch=41, train total_loss =6.527125789273169\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:58.086] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 119, \"duration\": 898, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] # Finished training epoch 40 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) total: 6.5433108652791665\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) kld: 0.1308426900856918\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) recons: 6.412468168043321\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) logppx: 6.5433108652791665\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] #quality_metric: host=algo-2, epoch=40, train total_loss =6.5433108652791665\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:58.203] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 119, \"duration\": 115, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) total: 6.717088086264474\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) kld: 0.12764419934579305\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) recons: 6.589443956102643\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Loss (name: value) logppx: 6.717088086264474\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] #validation_score (40): 6.717088086264474\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] patience losses:[6.766678537641253, 6.730280126844134, 6.729712554386684, 6.722713470458984, 6.7241122382027765] min patience loss:6.722713470458984 current loss:6.717088086264474 absolute loss difference:0.005625384194510197\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] Timing: train: 0.90s, val: 0.12s, epoch: 1.02s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] #progress_metric: host=algo-2, completed 40.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194337.1877112, \"EndTime\": 1623194338.2081888, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 39, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 154920.0, \"count\": 1, \"min\": 154920, \"max\": 154920}, \"Total Batches Seen\": {\"sum\": 1240.0, \"count\": 1, \"min\": 1240, \"max\": 1240}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 80.0, \"count\": 1, \"min\": 80, \"max\": 80}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3794.790813846275 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:58 INFO 140403258652480] # Starting training for epoch 41\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:58.098] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 122, \"duration\": 78, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) total: 6.7126873561314175\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) kld: 0.12672167590686254\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) recons: 6.585965701511928\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Loss (name: value) logppx: 6.7126873561314175\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] #validation_score (41): 6.7126873561314175\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] patience losses:[6.735398360661098, 6.733829634530204, 6.729048728942871, 6.733092171805246, 6.724212918962751] min patience loss:6.724212918962751 current loss:6.7126873561314175 absolute loss difference:0.011525562831333325\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] Timing: train: 0.92s, val: 0.08s, epoch: 1.00s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] #progress_metric: host=algo-1, completed 41.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194337.1006193, \"EndTime\": 1623194338.1028264, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 40, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 158588.0, \"count\": 1, \"min\": 158588, \"max\": 158588}, \"Total Batches Seen\": {\"sum\": 1271.0, \"count\": 1, \"min\": 1271, \"max\": 1271}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 82.0, \"count\": 1, \"min\": 82, \"max\": 82}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3858.8760847728986 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:58 INFO 139703431448384] # Starting training for epoch 42\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:59.134] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 122, \"duration\": 926, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] # Finished training epoch 41 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) total: 6.532584871015241\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) kld: 0.13088302578656905\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) recons: 6.401701881039527\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) logppx: 6.532584871015241\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] #quality_metric: host=algo-2, epoch=41, train total_loss =6.532584871015241\u001b[0m\n", - "\u001b[35m[2021-06-08 23:18:59.215] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 122, \"duration\": 78, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) total: 6.706733635493687\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) kld: 0.1264485770038196\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) recons: 6.58028507232666\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Loss (name: value) logppx: 6.706733635493687\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] #validation_score (41): 6.706733635493687\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] patience losses:[6.730280126844134, 6.729712554386684, 6.722713470458984, 6.7241122382027765, 6.717088086264474] min patience loss:6.717088086264474 current loss:6.706733635493687 absolute loss difference:0.010354450770787338\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] Timing: train: 0.93s, val: 0.08s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] #progress_metric: host=algo-2, completed 41.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194338.208429, \"EndTime\": 1623194339.2214096, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 40, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 158793.0, \"count\": 1, \"min\": 158793, \"max\": 158793}, \"Total Batches Seen\": {\"sum\": 1271.0, \"count\": 1, \"min\": 1271, \"max\": 1271}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 82.0, \"count\": 1, \"min\": 82, \"max\": 82}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3822.783350406328 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:18:59 INFO 140403258652480] # Starting training for epoch 42\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:59.077] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 125, \"duration\": 974, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] # Finished training epoch 42 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) total: 6.518353666028669\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) kld: 0.12942565773283282\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) recons: 6.388928051917784\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) logppx: 6.518353666028669\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] #quality_metric: host=algo-1, epoch=42, train total_loss =6.518353666028669\u001b[0m\n", - "\u001b[34m[2021-06-08 23:18:59.149] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 125, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) total: 6.713650703430176\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) kld: 0.12423721168722425\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) recons: 6.589413506644113\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Loss (name: value) logppx: 6.713650703430176\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] #validation_score (42): 6.713650703430176\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] patience losses:[6.733829634530204, 6.729048728942871, 6.733092171805246, 6.724212918962751, 6.7126873561314175] min patience loss:6.7126873561314175 current loss:6.713650703430176 absolute loss difference:0.0009633472987582437\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] Timing: train: 0.98s, val: 0.07s, epoch: 1.05s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] #progress_metric: host=algo-1, completed 42.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194338.1031308, \"EndTime\": 1623194339.1503327, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 41, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 162456.0, \"count\": 1, \"min\": 162456, \"max\": 162456}, \"Total Batches Seen\": {\"sum\": 1302.0, \"count\": 1, \"min\": 1302, \"max\": 1302}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 84.0, \"count\": 1, \"min\": 84, \"max\": 84}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3693.0153558776256 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:18:59 INFO 139703431448384] # Starting training for epoch 43\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:00.177] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 125, \"duration\": 955, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] # Finished training epoch 42 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) total: 6.530491421299596\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) kld: 0.13190790001423128\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) recons: 6.39858349292509\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) logppx: 6.530491421299596\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] #quality_metric: host=algo-2, epoch=42, train total_loss =6.530491421299596\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:00.091] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 128, \"duration\": 940, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] # Finished training epoch 43 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) total: 6.515903580573298\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) kld: 0.13104634155188838\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) recons: 6.38485723926175\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) logppx: 6.515903580573298\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] #quality_metric: host=algo-1, epoch=43, train total_loss =6.515903580573298\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:00.160] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 128, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) total: 6.710361003875732\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) kld: 0.1268262660929135\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) recons: 6.5835347175598145\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Loss (name: value) logppx: 6.710361003875732\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] #validation_score (43): 6.710361003875732\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] patience losses:[6.729048728942871, 6.733092171805246, 6.724212918962751, 6.7126873561314175, 6.713650703430176] min patience loss:6.7126873561314175 current loss:6.710361003875732 absolute loss difference:0.0023263522556851157\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] Timing: train: 0.94s, val: 0.07s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] #progress_metric: host=algo-1, completed 43.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194339.1506224, \"EndTime\": 1623194340.1658373, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 42, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 166324.0, \"count\": 1, \"min\": 166324, \"max\": 166324}, \"Total Batches Seen\": {\"sum\": 1333.0, \"count\": 1, \"min\": 1333, \"max\": 1333}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 86.0, \"count\": 1, \"min\": 86, \"max\": 86}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3809.5269997790397 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:00 INFO 139703431448384] # Starting training for epoch 44\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:00.263] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 125, \"duration\": 84, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) total: 6.710041795458112\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) kld: 0.1371119118162564\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) recons: 6.572929927280971\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Loss (name: value) logppx: 6.710041795458112\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] #validation_score (42): 6.710041795458112\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] patience losses:[6.729712554386684, 6.722713470458984, 6.7241122382027765, 6.717088086264474, 6.706733635493687] min patience loss:6.706733635493687 current loss:6.710041795458112 absolute loss difference:0.00330815996442535\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] Timing: train: 0.96s, val: 0.09s, epoch: 1.04s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] #progress_metric: host=algo-2, completed 42.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194339.221726, \"EndTime\": 1623194340.2650375, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 41, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 162666.0, \"count\": 1, \"min\": 162666, \"max\": 162666}, \"Total Batches Seen\": {\"sum\": 1302.0, \"count\": 1, \"min\": 1302, \"max\": 1302}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 84.0, \"count\": 1, \"min\": 84, \"max\": 84}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3711.7166283907645 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:00 INFO 140403258652480] # Starting training for epoch 43\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:01.209] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 128, \"duration\": 943, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] # Finished training epoch 43 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) total: 6.523844388223464\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) kld: 0.13407012724107312\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) recons: 6.38977425713693\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) logppx: 6.523844388223464\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] #quality_metric: host=algo-2, epoch=43, train total_loss =6.523844388223464\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:01.092] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 131, \"duration\": 926, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] # Finished training epoch 44 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) total: 6.5130442073268275\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) kld: 0.13264407638099887\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) recons: 6.380400126980197\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) logppx: 6.5130442073268275\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] #quality_metric: host=algo-1, epoch=44, train total_loss =6.5130442073268275\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:01.165] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 131, \"duration\": 71, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) total: 6.710298265729632\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) kld: 0.13379278353282384\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) recons: 6.576505388532366\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Loss (name: value) logppx: 6.710298265729632\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] #validation_score (44): 6.710298265729632\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] patience losses:[6.733092171805246, 6.724212918962751, 6.7126873561314175, 6.713650703430176, 6.710361003875732] min patience loss:6.710361003875732 current loss:6.710298265729632 absolute loss difference:6.273814610047168e-05\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] Timing: train: 0.93s, val: 0.08s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] #progress_metric: host=algo-1, completed 44.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194340.1661038, \"EndTime\": 1623194341.1725688, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 43, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 170192.0, \"count\": 1, \"min\": 170192, \"max\": 170192}, \"Total Batches Seen\": {\"sum\": 1364.0, \"count\": 1, \"min\": 1364, \"max\": 1364}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 88.0, \"count\": 1, \"min\": 88, \"max\": 88}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3842.526099983184 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:01 INFO 139703431448384] # Starting training for epoch 45\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:01.350] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 128, \"duration\": 140, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) total: 6.708853381020682\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) kld: 0.13473705308777945\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) recons: 6.574116366250174\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Loss (name: value) logppx: 6.708853381020682\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] #validation_score (43): 6.708853381020682\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] patience losses:[6.722713470458984, 6.7241122382027765, 6.717088086264474, 6.706733635493687, 6.710041795458112] min patience loss:6.706733635493687 current loss:6.708853381020682 absolute loss difference:0.0021197455269952314\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] Timing: train: 0.94s, val: 0.14s, epoch: 1.09s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] #progress_metric: host=algo-2, completed 43.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194340.26533, \"EndTime\": 1623194341.3551402, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 42, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 166539.0, \"count\": 1, \"min\": 166539, \"max\": 166539}, \"Total Batches Seen\": {\"sum\": 1333.0, \"count\": 1, \"min\": 1333, \"max\": 1333}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 86.0, \"count\": 1, \"min\": 86, \"max\": 86}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3553.413373331604 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:01 INFO 140403258652480] # Starting training for epoch 44\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:02.337] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 134, \"duration\": 1164, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] # Finished training epoch 45 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) total: 6.505843812419522\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) kld: 0.1339105772635629\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) recons: 6.3719332910353135\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) logppx: 6.505843812419522\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] #quality_metric: host=algo-1, epoch=45, train total_loss =6.505843812419522\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:02.419] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 134, \"duration\": 80, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) total: 6.707942553928921\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) kld: 0.13432414936167852\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) recons: 6.573618480137417\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Loss (name: value) logppx: 6.707942553928921\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] #validation_score (45): 6.707942553928921\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] patience losses:[6.724212918962751, 6.7126873561314175, 6.713650703430176, 6.710361003875732, 6.710298265729632] min patience loss:6.710298265729632 current loss:6.707942553928921 absolute loss difference:0.0023557118007113687\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] Timing: train: 1.17s, val: 0.09s, epoch: 1.25s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] #progress_metric: host=algo-1, completed 45.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194341.1728837, \"EndTime\": 1623194342.4255986, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 44, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 174060.0, \"count\": 1, \"min\": 174060, \"max\": 174060}, \"Total Batches Seen\": {\"sum\": 1395.0, \"count\": 1, \"min\": 1395, \"max\": 1395}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 90.0, \"count\": 1, \"min\": 90, \"max\": 90}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3087.3348290864224 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:02 INFO 139703431448384] # Starting training for epoch 46\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:02.499] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 131, \"duration\": 1140, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] # Finished training epoch 44 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) total: 6.518908566044223\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) kld: 0.13637751509105006\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) recons: 6.382531023794605\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) logppx: 6.518908566044223\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] #quality_metric: host=algo-2, epoch=44, train total_loss =6.518908566044223\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:02.626] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 131, \"duration\": 124, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) total: 6.705690996987479\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) kld: 0.14096579168524062\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) recons: 6.564725194658552\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Loss (name: value) logppx: 6.705690996987479\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] #validation_score (44): 6.705690996987479\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] patience losses:[6.7241122382027765, 6.717088086264474, 6.706733635493687, 6.710041795458112, 6.708853381020682] min patience loss:6.706733635493687 current loss:6.705690996987479 absolute loss difference:0.0010426385062078936\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] Timing: train: 1.15s, val: 0.14s, epoch: 1.29s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] #progress_metric: host=algo-2, completed 44.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194341.3567493, \"EndTime\": 1623194342.6422477, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 43, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 170412.0, \"count\": 1, \"min\": 170412, \"max\": 170412}, \"Total Batches Seen\": {\"sum\": 1364.0, \"count\": 1, \"min\": 1364, \"max\": 1364}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 88.0, \"count\": 1, \"min\": 88, \"max\": 88}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3012.4029201758276 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:02 INFO 140403258652480] # Starting training for epoch 45\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:03.495] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 137, \"duration\": 1069, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] # Finished training epoch 46 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) total: 6.49926794344379\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) kld: 0.13524002605868923\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) recons: 6.364027923153293\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) logppx: 6.49926794344379\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] #quality_metric: host=algo-1, epoch=46, train total_loss =6.49926794344379\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:03.587] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 137, \"duration\": 90, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) total: 6.702998774392264\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) kld: 0.1358571829540389\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) recons: 6.567141532897949\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Loss (name: value) logppx: 6.702998774392264\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] #validation_score (46): 6.702998774392264\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] patience losses:[6.7126873561314175, 6.713650703430176, 6.710361003875732, 6.710298265729632, 6.707942553928921] min patience loss:6.707942553928921 current loss:6.702998774392264 absolute loss difference:0.0049437795366564785\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] Timing: train: 1.07s, val: 0.10s, epoch: 1.17s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] #progress_metric: host=algo-1, completed 46.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194342.4259017, \"EndTime\": 1623194343.5926588, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 45, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 177928.0, \"count\": 1, \"min\": 177928, \"max\": 177928}, \"Total Batches Seen\": {\"sum\": 1426.0, \"count\": 1, \"min\": 1426, \"max\": 1426}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 92.0, \"count\": 1, \"min\": 92, \"max\": 92}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3314.7983560417915 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:03 INFO 139703431448384] # Starting training for epoch 47\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:03.739] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 134, \"duration\": 1094, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] # Finished training epoch 45 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) total: 6.516650665190912\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) kld: 0.13639985565696994\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) recons: 6.380250823113226\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) logppx: 6.516650665190912\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] #quality_metric: host=algo-2, epoch=45, train total_loss =6.516650665190912\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:03.857] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 134, \"duration\": 116, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) total: 6.702579157693045\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) kld: 0.1340148768254689\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) recons: 6.568564210619245\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Loss (name: value) logppx: 6.702579157693045\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] #validation_score (45): 6.702579157693045\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] patience losses:[6.717088086264474, 6.706733635493687, 6.710041795458112, 6.708853381020682, 6.705690996987479] min patience loss:6.705690996987479 current loss:6.702579157693045 absolute loss difference:0.0031118392944335938\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] Timing: train: 1.10s, val: 0.12s, epoch: 1.22s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] #progress_metric: host=algo-2, completed 45.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194342.642528, \"EndTime\": 1623194343.8618708, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 44, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 174285.0, \"count\": 1, \"min\": 174285, \"max\": 174285}, \"Total Batches Seen\": {\"sum\": 1395.0, \"count\": 1, \"min\": 1395, \"max\": 1395}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 90.0, \"count\": 1, \"min\": 90, \"max\": 90}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3175.917047269426 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:03 INFO 140403258652480] # Starting training for epoch 46\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:04.755] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 140, \"duration\": 1161, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] # Finished training epoch 47 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) total: 6.499560429203894\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) kld: 0.13788391397364677\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) recons: 6.361676535298748\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) logppx: 6.499560429203894\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] #quality_metric: host=algo-1, epoch=47, train total_loss =6.499560429203894\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:04.858] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 140, \"duration\": 101, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) total: 6.702372210366385\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) kld: 0.13672810792922974\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) recons: 6.5656441279820035\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Loss (name: value) logppx: 6.702372210366385\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] #validation_score (47): 6.702372210366385\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] patience losses:[6.713650703430176, 6.710361003875732, 6.710298265729632, 6.707942553928921, 6.702998774392264] min patience loss:6.702998774392264 current loss:6.702372210366385 absolute loss difference:0.0006265640258789062\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] Timing: train: 1.16s, val: 0.11s, epoch: 1.27s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] #progress_metric: host=algo-1, completed 47.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194343.592892, \"EndTime\": 1623194344.8644156, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 46, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 181796.0, \"count\": 1, \"min\": 181796, \"max\": 181796}, \"Total Batches Seen\": {\"sum\": 1457.0, \"count\": 1, \"min\": 1457, \"max\": 1457}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 94.0, \"count\": 1, \"min\": 94, \"max\": 94}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3041.6687987413034 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:04 INFO 139703431448384] # Starting training for epoch 48\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:05.185] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 137, \"duration\": 1318, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] # Finished training epoch 46 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) total: 6.517983694230357\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) kld: 0.13940050537067075\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) recons: 6.378583192825317\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) logppx: 6.517983694230357\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] #quality_metric: host=algo-2, epoch=46, train total_loss =6.517983694230357\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:05.982] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 143, \"duration\": 1117, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:05 INFO 139703431448384] # Finished training epoch 48 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:05 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:05 INFO 139703431448384] Loss (name: value) total: 6.492928397270941\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:05 INFO 139703431448384] Loss (name: value) kld: 0.13725061606495612\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:05 INFO 139703431448384] Loss (name: value) recons: 6.355677800793802\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:05 INFO 139703431448384] Loss (name: value) logppx: 6.492928397270941\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:05 INFO 139703431448384] #quality_metric: host=algo-1, epoch=48, train total_loss =6.492928397270941\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:05.299] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 137, \"duration\": 111, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) total: 6.700033528464181\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) kld: 0.1407191710812705\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) recons: 6.559314250946045\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Loss (name: value) logppx: 6.700033528464181\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] #validation_score (46): 6.700033528464181\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] patience losses:[6.706733635493687, 6.710041795458112, 6.708853381020682, 6.705690996987479, 6.702579157693045] min patience loss:6.702579157693045 current loss:6.700033528464181 absolute loss difference:0.0025456292288641436\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] Timing: train: 1.32s, val: 0.12s, epoch: 1.44s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] #progress_metric: host=algo-2, completed 46.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194343.8621583, \"EndTime\": 1623194345.3066485, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 45, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 178158.0, \"count\": 1, \"min\": 178158, \"max\": 178158}, \"Total Batches Seen\": {\"sum\": 1426.0, \"count\": 1, \"min\": 1426, \"max\": 1426}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 92.0, \"count\": 1, \"min\": 92, \"max\": 92}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=2680.885149901129 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:05 INFO 140403258652480] # Starting training for epoch 47\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:06.074] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 143, \"duration\": 89, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) total: 6.696027483258929\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) kld: 0.13660213138375962\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) recons: 6.559425285884312\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) logppx: 6.696027483258929\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] #validation_score (48): 6.696027483258929\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] patience losses:[6.710361003875732, 6.710298265729632, 6.707942553928921, 6.702998774392264, 6.702372210366385] min patience loss:6.702372210366385 current loss:6.696027483258929 absolute loss difference:0.006344727107456372\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Timing: train: 1.12s, val: 0.10s, epoch: 1.22s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] #progress_metric: host=algo-1, completed 48.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194344.8647761, \"EndTime\": 1623194346.0803494, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 47, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 185664.0, \"count\": 1, \"min\": 185664, \"max\": 185664}, \"Total Batches Seen\": {\"sum\": 1488.0, \"count\": 1, \"min\": 1488, \"max\": 1488}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 96.0, \"count\": 1, \"min\": 96, \"max\": 96}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3181.6713028706604 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] # Starting training for epoch 49\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:06.974] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 146, \"duration\": 893, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] # Finished training epoch 49 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) total: 6.4892072869885356\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) kld: 0.13884203905059445\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) recons: 6.350365261877736\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] Loss (name: value) logppx: 6.4892072869885356\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:06 INFO 139703431448384] #quality_metric: host=algo-1, epoch=49, train total_loss =6.4892072869885356\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:07.041] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 146, \"duration\": 66, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) total: 6.692704064505441\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) kld: 0.1403298888887678\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) recons: 6.552374226706369\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) logppx: 6.692704064505441\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] #validation_score (49): 6.692704064505441\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] patience losses:[6.710298265729632, 6.707942553928921, 6.702998774392264, 6.702372210366385, 6.696027483258929] min patience loss:6.696027483258929 current loss:6.692704064505441 absolute loss difference:0.00332341875348785\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Timing: train: 0.89s, val: 0.07s, epoch: 0.97s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] #progress_metric: host=algo-1, completed 49.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194346.080624, \"EndTime\": 1623194347.046409, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 48, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 189532.0, \"count\": 1, \"min\": 189532, \"max\": 189532}, \"Total Batches Seen\": {\"sum\": 1519.0, \"count\": 1, \"min\": 1519, \"max\": 1519}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 98.0, \"count\": 1, \"min\": 98, \"max\": 98}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4004.4507931116873 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] # Starting training for epoch 50\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:06.355] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 140, \"duration\": 1048, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] # Finished training epoch 47 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) total: 6.504321375200825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) kld: 0.13867616701510646\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) recons: 6.365645262502855\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) logppx: 6.504321375200825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] #quality_metric: host=algo-2, epoch=47, train total_loss =6.504321375200825\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:06.424] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 140, \"duration\": 66, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) total: 6.707767895289829\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) kld: 0.1306630266564233\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) recons: 6.577104772840228\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Loss (name: value) logppx: 6.707767895289829\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] #validation_score (47): 6.707767895289829\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] patience losses:[6.710041795458112, 6.708853381020682, 6.705690996987479, 6.702579157693045, 6.700033528464181] min patience loss:6.700033528464181 current loss:6.707767895289829 absolute loss difference:0.007734366825648209\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] Timing: train: 1.05s, val: 0.07s, epoch: 1.12s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] #progress_metric: host=algo-2, completed 47.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194345.3069897, \"EndTime\": 1623194346.4252515, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 46, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 182031.0, \"count\": 1, \"min\": 182031, \"max\": 182031}, \"Total Batches Seen\": {\"sum\": 1457.0, \"count\": 1, \"min\": 1457, \"max\": 1457}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 94.0, \"count\": 1, \"min\": 94, \"max\": 94}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3463.017229878596 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:06 INFO 140403258652480] # Starting training for epoch 48\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:07.977] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 149, \"duration\": 930, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] # Finished training epoch 50 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) total: 6.495367619299119\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) kld: 0.14314466222159325\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) recons: 6.352222950227799\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] Loss (name: value) logppx: 6.495367619299119\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:07 INFO 139703431448384] #quality_metric: host=algo-1, epoch=50, train total_loss =6.495367619299119\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:08.047] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 149, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) total: 6.694850036076137\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) kld: 0.14365083192076003\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) recons: 6.551199231828962\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) logppx: 6.694850036076137\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] #validation_score (50): 6.694850036076137\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] patience losses:[6.707942553928921, 6.702998774392264, 6.702372210366385, 6.696027483258929, 6.692704064505441] min patience loss:6.692704064505441 current loss:6.694850036076137 absolute loss difference:0.0021459715706964033\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Timing: train: 0.93s, val: 0.07s, epoch: 1.00s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] #progress_metric: host=algo-1, completed 50.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194347.0466795, \"EndTime\": 1623194348.048654, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 49, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 193400.0, \"count\": 1, \"min\": 193400, \"max\": 193400}, \"Total Batches Seen\": {\"sum\": 1550.0, \"count\": 1, \"min\": 1550, \"max\": 1550}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 100.0, \"count\": 1, \"min\": 100, \"max\": 100}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3859.88874735375 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] # Starting training for epoch 51\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:07.368] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 143, \"duration\": 943, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] # Finished training epoch 48 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) total: 6.5107019908966555\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) kld: 0.1420344395502921\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) recons: 6.368667525629843\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) logppx: 6.5107019908966555\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] #quality_metric: host=algo-2, epoch=48, train total_loss =6.5107019908966555\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:07.450] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 143, \"duration\": 79, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) total: 6.690619468688965\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) kld: 0.14526338875293732\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) recons: 6.545356137411935\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Loss (name: value) logppx: 6.690619468688965\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] #validation_score (48): 6.690619468688965\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] patience losses:[6.708853381020682, 6.705690996987479, 6.702579157693045, 6.700033528464181, 6.707767895289829] min patience loss:6.700033528464181 current loss:6.690619468688965 absolute loss difference:0.009414059775216366\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] Timing: train: 0.94s, val: 0.09s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] #progress_metric: host=algo-2, completed 48.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194346.4254868, \"EndTime\": 1623194347.4557197, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 47, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 185904.0, \"count\": 1, \"min\": 185904, \"max\": 185904}, \"Total Batches Seen\": {\"sum\": 1488.0, \"count\": 1, \"min\": 1488, \"max\": 1488}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 96.0, \"count\": 1, \"min\": 96, \"max\": 96}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3757.950017037911 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:07 INFO 140403258652480] # Starting training for epoch 49\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:08.993] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 152, \"duration\": 944, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] # Finished training epoch 51 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) total: 6.481423266472355\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) kld: 0.1413534471104222\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) recons: 6.340069790040293\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] Loss (name: value) logppx: 6.481423266472355\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:08 INFO 139703431448384] #quality_metric: host=algo-1, epoch=51, train total_loss =6.481423266472355\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:09.058] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 152, \"duration\": 63, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) total: 6.690475940704346\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) kld: 0.14489130675792694\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) recons: 6.545584610530308\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) logppx: 6.690475940704346\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] #validation_score (51): 6.690475940704346\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] patience losses:[6.702998774392264, 6.702372210366385, 6.696027483258929, 6.692704064505441, 6.694850036076137] min patience loss:6.692704064505441 current loss:6.690475940704346 absolute loss difference:0.002228123801095272\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Timing: train: 0.95s, val: 0.07s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] #progress_metric: host=algo-1, completed 51.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194348.048892, \"EndTime\": 1623194349.0634882, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 50, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 197268.0, \"count\": 1, \"min\": 197268, \"max\": 197268}, \"Total Batches Seen\": {\"sum\": 1581.0, \"count\": 1, \"min\": 1581, \"max\": 1581}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 102.0, \"count\": 1, \"min\": 102, \"max\": 102}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3810.8433105985796 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] # Starting training for epoch 52\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:08.432] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 146, \"duration\": 975, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] # Finished training epoch 49 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) total: 6.502394595453816\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) kld: 0.14330740309050005\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) recons: 6.359087132638501\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) logppx: 6.502394595453816\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] #quality_metric: host=algo-2, epoch=49, train total_loss =6.502394595453816\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:08.516] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 146, \"duration\": 82, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) total: 6.689588614872524\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) kld: 0.14071246342999594\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) recons: 6.548876149313791\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Loss (name: value) logppx: 6.689588614872524\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] #validation_score (49): 6.689588614872524\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] patience losses:[6.705690996987479, 6.702579157693045, 6.700033528464181, 6.707767895289829, 6.690619468688965] min patience loss:6.690619468688965 current loss:6.689588614872524 absolute loss difference:0.0010308538164407466\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] Timing: train: 0.98s, val: 0.09s, epoch: 1.07s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] #progress_metric: host=algo-2, completed 49.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194347.4564488, \"EndTime\": 1623194348.5219433, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 48, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 189777.0, \"count\": 1, \"min\": 189777, \"max\": 189777}, \"Total Batches Seen\": {\"sum\": 1519.0, \"count\": 1, \"min\": 1519, \"max\": 1519}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 98.0, \"count\": 1, \"min\": 98, \"max\": 98}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3634.3032000896687 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:08 INFO 140403258652480] # Starting training for epoch 50\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:09.958] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 155, \"duration\": 894, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] # Finished training epoch 52 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) total: 6.489485879098216\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) kld: 0.14502207802668696\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) recons: 6.344463802153064\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] Loss (name: value) logppx: 6.489485879098216\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:09 INFO 139703431448384] #quality_metric: host=algo-1, epoch=52, train total_loss =6.489485879098216\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:10.024] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 155, \"duration\": 64, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) total: 6.711028507777622\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) kld: 0.14876768844468252\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) recons: 6.562260900224958\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) logppx: 6.711028507777622\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] #validation_score (52): 6.711028507777622\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] patience losses:[6.702372210366385, 6.696027483258929, 6.692704064505441, 6.694850036076137, 6.690475940704346] min patience loss:6.690475940704346 current loss:6.711028507777622 absolute loss difference:0.020552567073276684\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Timing: train: 0.90s, val: 0.07s, epoch: 0.96s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] #progress_metric: host=algo-1, completed 52.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194349.0641682, \"EndTime\": 1623194350.0256298, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 51, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 201136.0, \"count\": 1, \"min\": 201136, \"max\": 201136}, \"Total Batches Seen\": {\"sum\": 1612.0, \"count\": 1, \"min\": 1612, \"max\": 1612}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 104.0, \"count\": 1, \"min\": 104, \"max\": 104}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4022.4303753153454 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] # Starting training for epoch 53\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:09.473] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 149, \"duration\": 951, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] # Finished training epoch 50 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) total: 6.504089320859602\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) kld: 0.14536532122761972\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) recons: 6.358723928851466\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) logppx: 6.504089320859602\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] #quality_metric: host=algo-2, epoch=50, train total_loss =6.504089320859602\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:09.557] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 149, \"duration\": 82, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) total: 6.723826135907855\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) kld: 0.14368316105433873\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) recons: 6.580142906733921\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Loss (name: value) logppx: 6.723826135907855\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] #validation_score (50): 6.723826135907855\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] patience losses:[6.702579157693045, 6.700033528464181, 6.707767895289829, 6.690619468688965, 6.689588614872524] min patience loss:6.689588614872524 current loss:6.723826135907855 absolute loss difference:0.03423752103533051\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] Timing: train: 0.95s, val: 0.08s, epoch: 1.04s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] #progress_metric: host=algo-2, completed 50.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194348.522228, \"EndTime\": 1623194349.5593793, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 49, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 193650.0, \"count\": 1, \"min\": 193650, \"max\": 193650}, \"Total Batches Seen\": {\"sum\": 1550.0, \"count\": 1, \"min\": 1550, \"max\": 1550}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 100.0, \"count\": 1, \"min\": 100, \"max\": 100}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3733.728833731157 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:09 INFO 140403258652480] # Starting training for epoch 51\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:10.936] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 158, \"duration\": 910, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] # Finished training epoch 53 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) total: 6.479494613985861\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) kld: 0.14413599489677337\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) recons: 6.33535861199902\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] Loss (name: value) logppx: 6.479494613985861\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:10 INFO 139703431448384] #quality_metric: host=algo-1, epoch=53, train total_loss =6.479494613985861\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:11.008] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 158, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) total: 6.687007495335171\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) kld: 0.15112232736178807\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) recons: 6.535885197775705\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) logppx: 6.687007495335171\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] #validation_score (53): 6.687007495335171\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] patience losses:[6.696027483258929, 6.692704064505441, 6.694850036076137, 6.690475940704346, 6.711028507777622] min patience loss:6.690475940704346 current loss:6.687007495335171 absolute loss difference:0.0034684453691751216\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Timing: train: 0.91s, val: 0.08s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] #progress_metric: host=algo-1, completed 53.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194350.0258949, \"EndTime\": 1623194351.0135972, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 52, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 205004.0, \"count\": 1, \"min\": 205004, \"max\": 205004}, \"Total Batches Seen\": {\"sum\": 1643.0, \"count\": 1, \"min\": 1643, \"max\": 1643}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 106.0, \"count\": 1, \"min\": 106, \"max\": 106}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3915.610333296728 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] # Starting training for epoch 54\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:10.485] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 152, \"duration\": 925, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] # Finished training epoch 51 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) total: 6.496892486849139\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) kld: 0.1444214610082488\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) recons: 6.352471067059424\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) logppx: 6.496892486849139\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] #quality_metric: host=algo-2, epoch=51, train total_loss =6.496892486849139\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:10.565] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 152, \"duration\": 78, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) total: 6.69028411592756\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) kld: 0.14619238887514388\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) recons: 6.544091701507568\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Loss (name: value) logppx: 6.69028411592756\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] #validation_score (51): 6.69028411592756\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] patience losses:[6.700033528464181, 6.707767895289829, 6.690619468688965, 6.689588614872524, 6.723826135907855] min patience loss:6.689588614872524 current loss:6.69028411592756 absolute loss difference:0.0006955010550360186\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] Timing: train: 0.93s, val: 0.08s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] #progress_metric: host=algo-2, completed 51.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194349.5596795, \"EndTime\": 1623194350.5665076, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 50, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 197523.0, \"count\": 1, \"min\": 197523, \"max\": 197523}, \"Total Batches Seen\": {\"sum\": 1581.0, \"count\": 1, \"min\": 1581, \"max\": 1581}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 102.0, \"count\": 1, \"min\": 102, \"max\": 102}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3846.2023308954813 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:10 INFO 140403258652480] # Starting training for epoch 52\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:11.931] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 161, \"duration\": 917, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] # Finished training epoch 54 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) total: 6.474150634581043\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) kld: 0.1462471775950924\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) recons: 6.3279034514581\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] Loss (name: value) logppx: 6.474150634581043\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:11 INFO 139703431448384] #quality_metric: host=algo-1, epoch=54, train total_loss =6.474150634581043\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:12.013] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 161, \"duration\": 80, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) total: 6.68559319632394\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) kld: 0.14986510574817657\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) recons: 6.5357281139918735\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) logppx: 6.68559319632394\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] #validation_score (54): 6.68559319632394\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] patience losses:[6.692704064505441, 6.694850036076137, 6.690475940704346, 6.711028507777622, 6.687007495335171] min patience loss:6.687007495335171 current loss:6.68559319632394 absolute loss difference:0.0014142990112304688\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Timing: train: 0.92s, val: 0.09s, epoch: 1.01s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] #progress_metric: host=algo-1, completed 54.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194351.01386, \"EndTime\": 1623194352.0194588, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 53, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 208872.0, \"count\": 1, \"min\": 208872, \"max\": 208872}, \"Total Batches Seen\": {\"sum\": 1674.0, \"count\": 1, \"min\": 1674, \"max\": 1674}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 108.0, \"count\": 1, \"min\": 108, \"max\": 108}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3845.9155549665998 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] # Starting training for epoch 55\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:11.530] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 155, \"duration\": 963, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] # Finished training epoch 52 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) total: 6.492133998101758\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) kld: 0.14711126300596422\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) recons: 6.345022751439002\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) logppx: 6.492133998101758\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] #quality_metric: host=algo-2, epoch=52, train total_loss =6.492133998101758\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:11.603] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 155, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) total: 6.683133602142334\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) kld: 0.1486606470176152\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) recons: 6.534473010471889\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Loss (name: value) logppx: 6.683133602142334\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] #validation_score (52): 6.683133602142334\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] patience losses:[6.707767895289829, 6.690619468688965, 6.689588614872524, 6.723826135907855, 6.69028411592756] min patience loss:6.689588614872524 current loss:6.683133602142334 absolute loss difference:0.006455012730190113\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] Timing: train: 0.97s, val: 0.08s, epoch: 1.04s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] #progress_metric: host=algo-2, completed 52.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194350.5668356, \"EndTime\": 1623194351.6093779, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 51, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 201396.0, \"count\": 1, \"min\": 201396, \"max\": 201396}, \"Total Batches Seen\": {\"sum\": 1612.0, \"count\": 1, \"min\": 1612, \"max\": 1612}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 104.0, \"count\": 1, \"min\": 104, \"max\": 104}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3714.4477919502697 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:11 INFO 140403258652480] # Starting training for epoch 53\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:12.968] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 164, \"duration\": 948, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] # Finished training epoch 55 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) total: 6.477433569969669\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) kld: 0.14812736261275508\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) recons: 6.329306214086471\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] Loss (name: value) logppx: 6.477433569969669\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:12 INFO 139703431448384] #quality_metric: host=algo-1, epoch=55, train total_loss =6.477433569969669\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:13.045] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 164, \"duration\": 76, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) total: 6.690626212528774\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) kld: 0.14650257783276693\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) recons: 6.544123649597168\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) logppx: 6.690626212528774\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] #validation_score (55): 6.690626212528774\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] patience losses:[6.694850036076137, 6.690475940704346, 6.711028507777622, 6.687007495335171, 6.68559319632394] min patience loss:6.68559319632394 current loss:6.690626212528774 absolute loss difference:0.005033016204833984\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Timing: train: 0.95s, val: 0.08s, epoch: 1.03s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] #progress_metric: host=algo-1, completed 55.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194352.0197818, \"EndTime\": 1623194353.046619, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 54, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 212740.0, \"count\": 1, \"min\": 212740, \"max\": 212740}, \"Total Batches Seen\": {\"sum\": 1705.0, \"count\": 1, \"min\": 1705, \"max\": 1705}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 110.0, \"count\": 1, \"min\": 110, \"max\": 110}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3766.3159420579204 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] # Starting training for epoch 56\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:12.580] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 158, \"duration\": 968, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] # Finished training epoch 53 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) total: 6.485062976037303\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) kld: 0.14708121397322224\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) recons: 6.337981743197287\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) logppx: 6.485062976037303\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] #quality_metric: host=algo-2, epoch=53, train total_loss =6.485062976037303\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:12.661] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 158, \"duration\": 79, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) total: 6.6823031561715265\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) kld: 0.15160976137433732\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) recons: 6.530693394797189\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Loss (name: value) logppx: 6.6823031561715265\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] #validation_score (53): 6.6823031561715265\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] patience losses:[6.690619468688965, 6.689588614872524, 6.723826135907855, 6.69028411592756, 6.683133602142334] min patience loss:6.683133602142334 current loss:6.6823031561715265 absolute loss difference:0.0008304459708075029\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] Timing: train: 0.97s, val: 0.09s, epoch: 1.06s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] #progress_metric: host=algo-2, completed 53.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194351.6096275, \"EndTime\": 1623194352.6682808, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 52, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 205269.0, \"count\": 1, \"min\": 205269, \"max\": 205269}, \"Total Batches Seen\": {\"sum\": 1643.0, \"count\": 1, \"min\": 1643, \"max\": 1643}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 106.0, \"count\": 1, \"min\": 106, \"max\": 106}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3657.8578490690606 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:12 INFO 140403258652480] # Starting training for epoch 54\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:13.985] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 167, \"duration\": 938, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] # Finished training epoch 56 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) total: 6.4704614070154\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) kld: 0.14747269667925372\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) recons: 6.322988756241337\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] Loss (name: value) logppx: 6.4704614070154\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:13 INFO 139703431448384] #quality_metric: host=algo-1, epoch=56, train total_loss =6.4704614070154\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:14.048] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 167, \"duration\": 60, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) total: 6.722341878073556\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) kld: 0.15502436459064484\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) recons: 6.567317553928921\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) logppx: 6.722341878073556\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] #validation_score (56): 6.722341878073556\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] patience losses:[6.690475940704346, 6.711028507777622, 6.687007495335171, 6.68559319632394, 6.690626212528774] min patience loss:6.68559319632394 current loss:6.722341878073556 absolute loss difference:0.0367486817496161\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Timing: train: 0.94s, val: 0.06s, epoch: 1.00s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] #progress_metric: host=algo-1, completed 56.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194353.0468552, \"EndTime\": 1623194354.0513842, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 55, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 216608.0, \"count\": 1, \"min\": 216608, \"max\": 216608}, \"Total Batches Seen\": {\"sum\": 1736.0, \"count\": 1, \"min\": 1736, \"max\": 1736}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 112.0, \"count\": 1, \"min\": 112, \"max\": 112}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3849.814296090972 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] # Starting training for epoch 57\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:13.633] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 161, \"duration\": 961, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] # Finished training epoch 54 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) total: 6.488760452116689\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) kld: 0.1498559324010726\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) recons: 6.338904480780324\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) logppx: 6.488760452116689\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] #quality_metric: host=algo-2, epoch=54, train total_loss =6.488760452116689\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:13.724] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 161, \"duration\": 89, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) total: 6.683248043060303\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) kld: 0.14626909792423248\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) recons: 6.536978994097028\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Loss (name: value) logppx: 6.683248043060303\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] #validation_score (54): 6.683248043060303\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] patience losses:[6.689588614872524, 6.723826135907855, 6.69028411592756, 6.683133602142334, 6.6823031561715265] min patience loss:6.6823031561715265 current loss:6.683248043060303 absolute loss difference:0.0009448868887762529\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] Timing: train: 0.97s, val: 0.09s, epoch: 1.06s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] #progress_metric: host=algo-2, completed 54.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194352.668619, \"EndTime\": 1623194353.726517, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 53, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 209142.0, \"count\": 1, \"min\": 209142, \"max\": 209142}, \"Total Batches Seen\": {\"sum\": 1674.0, \"count\": 1, \"min\": 1674, \"max\": 1674}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 108.0, \"count\": 1, \"min\": 108, \"max\": 108}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3660.4022460116935 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:13 INFO 140403258652480] # Starting training for epoch 55\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:14.942] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 170, \"duration\": 889, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] # Finished training epoch 57 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) total: 6.468935070499297\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) kld: 0.15081719982047234\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) recons: 6.318117872361214\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] Loss (name: value) logppx: 6.468935070499297\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:14 INFO 139703431448384] #quality_metric: host=algo-1, epoch=57, train total_loss =6.468935070499297\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:15.012] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 170, \"duration\": 69, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) total: 6.675262928009033\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) kld: 0.1536182463169098\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) recons: 6.521644660404751\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) logppx: 6.675262928009033\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] #validation_score (57): 6.675262928009033\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] patience losses:[6.711028507777622, 6.687007495335171, 6.68559319632394, 6.690626212528774, 6.722341878073556] min patience loss:6.68559319632394 current loss:6.675262928009033 absolute loss difference:0.01033026831490691\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Timing: train: 0.89s, val: 0.08s, epoch: 0.97s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] #progress_metric: host=algo-1, completed 57.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194354.0518465, \"EndTime\": 1623194355.0205889, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 56, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 220476.0, \"count\": 1, \"min\": 220476, \"max\": 220476}, \"Total Batches Seen\": {\"sum\": 1767.0, \"count\": 1, \"min\": 1767, \"max\": 1767}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 114.0, \"count\": 1, \"min\": 114, \"max\": 114}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3992.221032803082 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] # Starting training for epoch 58\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:14.664] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 164, \"duration\": 937, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] # Finished training epoch 55 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) total: 6.485632561868237\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) kld: 0.1517157072742139\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) recons: 6.3339168448602\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) logppx: 6.485632561868237\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] #quality_metric: host=algo-2, epoch=55, train total_loss =6.485632561868237\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:14.742] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 164, \"duration\": 76, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) total: 6.684352057320731\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) kld: 0.14985676961285727\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) recons: 6.534495285579136\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Loss (name: value) logppx: 6.684352057320731\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] #validation_score (55): 6.684352057320731\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] patience losses:[6.723826135907855, 6.69028411592756, 6.683133602142334, 6.6823031561715265, 6.683248043060303] min patience loss:6.6823031561715265 current loss:6.684352057320731 absolute loss difference:0.0020489011492044185\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:3\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] Timing: train: 0.94s, val: 0.08s, epoch: 1.02s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] #progress_metric: host=algo-2, completed 55.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194353.7268448, \"EndTime\": 1623194354.7444324, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 54, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 213015.0, \"count\": 1, \"min\": 213015, \"max\": 213015}, \"Total Batches Seen\": {\"sum\": 1705.0, \"count\": 1, \"min\": 1705, \"max\": 1705}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 110.0, \"count\": 1, \"min\": 110, \"max\": 110}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3805.4210203408975 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:14 INFO 140403258652480] # Starting training for epoch 56\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:15.969] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 173, \"duration\": 947, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] # Finished training epoch 58 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) total: 6.462677017334969\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) kld: 0.14947012174994714\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) recons: 6.313206945696185\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] Loss (name: value) logppx: 6.462677017334969\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:15 INFO 139703431448384] #quality_metric: host=algo-1, epoch=58, train total_loss =6.462677017334969\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:16.038] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 173, \"duration\": 68, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) total: 6.681616374424526\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) kld: 0.15669986818517959\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) recons: 6.524916580745152\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) logppx: 6.681616374424526\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] #validation_score (58): 6.681616374424526\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] patience losses:[6.687007495335171, 6.68559319632394, 6.690626212528774, 6.722341878073556, 6.675262928009033] min patience loss:6.675262928009033 current loss:6.681616374424526 absolute loss difference:0.006353446415492847\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Timing: train: 0.95s, val: 0.07s, epoch: 1.02s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] #progress_metric: host=algo-1, completed 58.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194355.0208404, \"EndTime\": 1623194356.0392976, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 57, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 224344.0, \"count\": 1, \"min\": 224344, \"max\": 224344}, \"Total Batches Seen\": {\"sum\": 1798.0, \"count\": 1, \"min\": 1798, \"max\": 1798}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 116.0, \"count\": 1, \"min\": 116, \"max\": 116}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3797.4045396858537 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] # Starting training for epoch 59\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:15.659] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 167, \"duration\": 914, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] # Finished training epoch 56 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) total: 6.478448490942678\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) kld: 0.15091760805056942\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) recons: 6.327530883973645\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) logppx: 6.478448490942678\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] #quality_metric: host=algo-2, epoch=56, train total_loss =6.478448490942678\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:15.752] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 167, \"duration\": 90, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) total: 6.68073490687779\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) kld: 0.14852941461971828\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) recons: 6.532205513545445\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Loss (name: value) logppx: 6.68073490687779\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] #validation_score (56): 6.68073490687779\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] patience losses:[6.69028411592756, 6.683133602142334, 6.6823031561715265, 6.683248043060303, 6.684352057320731] min patience loss:6.6823031561715265 current loss:6.68073490687779 absolute loss difference:0.0015682492937365566\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] Timing: train: 0.92s, val: 0.10s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] #progress_metric: host=algo-2, completed 56.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194354.7447479, \"EndTime\": 1623194355.7584586, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 55, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 216888.0, \"count\": 1, \"min\": 216888, \"max\": 216888}, \"Total Batches Seen\": {\"sum\": 1736.0, \"count\": 1, \"min\": 1736, \"max\": 1736}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 112.0, \"count\": 1, \"min\": 112, \"max\": 112}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3820.0819470201104 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:15 INFO 140403258652480] # Starting training for epoch 57\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:16.926] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 176, \"duration\": 887, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] # Finished training epoch 59 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) total: 6.466279133673637\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) kld: 0.15278377299827914\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) recons: 6.313495366804061\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) logppx: 6.466279133673637\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] #quality_metric: host=algo-1, epoch=59, train total_loss =6.466279133673637\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:16.994] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 176, \"duration\": 65, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) total: 6.680599689483643\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) kld: 0.16217031649180821\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) recons: 6.518429347446987\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Loss (name: value) logppx: 6.680599689483643\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] #validation_score (59): 6.680599689483643\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] patience losses:[6.68559319632394, 6.690626212528774, 6.722341878073556, 6.675262928009033, 6.681616374424526] min patience loss:6.675262928009033 current loss:6.680599689483643 absolute loss difference:0.005336761474609375\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] Timing: train: 0.89s, val: 0.07s, epoch: 0.96s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] #progress_metric: host=algo-1, completed 59.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194356.0395412, \"EndTime\": 1623194356.9949849, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 58, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 228212.0, \"count\": 1, \"min\": 228212, \"max\": 228212}, \"Total Batches Seen\": {\"sum\": 1829.0, \"count\": 1, \"min\": 1829, \"max\": 1829}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 118.0, \"count\": 1, \"min\": 118, \"max\": 118}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4047.8074845015794 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:16 INFO 139703431448384] # Starting training for epoch 60\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:16.671] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 170, \"duration\": 908, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] # Finished training epoch 57 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) total: 6.480872527245553\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) kld: 0.15368555317963323\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) recons: 6.3271870036279\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) logppx: 6.480872527245553\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] #quality_metric: host=algo-2, epoch=57, train total_loss =6.480872527245553\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:16.763] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 170, \"duration\": 90, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) total: 6.692234856741769\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) kld: 0.16247833413737162\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) recons: 6.529756614140102\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Loss (name: value) logppx: 6.692234856741769\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] #validation_score (57): 6.692234856741769\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] patience losses:[6.683133602142334, 6.6823031561715265, 6.683248043060303, 6.684352057320731, 6.68073490687779] min patience loss:6.68073490687779 current loss:6.692234856741769 absolute loss difference:0.011499949863979175\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] Timing: train: 0.91s, val: 0.09s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] #progress_metric: host=algo-2, completed 57.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194355.7587621, \"EndTime\": 1623194356.7654533, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 56, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 220761.0, \"count\": 1, \"min\": 220761, \"max\": 220761}, \"Total Batches Seen\": {\"sum\": 1767.0, \"count\": 1, \"min\": 1767, \"max\": 1767}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 114.0, \"count\": 1, \"min\": 114, \"max\": 114}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3845.6951594712605 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:16 INFO 140403258652480] # Starting training for epoch 58\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:17.871] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 179, \"duration\": 876, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] # Finished training epoch 60 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) total: 6.456482694995019\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) kld: 0.1519757499617915\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) recons: 6.304506940226401\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) logppx: 6.456482694995019\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] #quality_metric: host=algo-1, epoch=60, train total_loss =6.456482694995019\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:17.958] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 179, \"duration\": 85, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) total: 6.677128383091518\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) kld: 0.16019189996378763\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) recons: 6.516936506543841\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Loss (name: value) logppx: 6.677128383091518\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] #validation_score (60): 6.677128383091518\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] patience losses:[6.690626212528774, 6.722341878073556, 6.675262928009033, 6.681616374424526, 6.680599689483643] min patience loss:6.675262928009033 current loss:6.677128383091518 absolute loss difference:0.0018654550824850347\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:3\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] Timing: train: 0.88s, val: 0.09s, epoch: 0.96s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] #progress_metric: host=algo-1, completed 60.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194356.9952252, \"EndTime\": 1623194357.959989, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 59, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 232080.0, \"count\": 1, \"min\": 232080, \"max\": 232080}, \"Total Batches Seen\": {\"sum\": 1860.0, \"count\": 1, \"min\": 1860, \"max\": 1860}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 120.0, \"count\": 1, \"min\": 120, \"max\": 120}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4008.7094576830705 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:17 INFO 139703431448384] # Starting training for epoch 61\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:17.684] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 173, \"duration\": 918, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] # Finished training epoch 58 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) total: 6.477591126195846\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) kld: 0.15296106088546016\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) recons: 6.324630122030935\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) logppx: 6.477591126195846\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] #quality_metric: host=algo-2, epoch=58, train total_loss =6.477591126195846\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:17.759] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 173, \"duration\": 72, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) total: 6.677730355943952\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) kld: 0.1559468082019261\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) recons: 6.521783556256976\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Loss (name: value) logppx: 6.677730355943952\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] #validation_score (58): 6.677730355943952\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] patience losses:[6.6823031561715265, 6.683248043060303, 6.684352057320731, 6.68073490687779, 6.692234856741769] min patience loss:6.68073490687779 current loss:6.677730355943952 absolute loss difference:0.0030045509338378906\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] Timing: train: 0.92s, val: 0.08s, epoch: 1.00s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] #progress_metric: host=algo-2, completed 58.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194356.7661815, \"EndTime\": 1623194357.765515, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 57, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 224634.0, \"count\": 1, \"min\": 224634, \"max\": 224634}, \"Total Batches Seen\": {\"sum\": 1798.0, \"count\": 1, \"min\": 1798, \"max\": 1798}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 116.0, \"count\": 1, \"min\": 116, \"max\": 116}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3874.794064062216 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:17 INFO 140403258652480] # Starting training for epoch 59\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:19.018] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 182, \"duration\": 1058, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] # Finished training epoch 61 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) total: 6.449966669082642\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) kld: 0.1536012811045493\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) recons: 6.296365372596249\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) logppx: 6.449966669082642\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] #quality_metric: host=algo-1, epoch=61, train total_loss =6.449966669082642\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:18.874] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 176, \"duration\": 1107, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] # Finished training epoch 59 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) total: 6.466070190552743\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) kld: 0.15420611587262922\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) recons: 6.311864110731309\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) logppx: 6.466070190552743\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] #quality_metric: host=algo-2, epoch=59, train total_loss =6.466070190552743\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:18.957] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 176, \"duration\": 77, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) total: 6.669989858354841\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) kld: 0.15275737004620688\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) recons: 6.517232486179897\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Loss (name: value) logppx: 6.669989858354841\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] #validation_score (59): 6.669989858354841\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] patience losses:[6.683248043060303, 6.684352057320731, 6.68073490687779, 6.692234856741769, 6.677730355943952] min patience loss:6.677730355943952 current loss:6.669989858354841 absolute loss difference:0.007740497589111328\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] Timing: train: 1.11s, val: 0.08s, epoch: 1.20s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] #progress_metric: host=algo-2, completed 59.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194357.765859, \"EndTime\": 1623194358.9633799, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 58, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 228507.0, \"count\": 1, \"min\": 228507, \"max\": 228507}, \"Total Batches Seen\": {\"sum\": 1829.0, \"count\": 1, \"min\": 1829, \"max\": 1829}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 118.0, \"count\": 1, \"min\": 118, \"max\": 118}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3233.780254370057 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:18 INFO 140403258652480] # Starting training for epoch 60\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:19.086] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 182, \"duration\": 66, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) total: 6.677890709468296\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) kld: 0.16082421583788736\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) recons: 6.517066410609654\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) logppx: 6.677890709468296\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] #validation_score (61): 6.677890709468296\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] patience losses:[6.722341878073556, 6.675262928009033, 6.681616374424526, 6.680599689483643, 6.677128383091518] min patience loss:6.675262928009033 current loss:6.677890709468296 absolute loss difference:0.002627781459263012\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:4\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Timing: train: 1.06s, val: 0.07s, epoch: 1.13s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] #progress_metric: host=algo-1, completed 61.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194357.9602466, \"EndTime\": 1623194359.087367, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 60, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 235948.0, \"count\": 1, \"min\": 235948, \"max\": 235948}, \"Total Batches Seen\": {\"sum\": 1891.0, \"count\": 1, \"min\": 1891, \"max\": 1891}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 122.0, \"count\": 1, \"min\": 122, \"max\": 122}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3431.3451218462415 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] # Starting training for epoch 62\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:19.996] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 185, \"duration\": 908, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] # Finished training epoch 62 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) total: 6.455840110778809\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) kld: 0.1567232281930985\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) recons: 6.299116896044824\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] Loss (name: value) logppx: 6.455840110778809\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:19 INFO 139703431448384] #quality_metric: host=algo-1, epoch=62, train total_loss =6.455840110778809\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:20.065] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 185, \"duration\": 67, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) total: 6.670565264565604\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) kld: 0.15777813536780222\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) recons: 6.512787137712751\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) logppx: 6.670565264565604\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] #validation_score (62): 6.670565264565604\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] patience losses:[6.675262928009033, 6.681616374424526, 6.680599689483643, 6.677128383091518, 6.677890709468296] min patience loss:6.675262928009033 current loss:6.670565264565604 absolute loss difference:0.004697663443429256\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Timing: train: 0.91s, val: 0.07s, epoch: 0.98s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] #progress_metric: host=algo-1, completed 62.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194359.0876057, \"EndTime\": 1623194360.0708504, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 61, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 239816.0, \"count\": 1, \"min\": 239816, \"max\": 239816}, \"Total Batches Seen\": {\"sum\": 1922.0, \"count\": 1, \"min\": 1922, \"max\": 1922}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 124.0, \"count\": 1, \"min\": 124, \"max\": 124}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3933.2855572521157 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] # Starting training for epoch 63\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:19.916] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 179, \"duration\": 952, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] # Finished training epoch 60 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) total: 6.47000450857224\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) kld: 0.1559909107463975\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) recons: 6.314013623422192\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) logppx: 6.47000450857224\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] #quality_metric: host=algo-2, epoch=60, train total_loss =6.47000450857224\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:19.983] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 179, \"duration\": 65, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) total: 6.668963772909982\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) kld: 0.1575477123260498\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) recons: 6.511416094643729\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Loss (name: value) logppx: 6.668963772909982\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] #validation_score (60): 6.668963772909982\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] patience losses:[6.684352057320731, 6.68073490687779, 6.692234856741769, 6.677730355943952, 6.669989858354841] min patience loss:6.669989858354841 current loss:6.668963772909982 absolute loss difference:0.0010260854448587153\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] Timing: train: 0.95s, val: 0.07s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] #progress_metric: host=algo-2, completed 60.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194358.9636629, \"EndTime\": 1623194359.9904492, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 59, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 232380.0, \"count\": 1, \"min\": 232380, \"max\": 232380}, \"Total Batches Seen\": {\"sum\": 1860.0, \"count\": 1, \"min\": 1860, \"max\": 1860}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 120.0, \"count\": 1, \"min\": 120, \"max\": 120}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3771.4769336709687 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:19 INFO 140403258652480] # Starting training for epoch 61\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:20.983] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 188, \"duration\": 911, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] # Finished training epoch 63 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) total: 6.453765619185663\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) kld: 0.15727893239067448\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) recons: 6.296486719962089\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] Loss (name: value) logppx: 6.453765619185663\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:20 INFO 139703431448384] #quality_metric: host=algo-1, epoch=63, train total_loss =6.453765619185663\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:21.041] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 188, \"duration\": 56, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) total: 6.674215384892055\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) kld: 0.16436691795076644\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) recons: 6.509848526545933\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) logppx: 6.674215384892055\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] #validation_score (63): 6.674215384892055\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] patience losses:[6.681616374424526, 6.680599689483643, 6.677128383091518, 6.677890709468296, 6.670565264565604] min patience loss:6.670565264565604 current loss:6.674215384892055 absolute loss difference:0.0036501203264514004\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Timing: train: 0.91s, val: 0.06s, epoch: 0.97s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] #progress_metric: host=algo-1, completed 63.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194360.0711694, \"EndTime\": 1623194361.0420473, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 62, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 243684.0, \"count\": 1, \"min\": 243684, \"max\": 243684}, \"Total Batches Seen\": {\"sum\": 1953.0, \"count\": 1, \"min\": 1953, \"max\": 1953}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 126.0, \"count\": 1, \"min\": 126, \"max\": 126}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3983.474395231882 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] # Starting training for epoch 64\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:20.958] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 182, \"duration\": 965, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:20 INFO 140403258652480] # Finished training epoch 61 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:20 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:20 INFO 140403258652480] Loss (name: value) total: 6.468216746084152\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:20 INFO 140403258652480] Loss (name: value) kld: 0.15796625025330052\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:20 INFO 140403258652480] Loss (name: value) recons: 6.310250543778943\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:20 INFO 140403258652480] Loss (name: value) logppx: 6.468216746084152\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:20 INFO 140403258652480] #quality_metric: host=algo-2, epoch=61, train total_loss =6.468216746084152\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:21.018] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 182, \"duration\": 59, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) total: 6.6740593910217285\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) kld: 0.16605010202952794\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) recons: 6.5080092293875555\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) logppx: 6.6740593910217285\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] #validation_score (61): 6.6740593910217285\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] patience losses:[6.68073490687779, 6.692234856741769, 6.677730355943952, 6.669989858354841, 6.668963772909982] min patience loss:6.668963772909982 current loss:6.6740593910217285 absolute loss difference:0.005095618111746525\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Timing: train: 0.97s, val: 0.06s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] #progress_metric: host=algo-2, completed 61.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194359.9907277, \"EndTime\": 1623194361.0203905, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 60, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 236253.0, \"count\": 1, \"min\": 236253, \"max\": 236253}, \"Total Batches Seen\": {\"sum\": 1891.0, \"count\": 1, \"min\": 1891, \"max\": 1891}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 122.0, \"count\": 1, \"min\": 122, \"max\": 122}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3760.9490575482037 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] # Starting training for epoch 62\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:21.968] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 191, \"duration\": 926, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] # Finished training epoch 64 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) total: 6.447790922657136\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) kld: 0.15753942187274655\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) recons: 6.2902514280811435\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] Loss (name: value) logppx: 6.447790922657136\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:21 INFO 139703431448384] #quality_metric: host=algo-1, epoch=64, train total_loss =6.447790922657136\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:22.030] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 191, \"duration\": 59, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) total: 6.663431167602539\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) kld: 0.15929278518472398\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) recons: 6.504138333456857\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) logppx: 6.663431167602539\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] #validation_score (64): 6.663431167602539\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] patience losses:[6.680599689483643, 6.677128383091518, 6.677890709468296, 6.670565264565604, 6.674215384892055] min patience loss:6.670565264565604 current loss:6.663431167602539 absolute loss difference:0.007134096963064884\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Timing: train: 0.93s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] #progress_metric: host=algo-1, completed 64.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194361.0422769, \"EndTime\": 1623194362.0362244, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 63, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 247552.0, \"count\": 1, \"min\": 247552, \"max\": 247552}, \"Total Batches Seen\": {\"sum\": 1984.0, \"count\": 1, \"min\": 1984, \"max\": 1984}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 128.0, \"count\": 1, \"min\": 128, \"max\": 128}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3891.0691951934996 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] # Starting training for epoch 65\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:21.958] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 185, \"duration\": 937, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] # Finished training epoch 62 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) total: 6.467087887948559\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) kld: 0.15845014323149959\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) recons: 6.308637730536923\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] Loss (name: value) logppx: 6.467087887948559\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:21 INFO 140403258652480] #quality_metric: host=algo-2, epoch=62, train total_loss =6.467087887948559\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:22.019] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 185, \"duration\": 59, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) total: 6.672698361533029\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) kld: 0.15731676135744369\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) recons: 6.515381608690534\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) logppx: 6.672698361533029\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] #validation_score (62): 6.672698361533029\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] patience losses:[6.692234856741769, 6.677730355943952, 6.669989858354841, 6.668963772909982, 6.6740593910217285] min patience loss:6.668963772909982 current loss:6.672698361533029 absolute loss difference:0.003734588623046875\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Timing: train: 0.94s, val: 0.06s, epoch: 1.00s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] #progress_metric: host=algo-2, completed 62.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194361.020678, \"EndTime\": 1623194362.0207744, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 61, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 240126.0, \"count\": 1, \"min\": 240126, \"max\": 240126}, \"Total Batches Seen\": {\"sum\": 1922.0, \"count\": 1, \"min\": 1922, \"max\": 1922}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 124.0, \"count\": 1, \"min\": 124, \"max\": 124}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3872.0722101756987 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] # Starting training for epoch 63\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:22.956] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 194, \"duration\": 920, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] # Finished training epoch 65 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) total: 6.446324286922332\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) kld: 0.1574169864817973\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) recons: 6.288907293350466\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] Loss (name: value) logppx: 6.446324286922332\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:22 INFO 139703431448384] #quality_metric: host=algo-1, epoch=65, train total_loss =6.446324286922332\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:23.028] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 194, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) total: 6.666570118495396\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) kld: 0.16145168031964982\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) recons: 6.505118301936558\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) logppx: 6.666570118495396\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] #validation_score (65): 6.666570118495396\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] patience losses:[6.677128383091518, 6.677890709468296, 6.670565264565604, 6.674215384892055, 6.663431167602539] min patience loss:6.663431167602539 current loss:6.666570118495396 absolute loss difference:0.003138950892856762\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Timing: train: 0.92s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] #progress_metric: host=algo-1, completed 65.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194362.0364838, \"EndTime\": 1623194363.0299838, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 64, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 251420.0, \"count\": 1, \"min\": 251420, \"max\": 251420}, \"Total Batches Seen\": {\"sum\": 2015.0, \"count\": 1, \"min\": 2015, \"max\": 2015}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 130.0, \"count\": 1, \"min\": 130, \"max\": 130}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3892.78990995764 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] # Starting training for epoch 66\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:22.956] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 188, \"duration\": 935, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] # Finished training epoch 63 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) total: 6.461982780887235\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) kld: 0.15825096613937809\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) recons: 6.303731837580281\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] Loss (name: value) logppx: 6.461982780887235\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:22 INFO 140403258652480] #quality_metric: host=algo-2, epoch=63, train total_loss =6.461982780887235\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:23.018] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 188, \"duration\": 60, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) total: 6.671676022665841\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) kld: 0.1637382890496935\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) recons: 6.507937840053013\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) logppx: 6.671676022665841\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] #validation_score (63): 6.671676022665841\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] patience losses:[6.677730355943952, 6.669989858354841, 6.668963772909982, 6.6740593910217285, 6.672698361533029] min patience loss:6.668963772909982 current loss:6.671676022665841 absolute loss difference:0.002712249755859375\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:3\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Timing: train: 0.94s, val: 0.06s, epoch: 1.00s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] #progress_metric: host=algo-2, completed 63.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194362.0211422, \"EndTime\": 1623194363.019877, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 62, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 243999.0, \"count\": 1, \"min\": 243999, \"max\": 243999}, \"Total Batches Seen\": {\"sum\": 1953.0, \"count\": 1, \"min\": 1953, \"max\": 1953}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 126.0, \"count\": 1, \"min\": 126, \"max\": 126}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3877.37814304482 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] # Starting training for epoch 64\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:23.986] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 197, \"duration\": 955, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] # Finished training epoch 66 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) total: 6.446424361198179\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) kld: 0.16072159296562594\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) recons: 6.285702797674364\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] Loss (name: value) logppx: 6.446424361198179\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:23 INFO 139703431448384] #quality_metric: host=algo-1, epoch=66, train total_loss =6.446424361198179\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:24.046] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 197, \"duration\": 59, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] Loss (name: value) total: 6.662403719765799\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] Loss (name: value) kld: 0.16190606781414577\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] Loss (name: value) recons: 6.500497681753976\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] Loss (name: value) logppx: 6.662403719765799\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] #validation_score (66): 6.662403719765799\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] patience losses:[6.677890709468296, 6.670565264565604, 6.674215384892055, 6.663431167602539, 6.666570118495396] min patience loss:6.663431167602539 current loss:6.662403719765799 absolute loss difference:0.0010274478367398032\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] Timing: train: 0.96s, val: 0.06s, epoch: 1.02s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] #progress_metric: host=algo-1, completed 66.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194363.030255, \"EndTime\": 1623194364.0515509, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 65, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 255288.0, \"count\": 1, \"min\": 255288, \"max\": 255288}, \"Total Batches Seen\": {\"sum\": 2046.0, \"count\": 1, \"min\": 2046, \"max\": 2046}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 132.0, \"count\": 1, \"min\": 132, \"max\": 132}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3786.825695174353 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:24 INFO 139703431448384] # Starting training for epoch 67\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:23.989] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 191, \"duration\": 968, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] # Finished training epoch 64 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) total: 6.460592865943909\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) kld: 0.16141018223377965\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) recons: 6.299182672654429\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] Loss (name: value) logppx: 6.460592865943909\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:23 INFO 140403258652480] #quality_metric: host=algo-2, epoch=64, train total_loss =6.460592865943909\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:24.046] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 191, \"duration\": 55, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) total: 6.6569061279296875\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) kld: 0.1613906068461282\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) recons: 6.495515414646694\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) logppx: 6.6569061279296875\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] #validation_score (64): 6.6569061279296875\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] patience losses:[6.669989858354841, 6.668963772909982, 6.6740593910217285, 6.672698361533029, 6.671676022665841] min patience loss:6.668963772909982 current loss:6.6569061279296875 absolute loss difference:0.01205764498029449\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Timing: train: 0.97s, val: 0.06s, epoch: 1.03s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] #progress_metric: host=algo-2, completed 64.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194363.0201707, \"EndTime\": 1623194364.05214, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 63, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 247872.0, \"count\": 1, \"min\": 247872, \"max\": 247872}, \"Total Batches Seen\": {\"sum\": 1984.0, \"count\": 1, \"min\": 1984, \"max\": 1984}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 128.0, \"count\": 1, \"min\": 128, \"max\": 128}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3752.5122891620813 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] # Starting training for epoch 65\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:25.082] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 200, \"duration\": 1030, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] # Finished training epoch 67 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) total: 6.4369154514804965\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) kld: 0.15995240728220633\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) recons: 6.276963030138323\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) logppx: 6.4369154514804965\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] #quality_metric: host=algo-1, epoch=67, train total_loss =6.4369154514804965\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:24.982] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 194, \"duration\": 929, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] # Finished training epoch 65 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) total: 6.453128537824077\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) kld: 0.16108794342125615\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) recons: 6.292040617235245\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] Loss (name: value) logppx: 6.453128537824077\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:24 INFO 140403258652480] #quality_metric: host=algo-2, epoch=65, train total_loss =6.453128537824077\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:25.061] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 194, \"duration\": 77, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] Loss (name: value) total: 6.655554635184152\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] Loss (name: value) kld: 0.16526753987584794\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] Loss (name: value) recons: 6.490287167685373\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] Loss (name: value) logppx: 6.655554635184152\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] #validation_score (65): 6.655554635184152\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] patience losses:[6.668963772909982, 6.6740593910217285, 6.672698361533029, 6.671676022665841, 6.6569061279296875] min patience loss:6.6569061279296875 current loss:6.655554635184152 absolute loss difference:0.0013514927455355874\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] Timing: train: 0.93s, val: 0.08s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] #progress_metric: host=algo-2, completed 65.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194364.0524375, \"EndTime\": 1623194365.065849, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 64, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 251745.0, \"count\": 1, \"min\": 251745, \"max\": 251745}, \"Total Batches Seen\": {\"sum\": 2015.0, \"count\": 1, \"min\": 2015, \"max\": 2015}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 130.0, \"count\": 1, \"min\": 130, \"max\": 130}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3821.198004123106 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:25 INFO 140403258652480] # Starting training for epoch 66\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:25.149] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 200, \"duration\": 65, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) total: 6.656591074807303\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) kld: 0.16315475744860514\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) recons: 6.493436472756522\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Loss (name: value) logppx: 6.656591074807303\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] #validation_score (67): 6.656591074807303\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] patience losses:[6.670565264565604, 6.674215384892055, 6.663431167602539, 6.666570118495396, 6.662403719765799] min patience loss:6.662403719765799 current loss:6.656591074807303 absolute loss difference:0.005812644958496094\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] Timing: train: 1.03s, val: 0.07s, epoch: 1.10s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] #progress_metric: host=algo-1, completed 67.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194364.0518334, \"EndTime\": 1623194365.154302, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 66, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 259156.0, \"count\": 1, \"min\": 259156, \"max\": 259156}, \"Total Batches Seen\": {\"sum\": 2077.0, \"count\": 1, \"min\": 2077, \"max\": 2077}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 134.0, \"count\": 1, \"min\": 134, \"max\": 134}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3508.063175361773 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:25 INFO 139703431448384] # Starting training for epoch 68\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:26.082] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 203, \"duration\": 927, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] # Finished training epoch 68 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) total: 6.443859607942643\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) kld: 0.1633695773780346\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) recons: 6.280490071542801\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) logppx: 6.443859607942643\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] #quality_metric: host=algo-1, epoch=68, train total_loss =6.443859607942643\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:26.031] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 197, \"duration\": 964, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] # Finished training epoch 66 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) total: 6.459586285775708\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) kld: 0.1650759122304378\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) recons: 6.2945104106780025\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) logppx: 6.459586285775708\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] #quality_metric: host=algo-2, epoch=66, train total_loss =6.459586285775708\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:26.105] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 197, \"duration\": 73, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) total: 6.666655472346714\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) kld: 0.16357360993112838\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) recons: 6.503081934792655\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Loss (name: value) logppx: 6.666655472346714\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] #validation_score (66): 6.666655472346714\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] patience losses:[6.6740593910217285, 6.672698361533029, 6.671676022665841, 6.6569061279296875, 6.655554635184152] min patience loss:6.655554635184152 current loss:6.666655472346714 absolute loss difference:0.011100837162562271\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] Timing: train: 0.97s, val: 0.07s, epoch: 1.04s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] #progress_metric: host=algo-2, completed 66.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194365.0661278, \"EndTime\": 1623194366.1068618, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 65, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 255618.0, \"count\": 1, \"min\": 255618, \"max\": 255618}, \"Total Batches Seen\": {\"sum\": 2046.0, \"count\": 1, \"min\": 2046, \"max\": 2046}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 132.0, \"count\": 1, \"min\": 132, \"max\": 132}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3720.894403313786 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:26 INFO 140403258652480] # Starting training for epoch 67\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:26.140] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 203, \"duration\": 55, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) total: 6.658583641052246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) kld: 0.1679336620228631\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) recons: 6.490650040762765\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Loss (name: value) logppx: 6.658583641052246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] #validation_score (68): 6.658583641052246\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] patience losses:[6.674215384892055, 6.663431167602539, 6.666570118495396, 6.662403719765799, 6.656591074807303] min patience loss:6.656591074807303 current loss:6.658583641052246 absolute loss difference:0.0019925662449429282\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] Timing: train: 0.93s, val: 0.06s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] #progress_metric: host=algo-1, completed 68.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194365.1545813, \"EndTime\": 1623194366.1422343, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 67, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 263024.0, \"count\": 1, \"min\": 263024, \"max\": 263024}, \"Total Batches Seen\": {\"sum\": 2108.0, \"count\": 1, \"min\": 2108, \"max\": 2108}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 136.0, \"count\": 1, \"min\": 136, \"max\": 136}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3915.721851801524 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:26 INFO 139703431448384] # Starting training for epoch 69\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:27.048] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 206, \"duration\": 905, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] # Finished training epoch 69 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) total: 6.429637662826046\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) kld: 0.160144591163243\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) recons: 6.26949304919089\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) logppx: 6.429637662826046\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] #quality_metric: host=algo-1, epoch=69, train total_loss =6.429637662826046\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:27.055] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 200, \"duration\": 948, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] # Finished training epoch 67 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) total: 6.446748495101929\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) kld: 0.16171543985124556\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) recons: 6.28503304912198\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) logppx: 6.446748495101929\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] #quality_metric: host=algo-2, epoch=67, train total_loss =6.446748495101929\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:27.113] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 200, \"duration\": 56, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) total: 6.662278175354004\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) kld: 0.17767012545040675\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) recons: 6.484608037131173\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Loss (name: value) logppx: 6.662278175354004\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] #validation_score (67): 6.662278175354004\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] patience losses:[6.672698361533029, 6.671676022665841, 6.6569061279296875, 6.655554635184152, 6.666655472346714] min patience loss:6.655554635184152 current loss:6.662278175354004 absolute loss difference:0.006723540169851994\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] Timing: train: 0.95s, val: 0.06s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] #progress_metric: host=algo-2, completed 67.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194366.107135, \"EndTime\": 1623194367.114215, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 66, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 259491.0, \"count\": 1, \"min\": 259491, \"max\": 259491}, \"Total Batches Seen\": {\"sum\": 2077.0, \"count\": 1, \"min\": 2077, \"max\": 2077}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 134.0, \"count\": 1, \"min\": 134, \"max\": 134}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3845.23818239231 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:27 INFO 140403258652480] # Starting training for epoch 68\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:27.107] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 206, \"duration\": 57, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) total: 6.664823191506522\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) kld: 0.18049034689153945\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) recons: 6.48433290209089\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Loss (name: value) logppx: 6.664823191506522\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] #validation_score (69): 6.664823191506522\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] patience losses:[6.663431167602539, 6.666570118495396, 6.662403719765799, 6.656591074807303, 6.658583641052246] min patience loss:6.656591074807303 current loss:6.664823191506522 absolute loss difference:0.00823211669921875\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] Timing: train: 0.91s, val: 0.06s, epoch: 0.97s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] #progress_metric: host=algo-1, completed 69.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194366.1425526, \"EndTime\": 1623194367.108762, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 68, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 266892.0, \"count\": 1, \"min\": 266892, \"max\": 266892}, \"Total Batches Seen\": {\"sum\": 2139.0, \"count\": 1, \"min\": 2139, \"max\": 2139}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 138.0, \"count\": 1, \"min\": 138, \"max\": 138}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4002.6013338412376 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:27 INFO 139703431448384] # Starting training for epoch 70\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:28.050] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 209, \"duration\": 940, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] # Finished training epoch 70 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) total: 6.435725873516452\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) kld: 0.16338768829741784\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) recons: 6.272338186540911\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) logppx: 6.435725873516452\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] #quality_metric: host=algo-1, epoch=70, train total_loss =6.435725873516452\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:28.042] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 203, \"duration\": 927, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] # Finished training epoch 68 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) total: 6.452178808950609\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) kld: 0.16514470091750544\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) recons: 6.287034046265386\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) logppx: 6.452178808950609\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] #quality_metric: host=algo-2, epoch=68, train total_loss =6.452178808950609\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:28.118] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 203, \"duration\": 73, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) total: 6.656955787113735\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) kld: 0.16866027883120946\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) recons: 6.488295486995152\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Loss (name: value) logppx: 6.656955787113735\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] #validation_score (68): 6.656955787113735\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] patience losses:[6.671676022665841, 6.6569061279296875, 6.655554635184152, 6.666655472346714, 6.662278175354004] min patience loss:6.655554635184152 current loss:6.656955787113735 absolute loss difference:0.001401151929583122\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:3\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] Timing: train: 0.93s, val: 0.08s, epoch: 1.00s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] #progress_metric: host=algo-2, completed 68.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194367.1144717, \"EndTime\": 1623194368.119349, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 67, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 263364.0, \"count\": 1, \"min\": 263364, \"max\": 263364}, \"Total Batches Seen\": {\"sum\": 2108.0, \"count\": 1, \"min\": 2108, \"max\": 2108}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 136.0, \"count\": 1, \"min\": 136, \"max\": 136}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3853.62851343696 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:28 INFO 140403258652480] # Starting training for epoch 69\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:28.124] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 209, \"duration\": 72, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) total: 6.661276204245431\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) kld: 0.16866027883120946\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) recons: 6.492615904126849\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Loss (name: value) logppx: 6.661276204245431\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] #validation_score (70): 6.661276204245431\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] patience losses:[6.666570118495396, 6.662403719765799, 6.656591074807303, 6.658583641052246, 6.664823191506522] min patience loss:6.656591074807303 current loss:6.661276204245431 absolute loss difference:0.004685129438128044\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:3\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] Timing: train: 0.94s, val: 0.07s, epoch: 1.02s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] #progress_metric: host=algo-1, completed 70.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194367.1090524, \"EndTime\": 1623194368.1255898, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 69, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 270760.0, \"count\": 1, \"min\": 270760, \"max\": 270760}, \"Total Batches Seen\": {\"sum\": 2170.0, \"count\": 1, \"min\": 2170, \"max\": 2170}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 140.0, \"count\": 1, \"min\": 140, \"max\": 140}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3804.550074174756 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:28 INFO 139703431448384] # Starting training for epoch 71\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:29.044] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 212, \"duration\": 918, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] # Finished training epoch 71 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) total: 6.430116249668982\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) kld: 0.16282161084874983\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) recons: 6.267294622236682\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) logppx: 6.430116249668982\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] #quality_metric: host=algo-1, epoch=71, train total_loss =6.430116249668982\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:29.080] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 206, \"duration\": 960, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] # Finished training epoch 69 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) total: 6.444919105499022\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) kld: 0.16481420337673156\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) recons: 6.280104860182731\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) logppx: 6.444919105499022\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] #quality_metric: host=algo-2, epoch=69, train total_loss =6.444919105499022\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:29.151] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 206, \"duration\": 67, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) total: 6.654708930424282\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) kld: 0.17239811164992197\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) recons: 6.482310771942139\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Loss (name: value) logppx: 6.654708930424282\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] #validation_score (69): 6.654708930424282\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] patience losses:[6.6569061279296875, 6.655554635184152, 6.666655472346714, 6.662278175354004, 6.656955787113735] min patience loss:6.655554635184152 current loss:6.654708930424282 absolute loss difference:0.0008457047598700029\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:4\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] Timing: train: 0.96s, val: 0.08s, epoch: 1.04s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] #progress_metric: host=algo-2, completed 69.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194368.119665, \"EndTime\": 1623194369.1600218, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 68, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 267237.0, \"count\": 1, \"min\": 267237, \"max\": 267237}, \"Total Batches Seen\": {\"sum\": 2139.0, \"count\": 1, \"min\": 2139, \"max\": 2139}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 138.0, \"count\": 1, \"min\": 138, \"max\": 138}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3721.43227591566 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:29 INFO 140403258652480] # Starting training for epoch 70\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:29.110] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 212, \"duration\": 65, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) total: 6.670550210135324\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) kld: 0.1764322498014995\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) recons: 6.494117941175189\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Loss (name: value) logppx: 6.670550210135324\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] #validation_score (71): 6.670550210135324\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] patience losses:[6.662403719765799, 6.656591074807303, 6.658583641052246, 6.664823191506522, 6.661276204245431] min patience loss:6.656591074807303 current loss:6.670550210135324 absolute loss difference:0.013959135328020622\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:4\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] Timing: train: 0.92s, val: 0.07s, epoch: 0.99s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] #progress_metric: host=algo-1, completed 71.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194368.12583, \"EndTime\": 1623194369.1119826, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 70, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 274628.0, \"count\": 1, \"min\": 274628, \"max\": 274628}, \"Total Batches Seen\": {\"sum\": 2201.0, \"count\": 1, \"min\": 2201, \"max\": 2201}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 142.0, \"count\": 1, \"min\": 142, \"max\": 142}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3921.775103026693 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:29 INFO 139703431448384] # Starting training for epoch 72\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:30.057] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 215, \"duration\": 945, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] # Finished training epoch 72 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) total: 6.429529524618579\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) kld: 0.16501144728352946\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) recons: 6.264518064837302\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) logppx: 6.429529524618579\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] #quality_metric: host=algo-1, epoch=72, train total_loss =6.429529524618579\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:30.113] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 209, \"duration\": 952, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] # Finished training epoch 70 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) total: 6.44409659601027\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) kld: 0.16728067013525194\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) recons: 6.276815925875018\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) logppx: 6.44409659601027\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] #quality_metric: host=algo-2, epoch=70, train total_loss =6.44409659601027\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:30.174] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 209, \"duration\": 59, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) total: 6.658991064344134\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) kld: 0.1658152320555278\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) recons: 6.493175779070173\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Loss (name: value) logppx: 6.658991064344134\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] #validation_score (70): 6.658991064344134\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] patience losses:[6.655554635184152, 6.666655472346714, 6.662278175354004, 6.656955787113735, 6.654708930424282] min patience loss:6.654708930424282 current loss:6.658991064344134 absolute loss difference:0.004282133919851994\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:5\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] Timing: train: 0.95s, val: 0.06s, epoch: 1.01s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] #progress_metric: host=algo-2, completed 70.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194369.160657, \"EndTime\": 1623194370.1758206, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 69, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 271110.0, \"count\": 1, \"min\": 271110, \"max\": 271110}, \"Total Batches Seen\": {\"sum\": 2170.0, \"count\": 1, \"min\": 2170, \"max\": 2170}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 140.0, \"count\": 1, \"min\": 140, \"max\": 140}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3814.4514142048142 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:30 INFO 140403258652480] # Starting training for epoch 71\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:30.140] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 215, \"duration\": 81, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) total: 6.661265577588763\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) kld: 0.1696037713970457\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) recons: 6.491661752973284\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Loss (name: value) logppx: 6.661265577588763\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] #validation_score (72): 6.661265577588763\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] patience losses:[6.656591074807303, 6.658583641052246, 6.664823191506522, 6.661276204245431, 6.670550210135324] min patience loss:6.656591074807303 current loss:6.661265577588763 absolute loss difference:0.004674502781459644\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:5\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] Timing: train: 0.95s, val: 0.08s, epoch: 1.03s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] #progress_metric: host=algo-1, completed 72.0 % of epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194369.1122649, \"EndTime\": 1623194370.1418765, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 71, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 278496.0, \"count\": 1, \"min\": 278496, \"max\": 278496}, \"Total Batches Seen\": {\"sum\": 2232.0, \"count\": 1, \"min\": 2232, \"max\": 2232}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 144.0, \"count\": 1, \"min\": 144, \"max\": 144}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=3756.151109464716 records/second\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] \u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:30 INFO 139703431448384] # Starting training for epoch 73\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:31.012] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 218, \"duration\": 870, \"num_examples\": 31, \"num_bytes\": 1452508}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] # Finished training epoch 73 on 3868 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Metrics for Training:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) total: 6.437948799902393\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) kld: 0.16708097811187467\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) recons: 6.2708677784089115\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) logppx: 6.437948799902393\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] #quality_metric: host=algo-1, epoch=73, train total_loss =6.437948799902393\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:31.084] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 218, \"duration\": 70, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) total: 6.669911929539272\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) kld: 0.16847902536392212\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) recons: 6.5014328956604\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Loss (name: value) logppx: 6.669911929539272\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] #validation_score (73): 6.669911929539272\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] patience losses:[6.658583641052246, 6.664823191506522, 6.661276204245431, 6.670550210135324, 6.661265577588763] min patience loss:6.658583641052246 current loss:6.669911929539272 absolute loss difference:0.01132828848702605\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Bad epoch: loss has not improved (enough). Bad count:6\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Bad epochs exceeded patience. Stopping training early!\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Timing: train: 0.87s, val: 0.07s, epoch: 0.94s\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] Early stop condition met. Stopping training.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] #progress_metric: host=algo-1, completed 100 % epochs\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194370.1421127, \"EndTime\": 1623194371.0864322, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\", \"epoch\": 72, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 282364.0, \"count\": 1, \"min\": 282364, \"max\": 282364}, \"Total Batches Seen\": {\"sum\": 2263.0, \"count\": 1, \"min\": 2263, \"max\": 2263}, \"Max Records Seen Between Resets\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 146.0, \"count\": 1, \"min\": 146, \"max\": 146}, \"Number of Records Since Last Reset\": {\"sum\": 3868.0, \"count\": 1, \"min\": 3868, \"max\": 3868}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:31 INFO 139703431448384] #throughput_metric: host=algo-1, train throughput=4095.363077339397 records/second\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:31.105] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 212, \"duration\": 928, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] # Finished training epoch 71 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) total: 6.450904342436021\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) kld: 0.16861538973546797\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) recons: 6.28228888973113\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) logppx: 6.450904342436021\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #quality_metric: host=algo-2, epoch=71, train total_loss =6.450904342436021\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:31.170] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 212, \"duration\": 64, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) total: 6.652386733463833\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) kld: 0.169691801071167\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) recons: 6.4826949664524625\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) logppx: 6.652386733463833\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #validation_score (71): 6.652386733463833\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] patience losses:[6.666655472346714, 6.662278175354004, 6.656955787113735, 6.654708930424282, 6.658991064344134] min patience loss:6.654708930424282 current loss:6.652386733463833 absolute loss difference:0.0023221969604492188\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Timing: train: 0.93s, val: 0.07s, epoch: 1.00s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #progress_metric: host=algo-2, completed 71.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194370.1762898, \"EndTime\": 1623194371.1759996, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 70, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 274983.0, \"count\": 1, \"min\": 274983, \"max\": 274983}, \"Total Batches Seen\": {\"sum\": 2201.0, \"count\": 1, \"min\": 2201, \"max\": 2201}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 142.0, \"count\": 1, \"min\": 142, \"max\": 142}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=3873.625239440704 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] # Starting training for epoch 72\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:31.876] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 215, \"duration\": 699, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] # Finished training epoch 72 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) total: 6.424685385919386\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) kld: 0.16629477482168906\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) recons: 6.258390634290634\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) logppx: 6.424685385919386\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #quality_metric: host=algo-2, epoch=72, train total_loss =6.424685385919386\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:31.952] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 215, \"duration\": 75, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) total: 6.658300399780273\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) kld: 0.16995217118944442\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) recons: 6.488348211560931\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Loss (name: value) logppx: 6.658300399780273\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #validation_score (72): 6.658300399780273\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] patience losses:[6.662278175354004, 6.656955787113735, 6.654708930424282, 6.658991064344134, 6.652386733463833] min patience loss:6.652386733463833 current loss:6.658300399780273 absolute loss difference:0.005913666316440747\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:1\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] Timing: train: 0.70s, val: 0.08s, epoch: 0.78s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #progress_metric: host=algo-2, completed 72.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194371.1762474, \"EndTime\": 1623194371.9535005, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 71, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 278856.0, \"count\": 1, \"min\": 278856, \"max\": 278856}, \"Total Batches Seen\": {\"sum\": 2232.0, \"count\": 1, \"min\": 2232, \"max\": 2232}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 144.0, \"count\": 1, \"min\": 144, \"max\": 144}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=4982.072126011202 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:31 INFO 140403258652480] # Starting training for epoch 73\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:32.665] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 218, \"duration\": 711, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] # Finished training epoch 73 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) total: 6.4154576793793705\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) kld: 0.16860893825369497\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) recons: 6.246848767803561\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) logppx: 6.4154576793793705\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] #quality_metric: host=algo-2, epoch=73, train total_loss =6.4154576793793705\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:32.725] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 218, \"duration\": 57, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) total: 6.656081404004778\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) kld: 0.17290431899683817\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) recons: 6.483177116938999\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Loss (name: value) logppx: 6.656081404004778\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] #validation_score (73): 6.656081404004778\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] patience losses:[6.656955787113735, 6.654708930424282, 6.658991064344134, 6.652386733463833, 6.658300399780273] min patience loss:6.652386733463833 current loss:6.656081404004778 absolute loss difference:0.0036946705409457437\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] Timing: train: 0.71s, val: 0.06s, epoch: 0.77s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] #progress_metric: host=algo-2, completed 73.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194371.953774, \"EndTime\": 1623194372.7263746, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 72, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 282729.0, \"count\": 1, \"min\": 282729, \"max\": 282729}, \"Total Batches Seen\": {\"sum\": 2263.0, \"count\": 1, \"min\": 2263, \"max\": 2263}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 146.0, \"count\": 1, \"min\": 146, \"max\": 146}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=5012.055930514799 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:32 INFO 140403258652480] # Starting training for epoch 74\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:33.446] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 221, \"duration\": 719, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] # Finished training epoch 74 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) total: 6.40968152399986\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) kld: 0.16973936726008693\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) recons: 6.239942150731241\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) logppx: 6.40968152399986\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] #quality_metric: host=algo-2, epoch=74, train total_loss =6.40968152399986\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:33.503] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 221, \"duration\": 55, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) total: 6.666548592703683\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) kld: 0.17217808536120824\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) recons: 6.494370664869036\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Loss (name: value) logppx: 6.666548592703683\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] #validation_score (74): 6.666548592703683\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] patience losses:[6.654708930424282, 6.658991064344134, 6.652386733463833, 6.658300399780273, 6.656081404004778] min patience loss:6.652386733463833 current loss:6.666548592703683 absolute loss difference:0.014161859239850472\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:3\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] Timing: train: 0.72s, val: 0.06s, epoch: 0.78s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] #progress_metric: host=algo-2, completed 74.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194372.7267487, \"EndTime\": 1623194373.505339, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 73, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 286602.0, \"count\": 1, \"min\": 286602, \"max\": 286602}, \"Total Batches Seen\": {\"sum\": 2294.0, \"count\": 1, \"min\": 2294, \"max\": 2294}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 148.0, \"count\": 1, \"min\": 148, \"max\": 148}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=4973.408392853152 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:33 INFO 140403258652480] # Starting training for epoch 75\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:34.266] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 224, \"duration\": 760, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] # Finished training epoch 75 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) total: 6.408468634851517\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) kld: 0.17197414030951838\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) recons: 6.236494521940908\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) logppx: 6.408468634851517\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] #quality_metric: host=algo-2, epoch=75, train total_loss =6.408468634851517\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:34.324] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 224, \"duration\": 56, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) total: 6.659877027784075\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) kld: 0.17903506330081395\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) recons: 6.480841909136091\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Loss (name: value) logppx: 6.659877027784075\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] #validation_score (75): 6.659877027784075\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] patience losses:[6.658991064344134, 6.652386733463833, 6.658300399780273, 6.656081404004778, 6.666548592703683] min patience loss:6.652386733463833 current loss:6.659877027784075 absolute loss difference:0.007490294320242619\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:4\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] Timing: train: 0.76s, val: 0.06s, epoch: 0.82s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] #progress_metric: host=algo-2, completed 75.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194373.505637, \"EndTime\": 1623194374.325788, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 74, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 290475.0, \"count\": 1, \"min\": 290475, \"max\": 290475}, \"Total Batches Seen\": {\"sum\": 2325.0, \"count\": 1, \"min\": 2325, \"max\": 2325}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 150.0, \"count\": 1, \"min\": 150, \"max\": 150}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=4721.588251878661 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:34 INFO 140403258652480] # Starting training for epoch 76\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:35.058] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 227, \"duration\": 732, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] # Finished training epoch 76 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) total: 6.40226448351337\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) kld: 0.17277954434675555\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) recons: 6.229484973415252\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) logppx: 6.40226448351337\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #quality_metric: host=algo-2, epoch=76, train total_loss =6.40226448351337\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:35.118] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 227, \"duration\": 58, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) total: 6.660318647112165\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) kld: 0.17280201401029313\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) recons: 6.48751653943743\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) logppx: 6.660318647112165\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #validation_score (76): 6.660318647112165\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] patience losses:[6.652386733463833, 6.658300399780273, 6.656081404004778, 6.666548592703683, 6.659877027784075] min patience loss:6.652386733463833 current loss:6.660318647112165 absolute loss difference:0.007931913648332234\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:5\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Timing: train: 0.73s, val: 0.06s, epoch: 0.79s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #progress_metric: host=algo-2, completed 76.0 % of epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194374.3260279, \"EndTime\": 1623194375.1196294, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 75, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 294348.0, \"count\": 1, \"min\": 294348, \"max\": 294348}, \"Total Batches Seen\": {\"sum\": 2356.0, \"count\": 1, \"min\": 2356, \"max\": 2356}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 152.0, \"count\": 1, \"min\": 152, \"max\": 152}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=4879.280384706649 records/second\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] \u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] # Starting training for epoch 77\u001b[0m\n", - "\u001b[34m[2021-06-08 23:19:35.982] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 221, \"duration\": 65, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Metrics for Inference:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Loss (name: value) total: 6.664144515991211\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Loss (name: value) kld: 0.1597729985203062\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Loss (name: value) recons: 6.504371438707624\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Loss (name: value) logppx: 6.664144515991211\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] #quality_metric: host=algo-1, epoch=73, validation total_loss =6.664144515991211\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Loss of server-side model: 6.664144515991211\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:35 INFO 139703431448384] Best model based on early stopping at epoch 67. Best loss: 6.656591074807303\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] Topics from epoch:final (num_topics:20) [, tu 0.72]:\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 773 679 1931 419 418 3 157 58 1129 779 118 11 1103 376 884 542 111 1150 846 979\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 592 571 1960 1370 1541 422 320 1584 93 1583 570 1103 934 295 1191 51 902 1200 303 575\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 841 594 1572 791 389 1134 152 538 1573 1641 452 898 1296 928 231 687 1651 1096 1085 1654\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 749 1681 1696 448 1183 907 908 1488 612 148 1618 361 1244 1119 1959 935 856 1152 1125 1416\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 524 1780 668 1524 949 47 1635 709 1975 1213 179 843 732 730 1522 847 1111 684 353 525\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1366 1328 697 1902 504 1607 1988 706 1872 1955 673 1973 1990 742 1987 890 1269 512 1299 1119\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1234 518 1512 36 884 1175 673 1400 510 179 659 1264 1807 127 920 1041 1081 257 1563 1671\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 899 912 1571 751 120 1483 300 176 1900 301 1644 825 646 299 177 169 900 519 914 824\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1554 1128 1227 1031 1662 1114 546 122 1634 1348 1899 1679 964 1157 1063 230 1289 180 1306 1532\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1148 608 318 1264 868 1800 250 495 510 1296 1915 1297 1870 1201 1564 121 1441 698 1081 1200\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1148 1780 659 1915 868 949 413 1689 691 353 1634 742 1772 1031 1524 1522 730 1374 180 732\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 524 179 1148 1524 733 1780 668 1522 1111 913 807 1138 189 1523 698 1027 667 1441 77 1366\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 524 179 1780 1309 1138 1993 1522 1524 1644 189 1148 1855 1635 135 936 1125 789 1523 1111 1213\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 446 140 142 1499 0 746 1300 659 118 141 157 1601 162 1070 96 433 139 1780 949 102\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 426 1179 1313 817 1127 972 1779 1568 1437 1315 1576 729 1966 1826 486 1295 689 293 1197 1235\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 62 484 1429 1917 1959 205 158 1450 1815 1837 304 179 255 1309 767 1936 576 1183 874 733\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1234 413 1635 1522 667 150 1780 1052 524 1245 179 1148 789 1955 1652 1006 1843 1993 1655 518\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1234 318 1080 1081 455 1268 172 413 794 1098 3 1264 353 504 1122 1175 973 884 1685 949\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 824 732 1128 179 1125 733 1031 676 964 684 1780 1522 174 949 37 108 1524 1227 807 237\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] 1264 413 824 518 38 1245 673 973 1745 1522 1234 353 250 218 1157 1175 682 1386 659 319\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] Serializing model to /opt/ml/model/model_algo-1\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] Saved checkpoint to \"/tmp/tmpkmfh515x/state-0001.params\"\u001b[0m\n", - "\u001b[34m[06/08/2021 23:19:36 INFO 139703431448384] Test data is not provided.\u001b[0m\n", - "\u001b[34m#metrics {\"StartTime\": 1623194295.5061681, \"EndTime\": 1623194376.0876753, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-1\", \"Operation\": \"training\"}, \"Metrics\": {\"initialize.time\": {\"sum\": 743.8404560089111, \"count\": 1, \"min\": 743.8404560089111, \"max\": 743.8404560089111}, \"epochs\": {\"sum\": 100.0, \"count\": 1, \"min\": 100, \"max\": 100}, \"model.score.time\": {\"sum\": 5502.745628356934, \"count\": 74, \"min\": 57.010650634765625, \"max\": 160.45522689819336}, \"early_stop.time\": {\"sum\": 5669.4016456604, \"count\": 73, \"min\": 57.80625343322754, \"max\": 164.24846649169922}, \"update.time\": {\"sum\": 74785.13598442078, \"count\": 73, \"min\": 920.3245639801025, \"max\": 1277.8825759887695}, \"finalize.time\": {\"sum\": 165.69781303405762, \"count\": 1, \"min\": 165.69781303405762, \"max\": 165.69781303405762}, \"model.serialize.time\": {\"sum\": 4.55474853515625, \"count\": 1, \"min\": 4.55474853515625, \"max\": 4.55474853515625}, \"setuptime\": {\"sum\": 1060.2984428405762, \"count\": 1, \"min\": 1060.2984428405762, \"max\": 1060.2984428405762}, \"totaltime\": {\"sum\": 81677.8953075409, \"count\": 1, \"min\": 81677.8953075409, \"max\": 81677.8953075409}}}\n", - "\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:35.855] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/train\", \"epoch\": 230, \"duration\": 734, \"num_examples\": 31, \"num_bytes\": 1413316}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] # Finished training epoch 77 on 3873 examples from 31 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Metrics for Training:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) total: 6.402825109420284\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) kld: 0.17584915338985382\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) recons: 6.226975960116232\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) logppx: 6.402825109420284\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #quality_metric: host=algo-2, epoch=77, train total_loss =6.402825109420284\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:35.911] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 230, \"duration\": 55, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) total: 6.667810644422259\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) kld: 0.17939407910619462\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) recons: 6.488416603633335\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) logppx: 6.667810644422259\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #validation_score (77): 6.667810644422259\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] patience losses:[6.658300399780273, 6.656081404004778, 6.666548592703683, 6.659877027784075, 6.660318647112165] min patience loss:6.656081404004778 current loss:6.667810644422259 absolute loss difference:0.011729240417480469\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Bad epoch: loss has not improved (enough). Bad count:6\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Bad epochs exceeded patience. Stopping training early!\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Timing: train: 0.74s, val: 0.06s, epoch: 0.79s\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Early stop condition met. Stopping training.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #progress_metric: host=algo-2, completed 100 % epochs\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194375.1199713, \"EndTime\": 1623194375.9129415, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\", \"epoch\": 76, \"Meta\": \"training_data_iter\"}, \"Metrics\": {\"Total Records Seen\": {\"sum\": 298221.0, \"count\": 1, \"min\": 298221, \"max\": 298221}, \"Total Batches Seen\": {\"sum\": 2387.0, \"count\": 1, \"min\": 2387, \"max\": 2387}, \"Max Records Seen Between Resets\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Max Batches Seen Between Resets\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}, \"Reset Count\": {\"sum\": 154.0, \"count\": 1, \"min\": 154, \"max\": 154}, \"Number of Records Since Last Reset\": {\"sum\": 3873.0, \"count\": 1, \"min\": 3873, \"max\": 3873}, \"Number of Batches Since Last Reset\": {\"sum\": 31.0, \"count\": 1, \"min\": 31, \"max\": 31}}}\n", - "\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #throughput_metric: host=algo-2, train throughput=4883.278780146722 records/second\u001b[0m\n", - "\u001b[35m[2021-06-08 23:19:35.986] [tensorio] [info] epoch_stats={\"data_pipeline\": \"/opt/ml/input/data/validation\", \"epoch\": 233, \"duration\": 71, \"num_examples\": 8, \"num_bytes\": 346580}\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Finished scoring on 896 examples from 7 batches, each of size 128.\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Metrics for Inference:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) total: 6.662471362522671\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) kld: 0.1597729985203062\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) recons: 6.5026982852390836\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss (name: value) logppx: 6.662471362522671\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] #quality_metric: host=algo-2, epoch=77, validation total_loss =6.662471362522671\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Loss of server-side model: 6.662471362522671\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:35 INFO 140403258652480] Best model based on early stopping at epoch 71. Best loss: 6.652386733463833\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] Topics from epoch:final (num_topics:20) [, tu 0.74]:\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 773 679 419 3 1931 418 157 58 1129 779 11 1150 118 884 846 111 1103 376 979 542\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 592 571 1541 1960 93 320 1370 422 1584 1583 1247 902 295 1103 51 934 1191 570 303 1200\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 841 594 1572 791 1134 389 1641 1573 152 538 452 687 928 1651 898 1296 231 1096 1085 1654\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1681 749 1696 448 1183 148 1244 1488 1246 859 1125 908 361 907 1959 1618 1119 1926 1152 185\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1780 730 668 77 1365 732 684 237 1635 936 1227 1213 843 222 147 1031 47 6 763 1914\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1366 697 1328 1902 1988 1607 504 706 1872 1955 1987 1973 673 742 1990 890 1299 1220 1269 512\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 518 1175 120 1460 1098 1264 1807 1234 673 413 884 868 1593 318 682 1041 605 36 973 510\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 899 912 1571 300 1900 1483 120 751 1644 176 301 825 646 299 177 169 900 519 914 824\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1114 1227 1128 1554 1031 1662 1634 546 1899 122 1679 964 1057 1063 1348 1532 1603 1157 180 230\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1148 608 318 868 1297 1296 1800 250 1915 510 1264 495 121 1870 1200 271 1564 1201 1348 331\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1524 1148 659 949 797 413 1915 179 1031 1018 1128 973 668 688 1780 1690 824 936 770 77\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 524 1148 1524 179 1523 1780 1111 668 1522 698 1855 397 1138 77 1833 733 1655 824 789 807\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 524 1148 1522 1138 189 1524 1780 397 179 1309 1125 1365 522 1993 1245 200 1855 789 732 668\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 446 140 142 0 1300 746 1499 659 162 157 118 141 1601 433 96 1070 139 949 1780 1963\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1179 426 817 1313 972 1127 1779 1437 1315 1568 1576 1966 729 1826 1295 486 1197 689 293 1825\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 62 484 1429 1917 1959 205 1450 158 1815 1837 179 1309 304 1936 733 767 255 1294 1183 1138\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 524 1234 1652 1175 143 1148 179 1765 1245 495 667 518 682 763 1635 1339 413 1717 1522 1253\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1234 1621 719 455 413 1268 1175 3 1081 973 884 1776 1336 1968 218 673 37 1130 1686 1555\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 733 824 179 732 1570 524 522 1143 31 228 1780 604 1522 807 1138 1128 659 1672 834 757\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] 1264 1234 36 1081 37 162 876 518 218 824 1689 795 1175 1459 1460 402 413 250 1776 32\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] Serializing model to /opt/ml/model/model_algo-2\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] Saved checkpoint to \"/tmp/tmpg_6fo0vm/state-0001.params\"\u001b[0m\n", - "\u001b[35m[06/08/2021 23:19:36 INFO 140403258652480] Test data is not provided.\u001b[0m\n", - "\u001b[35m#metrics {\"StartTime\": 1623194295.5121074, \"EndTime\": 1623194376.086828, \"Dimensions\": {\"Algorithm\": \"AWS/NTM\", \"Host\": \"algo-2\", \"Operation\": \"training\"}, \"Metrics\": {\"initialize.time\": {\"sum\": 697.8249549865723, \"count\": 1, \"min\": 697.8249549865723, \"max\": 697.8249549865723}, \"epochs\": {\"sum\": 100.0, \"count\": 1, \"min\": 100, \"max\": 100}, \"model.score.time\": {\"sum\": 6394.08540725708, \"count\": 78, \"min\": 56.20837211608887, \"max\": 180.50503730773926}, \"early_stop.time\": {\"sum\": 6582.762241363525, \"count\": 77, \"min\": 56.58698081970215, \"max\": 184.61942672729492}, \"update.time\": {\"sum\": 79649.55043792725, \"count\": 77, \"min\": 772.4390029907227, \"max\": 1444.2715644836426}, \"finalize.time\": {\"sum\": 168.27869415283203, \"count\": 1, \"min\": 168.27869415283203, \"max\": 168.27869415283203}, \"model.serialize.time\": {\"sum\": 4.034280776977539, \"count\": 1, \"min\": 4.034280776977539, \"max\": 4.034280776977539}, \"setuptime\": {\"sum\": 1071.57301902771, \"count\": 1, \"min\": 1071.57301902771, \"max\": 1071.57301902771}, \"totaltime\": {\"sum\": 81681.95343017578, \"count\": 1, \"min\": 81681.95343017578, \"max\": 81681.95343017578}}}\n", - "\u001b[0m\n", - "\n", - "2021-06-08 23:19:46 Uploading - Uploading generated training model\n", - "2021-06-08 23:19:46 Completed - Training job completed\n", - "Training seconds: 304\n", - "Billable seconds: 304\n" - ] - } - ], + "outputs": [], "source": [ "ntm.fit({\"train\": s3_train, \"validation\": s3_val_data})" ] }, { "cell_type": "markdown", - "id": "freelance-shannon", + "id": "ca5cc1d9", "metadata": { "papermill": { "duration": 0.081212, @@ -5284,8 +1230,8 @@ }, { "cell_type": "code", - "execution_count": 46, - "id": "superb-resolution", + "execution_count": null, + "id": "2251d7a9", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:23:49.296263Z", @@ -5302,22 +1248,14 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Training job name: ntm-2021-06-08-23-15-03-276\n" - ] - } - ], + "outputs": [], "source": [ "print(\"Training job name: {}\".format(ntm.latest_training_job.job_name))" ] }, { "cell_type": "markdown", - "id": "static-ghost", + "id": "2a8db4fc", "metadata": { "papermill": { "duration": 0.081343, @@ -5338,8 +1276,8 @@ }, { "cell_type": "code", - "execution_count": 31, - "id": "sunset-swaziland", + "execution_count": null, + "id": "00a96680", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:23:49.630626Z", @@ -5356,30 +1294,22 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-------!" - ] - } - ], + "outputs": [], "source": [ "from sagemaker.serializers import CSVSerializer\n", "from sagemaker.deserializers import JSONDeserializer\n", "\n", "ntm_predictor = ntm.deploy(\n", - " initial_instance_count=1, \n", - " instance_type='ml.m4.xlarge',\n", + " initial_instance_count=1,\n", + " instance_type=\"ml.m4.xlarge\",\n", " serializer=CSVSerializer(),\n", - " deserializer=JSONDeserializer()\n", + " deserializer=JSONDeserializer(),\n", ")" ] }, { "cell_type": "markdown", - "id": "passive-terrain", + "id": "540cc2e8", "metadata": { "papermill": { "duration": 0.086504, @@ -5396,8 +1326,8 @@ }, { "cell_type": "code", - "execution_count": 32, - "id": "computational-stage", + "execution_count": null, + "id": "792f590c", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:22.275437Z", @@ -5414,22 +1344,14 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Endpoint name: ntm-2021-06-08-23-20-17-554\n" - ] - } - ], + "outputs": [], "source": [ "print(\"Endpoint name: {}\".format(ntm_predictor.endpoint_name))" ] }, { "cell_type": "markdown", - "id": "designing-stereo", + "id": "5e6ce600", "metadata": { "papermill": { "duration": 0.085727, @@ -5446,8 +1368,8 @@ }, { "cell_type": "code", - "execution_count": 33, - "id": "alien-martin", + "execution_count": null, + "id": "28794e0f", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:22.626693Z", @@ -5464,15 +1386,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'predictions': [{'topic_weights': [0.1291756481, 0.0507885031, 0.0417106971, 0.0400005728, 0.0478653982, 0.0206772666, 0.0430370495, 0.0218653288, 0.0410777815, 0.022001991, 0.0393451117, 0.0522925183, 0.051600188, 0.066249229, 0.0703478307, 0.0968779847, 0.0428318121, 0.0364326015, 0.0460041463, 0.0398182683]}, {'topic_weights': [0.0180158913, 0.0247942526, 0.0276389122, 0.0678321198, 0.0382873453, 0.0367063396, 0.0410614833, 0.2918568254, 0.033076521, 0.0316482373, 0.0379365794, 0.0369765386, 0.0379251391, 0.0251364261, 0.0677403361, 0.0291158687, 0.0380523577, 0.0396333672, 0.0351459794, 0.0414195508]}, {'topic_weights': [0.0278755464, 0.0196884535, 0.0671157613, 0.0308432747, 0.0388110615, 0.0237644296, 0.0446243994, 0.0353006199, 0.0337769724, 0.2674693763, 0.0463326573, 0.0491070077, 0.0476619303, 0.0291159041, 0.0177176483, 0.0222446267, 0.055981189, 0.0463135466, 0.0446933433, 0.051562313]}, {'topic_weights': [0.187104553, 0.1906852573, 0.0279728584, 0.0273396056, 0.0360631421, 0.0487223566, 0.0339291841, 0.0196604691, 0.0355255529, 0.0164047647, 0.0321371406, 0.037225455, 0.0391473696, 0.0257860348, 0.0156444404, 0.0884368941, 0.03244159, 0.0337445736, 0.0363439955, 0.0356848612]}, {'topic_weights': [0.0392541029, 0.0159985349, 0.0748593733, 0.0280441064, 0.0462445579, 0.0165806375, 0.0557285696, 0.0207282994, 0.0196479764, 0.1528619379, 0.0533503629, 0.0816884562, 0.0800268874, 0.0211151857, 0.0102875112, 0.0374294519, 0.0905672461, 0.0448295996, 0.0546249263, 0.0561322533]}]}\n" - ] - } - ], + "outputs": [], "source": [ "test_data = np.array(test_vectors.todense())\n", "results = ntm_predictor.predict(test_data[:5])\n", @@ -5481,7 +1395,7 @@ }, { "cell_type": "markdown", - "id": "professional-criterion", + "id": "534e5f3f", "metadata": { "papermill": { "duration": 0.086139, @@ -5511,8 +1425,8 @@ }, { "cell_type": "code", - "execution_count": 34, - "id": "pursuant-friend", + "execution_count": null, + "id": "9d640006", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:23.201537Z", @@ -5529,34 +1443,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[0.12917565 0.0507885 0.0417107 0.04000057 0.0478654 0.02067727\n", - " 0.04303705 0.02186533 0.04107778 0.02200199 0.03934511 0.05229252\n", - " 0.05160019 0.06624923 0.07034783 0.09687798 0.04283181 0.0364326\n", - " 0.04600415 0.03981827]\n", - " [0.01801589 0.02479425 0.02763891 0.06783212 0.03828735 0.03670634\n", - " 0.04106148 0.29185683 0.03307652 0.03164824 0.03793658 0.03697654\n", - " 0.03792514 0.02513643 0.06774034 0.02911587 0.03805236 0.03963337\n", - " 0.03514598 0.04141955]\n", - " [0.02787555 0.01968845 0.06711576 0.03084327 0.03881106 0.02376443\n", - " 0.0446244 0.03530062 0.03377697 0.26746938 0.04633266 0.04910701\n", - " 0.04766193 0.0291159 0.01771765 0.02224463 0.05598119 0.04631355\n", - " 0.04469334 0.05156231]\n", - " [0.18710455 0.19068526 0.02797286 0.02733961 0.03606314 0.04872236\n", - " 0.03392918 0.01966047 0.03552555 0.01640476 0.03213714 0.03722545\n", - " 0.03914737 0.02578603 0.01564444 0.08843689 0.03244159 0.03374457\n", - " 0.036344 0.03568486]\n", - " [0.0392541 0.01599853 0.07485937 0.02804411 0.04624456 0.01658064\n", - " 0.05572857 0.0207283 0.01964798 0.15286194 0.05335036 0.08168846\n", - " 0.08002689 0.02111519 0.01028751 0.03742945 0.09056725 0.0448296\n", - " 0.05462493 0.05613225]]\n" - ] - } - ], + "outputs": [], "source": [ "predictions = np.array([prediction[\"topic_weights\"] for prediction in results[\"predictions\"]])\n", "print(predictions)" @@ -5564,7 +1451,7 @@ }, { "cell_type": "markdown", - "id": "extensive-record", + "id": "ad89bb0d", "metadata": { "papermill": { "duration": 0.086825, @@ -5585,8 +1472,8 @@ }, { "cell_type": "code", - "execution_count": 35, - "id": "executed-intersection", + "execution_count": null, + "id": "3d9b0a22", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:23.556121Z", @@ -5617,7 +1504,7 @@ }, { "cell_type": "markdown", - "id": "southeast-pillow", + "id": "92e608ec", "metadata": { "papermill": { "duration": 0.086612, @@ -5634,7 +1521,7 @@ }, { "cell_type": "markdown", - "id": "sized-victory", + "id": "43c83800", "metadata": { "papermill": { "duration": 0.086791, @@ -5652,8 +1539,8 @@ }, { "cell_type": "code", - "execution_count": 36, - "id": "fabulous-struggle", + "execution_count": null, + "id": "73ec118f", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:24.085365Z", @@ -5670,30 +1557,7 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 0, 'Topic ID')" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", @@ -5709,7 +1573,7 @@ }, { "cell_type": "markdown", - "id": "potential-miniature", + "id": "9aee381c", "metadata": { "papermill": { "duration": 0.087339, @@ -5730,8 +1594,8 @@ }, { "cell_type": "code", - "execution_count": 37, - "id": "hungry-steam", + "execution_count": null, + "id": "a56ac4b4", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:25.100455Z", @@ -5755,7 +1619,7 @@ }, { "cell_type": "markdown", - "id": "patient-metadata", + "id": "7843440a", "metadata": { "papermill": { "duration": 0.088459, @@ -5772,7 +1636,7 @@ }, { "cell_type": "markdown", - "id": "adequate-handbook", + "id": "043668a4", "metadata": { "papermill": { "duration": 0.088629, @@ -5792,8 +1656,8 @@ }, { "cell_type": "code", - "execution_count": 38, - "id": "literary-attitude", + "execution_count": null, + "id": "c1099b93", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:25.704815Z", @@ -5819,7 +1683,7 @@ }, { "cell_type": "markdown", - "id": "radical-premiere", + "id": "849f6492", "metadata": { "papermill": { "duration": 0.089891, @@ -5836,8 +1700,8 @@ }, { "cell_type": "code", - "execution_count": 39, - "id": "looking-teaching", + "execution_count": null, + "id": "64f2c973", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:26.978568Z", @@ -5854,18 +1718,7 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "'20newsgroups/output/ntm-2021-06-08-23-15-03-276/output/model.tar.gz'" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "model_path = os.path.join(output_prefix, ntm._current_job_name, \"output/model.tar.gz\")\n", "model_path" @@ -5873,8 +1726,8 @@ }, { "cell_type": "code", - "execution_count": 40, - "id": "imposed-booth", + "execution_count": null, + "id": "536fb075", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:27.175129Z", @@ -5898,48 +1751,42 @@ }, { "cell_type": "code", - "execution_count": 50, - "id": "informative-walter", + "execution_count": null, + "id": "b91176b2", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/ubuntu/SageMaker/batch_fix/batchfix15/introduction_to_applying_machine_learning/ntm_20newsgroups_topic_modeling\n" - ] - } - ], + "outputs": [], "source": [ "!pwd" ] }, { "cell_type": "code", - "execution_count": 55, - "id": "immediate-colon", + "execution_count": null, + "id": "a93f3f21", "metadata": {}, "outputs": [], "source": [ "import tarfile\n", - "tarfile.open('downloaded_model.tar.gz').extractall()" + "\n", + "tarfile.open(\"downloaded_model.tar.gz\").extractall()" ] }, { "cell_type": "code", - "execution_count": 56, - "id": "meaningful-cannon", + "execution_count": null, + "id": "5a946a9b", "metadata": {}, "outputs": [], "source": [ "import zipfile\n", - "with zipfile.ZipFile('model_algo-1', 'r') as zip_ref:\n", - " zip_ref.extractall('./')" + "\n", + "with zipfile.ZipFile(\"model_algo-1\", \"r\") as zip_ref:\n", + " zip_ref.extractall(\"./\")" ] }, { "cell_type": "markdown", - "id": "soviet-alpha", + "id": "d5039948", "metadata": { "papermill": { "duration": 0.089504, @@ -5956,8 +1803,8 @@ }, { "cell_type": "code", - "execution_count": 58, - "id": "widespread-finnish", + "execution_count": null, + "id": "796ed7b8", "metadata": { "execution": { "iopub.execute_input": "2021-06-08T21:31:28.387482Z", @@ -5982,7 +1829,7 @@ }, { "cell_type": "markdown", - "id": "posted-quantum", + "id": "85d44999", "metadata": { "papermill": { "duration": null, @@ -5999,8 +1846,8 @@ }, { "cell_type": "code", - "execution_count": 44, - "id": "black-sydney", + "execution_count": null, + "id": "4004ffeb", "metadata": { "papermill": { "duration": null, @@ -6011,33 +1858,19 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: wordcloud in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (1.8.1)\n", - "Requirement already satisfied: pillow in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from wordcloud) (7.0.0)\n", - "Requirement already satisfied: matplotlib in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from wordcloud) (3.1.3)\n", - "Requirement already satisfied: numpy>=1.6.1 in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from wordcloud) (1.18.1)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from matplotlib->wordcloud) (2.4.6)\n", - "Requirement already satisfied: cycler>=0.10 in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from matplotlib->wordcloud) (0.10.0)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from matplotlib->wordcloud) (1.1.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from matplotlib->wordcloud) (2.8.1)\n", - "Requirement already satisfied: six in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from cycler>=0.10->matplotlib->wordcloud) (1.14.0)\n", - "Requirement already satisfied: setuptools in /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib->wordcloud) (45.2.0.post20200210)\n" - ] - } - ], + "outputs": [], "source": [ - "!pip install wordcloud\n", + "import sys\n", + "\n", + "!{sys.executable} -m pip install wordcloud\n", + "\n", "import wordcloud as wc" ] }, { "cell_type": "code", - "execution_count": 59, - "id": "scenic-aside", + "execution_count": null, + "id": "f4684f18", "metadata": { "papermill": { "duration": null, @@ -6048,22 +1881,10 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", + "\n", "word_to_id = dict()\n", "for i, v in enumerate(vocab_list):\n", " word_to_id[v] = i\n", @@ -6098,14 +1919,23 @@ "\n", " counter += 1" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b38e42ec", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "celltoolbar": "Tags", + "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "Environment (conda_mxnet_p36)", + "display_name": "Python 3 (MXNet 1.6 Python 3.6 CPU Optimized)", "language": "python", - "name": "conda_mxnet_p36" + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/mxnet-1.6-cpu-py36" }, "language_info": { "codemirror_mode": { @@ -6117,7 +1947,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" }, "notice": "Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.", "papermill": { diff --git a/ml-lifecycle/feature_store/FS_demo.ipynb b/ml-lifecycle/feature_store/FS_demo.ipynb index 86528475c8..a0fa895bd3 100644 --- a/ml-lifecycle/feature_store/FS_demo.ipynb +++ b/ml-lifecycle/feature_store/FS_demo.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Detect Heart Failure from Clinical Record with SageMaker FeatureStore\n", + "# Detect Heart Failure from Clinical Record with SageMaker Feature Store\n", "This notebook runs with Kernel `Python 3 (Data Science)`.\n", "\n", "Note:\n", @@ -24,14 +24,14 @@ "source": [ "## Contents\n", "* [Background](#1)\n", - "* [Setup SageMaker FeatureStore](#2)\n", + "* [Setup SageMaker Feature Store](#2)\n", "* [Inspect Dataset](#3)\n", - "* [Prepare Data for FeatureStore](#4)\n", + "* [Prepare Data for Feature Store](#4)\n", "* [Create Features](#5)\n", "* [Work with FeatureGroup](#10)\n", "* [Build Training Dataset](#6)\n", "* [Train and Deploy the Model](#7)\n", - "* [SageMaker FeatureStore At Inference](#8)\n", + "* [SageMaker Feature Store At Inference](#8)\n", "* [Cleanup Resources](#9)" ] }, @@ -42,11 +42,11 @@ "\n", "## Background\n", "\n", - "SageMaker FeatureStore is a new SageMaker capability that makes it easy for customers to create and manage curated features for machine learning (ML) development. It erves as the single source of truth to store, retrieve, remove, track, share, discover, and control access to features.\n", - "SageMaker FeatureStore enables data ingestion via a high TPS API and data consumption via the online and offline stores.\n", + "SageMaker Feature Store is a SageMaker capability that makes it easy for customers to create and manage curated features for machine learning (ML) development. It erves as the single source of truth to store, retrieve, remove, track, share, discover, and control access to features.\n", + "SageMaker Feature Store enables data ingestion via a high TPS API and data consumption via the online and offline stores.\n", "\n", "\n", - "This notebook provides an example for the APIs provided by SageMaker FeatureStore by walking through the process of training a heart failure detection model with clinical records data. The notebook demonstrates how the dataset can be ingested into the FeatureStore, queried to create a training dataset, and quickly accessed during inference.\n", + "This notebook provides an example for the APIs provided by SageMaker Feature Store by walking through the process of training a heart failure detection model with clinical records data. The notebook demonstrates how the dataset can be ingested into the Feature Store, queried to create a training dataset, and quickly accessed during inference.\n", "\n", "### Terminology\n", "* `Feature group` – A FeatureGroup is the main Feature Store resource that contains the metadata for all the data stored in Amazon SageMaker Feature Store. A feature group is a logical grouping of features, defined in the feature store, to describe records. A feature group’s definition is composed of a list of feature definitions, a record identifier name, and configurations for its online and offline store. \n", @@ -62,21 +62,12 @@ "* `Offline store` – the OfflineStore, stores historical data in your S3 bucket. It is used when low (sub-second) latency reads are not needed. For example, when you want to store and serve features for exploration, model training, and batch inference. A feature group contains an OfflineStoreConfig controlling where the data is stored." ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Architecture Di" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", - "## Setup SageMaker FeatureStore\n", + "## Setup SageMaker Feature Store\n", "Let's start by setting up the SageMaker Python SDK and boto client. " ] }, @@ -112,7 +103,7 @@ "metadata": {}, "source": [ "#### Set Up S3 Bucket For The OfflineStore\n", - "SageMaker FeatureStore writes the data in the `OfflineStore` of a `FeatureGroup` to a S3 bucket owned by you. To be able to write to your S3 bucket, SageMaker FeatureStore assumes an IAM role which has access to it. The role is also owned by you. Note that the same bucket can be re-used across FeatureGroups. Data in the bucket is partitioned by FeatureGroup." + "SageMaker Feature Store writes the data in the `OfflineStore` of a `FeatureGroup` to a S3 bucket owned by you. To be able to write to your S3 bucket, SageMaker Feature Store assumes an IAM role which has access to it. The role is also owned by you. Note that the same bucket can be re-used across FeatureGroups. Data in the bucket is partitioned by FeatureGroup." ] }, { @@ -233,7 +224,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The dataset contains no missing value, and all columns are either numerical or binary, therefore no processing or feature engineering is needed in this case. Depending on your data and use case, you should examine your data and decide if any pre-processing and feature engineering steps are needed before you ingest your data into FeatureStore." + "The dataset contains no missing value, and all columns are either numerical or binary, therefore no processing or feature engineering is needed in this case. Depending on your data and use case, you should examine your data and decide if any pre-processing and feature engineering steps are needed before you ingest your data into Feature Store." ] }, { @@ -242,14 +233,14 @@ "source": [ "\n", "\n", - "## Prepare data For FeatureStore\n", + "## Prepare data For Feature Store\n", "In the Amazon SageMaker Feature Store API, a feature is an attribute of a record. You can define a name and type for every feature stored in Feature Store. Name uniquely identifies a feature within a feature group. Type identifies the datatype for the values of the feature. Supported datatypes are: String, Integral and Fractional. \n", "\n", - "Take a look at the data types and making sure they are all correct and readable by Feature store. SageMaker FeatureStore Python SDK will map the string dtype to String feature type.\n", + "Take a look at the data types and making sure they are all correct and readable by Feature store. SageMaker Feature Store Python SDK will map the string dtype to String feature type.\n", "\n", "In SageMaker Feature Store, a `record` is a collection of values for features for a single record identifier value. Specific features are flagged with record identifier and event time, and a combination of record identifier name and a timestamp uniquely identify a record within a feature group. we will need to specify a record identifier and an event time in this case, and since the raw data does not contain the two columns, we will need to create them.\n", "\n", - "* For record identifier name: a record is a collection of values for features for a single record identifier value. In this case, we will create an unique ID for each patient in the previous step as the record indentifier. Making sure the identifier is the unique identifier for each instance.\n", + "* For record identifier name: a record is a collection of values for features for a single record identifier value. In this case, we will create a unique ID for each patient in the previous step as the record indentifier. Making sure the identifier is the unique identifier for each instance.\n", "* For event time feature name: it refers to a point in time when a new event occurs that corresponds to the creation or update of a record in a feature group. It can be used to track changes to a record over time. For example, in this use case, EventTime can be appended to your data when no timestamp is available. In the following code, you can see how EventTime is appended to the clinical data." ] }, @@ -257,7 +248,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Create an unique ID for each patient" + "#### Create a unique ID for each patient" ] }, { @@ -328,7 +319,7 @@ " if data_frame.dtypes[label] == 'object':\n", " data_frame[label] = data_frame[label].astype(\"str\").astype(\"string\")\n", "\n", - "# cast object dtype to string. The SageMaker FeatureStore Python SDK will then map the string dtype to String feature type.\n", + "# cast object dtype to string. The SageMaker Feature Store Python SDK will then map the string dtype to String feature type.\n", "cast_object_to_string(clinical)" ] }, @@ -405,7 +396,7 @@ "metadata": {}, "source": [ "#### Load feature definitions to the feature group\n", - "We can now load the feature definitions by passing a data frame containing the feature data. SageMaker FeatureStore Python SDK will auto-detect the data schema based on input data. For developers using a schema rather than automatic detection, see the [Export Feature Groups from Data Wrangler example](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-data-export.html#data-wrangler-data-export-feature-store) for code that shows how to load the schema, map it, and add it as a FeatureDefinition that you can use to create the FeatureGroup. " + "We can now load the feature definitions by passing a data frame containing the feature data. SageMaker Feature Store Python SDK will auto-detect the data schema based on input data. For developers using a schema rather than automatic detection, see the [Export Feature Groups from Data Wrangler example](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-data-export.html#data-wrangler-data-export-feature-store) for code that shows how to load the schema, map it, and add it as a FeatureDefinition that you can use to create the FeatureGroup. " ] }, { @@ -521,7 +512,7 @@ "metadata": {}, "source": [ "#### Generate Hive DDL Commands\n", - "The SageMaker Python SDK’s FeatureStore class also provides the functionality to generate Hive DDL commands. The schema of the table is generated based on the feature definitions. Columns are named after feature name and data-type are inferred based on feature type." + "The SageMaker Python SDK’s Feature Store class also provides the functionality to generate Hive DDL commands. The schema of the table is generated based on the feature definitions. Columns are named after feature name and data-type are inferred based on feature type." ] }, { @@ -537,7 +528,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now let's wait for the data to appear in our offline store before moving forward to creating a dataset. This will take approximately 5 minutes. SageMaker FeatureStore adds metadata for each record that's ingested into the offline store." + "Now let's wait for the data to appear in our offline store before moving forward to creating a dataset. This will take approximately 5 minutes. SageMaker Feature Store adds metadata for each record that's ingested into the offline store." ] }, { @@ -575,7 +566,7 @@ "metadata": {}, "source": [ "## Build a Training Dataset\n", - " SageMaker FeatureStore automatically builds an AWS Glue data catalog when you create feature groups and you can turn this off if you want. In this example, we will create a training dataset with FeatureValues from the clinical FeatureGroup. This is done by utilizing the auto-built Catalog. We run an Athena query that does a simple `select all` in the offline store in S3 from the FeatureGroup.\n", + " SageMaker Feature Store automatically builds an AWS Glue data catalog when you create feature groups and you can turn this off if you want. In this example, we will create a training dataset with FeatureValues from the clinical FeatureGroup. This is done by utilizing the auto-built Catalog. We run an Athena query that does a simple `select all` in the offline store in S3 from the FeatureGroup.\n", " \n", "For testing purpose, we left out 9 records when creating the training dataset, so that we can use the left-out 9 records as test data for the reference. You can also do a train/test split. " ] @@ -703,7 +694,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Due to cost consideration, the goal of this example is to showcase FeatureStore capabilities, not necessarily to achieve the best result. In this example, we will skip hyperparamter tuning and go with default hyperparameters." + "Due to cost consideration, the goal of this example is to showcase Feature Store capabilities, not necessarily to achieve the best result. In this example, we will skip hyperparamter tuning and go with default hyperparameters." ] }, { @@ -765,8 +756,8 @@ "metadata": {}, "source": [ "\n", - "## SageMaker FeatureStore During Inference\n", - "SageMaker FeatureStore can be useful in supplementing data for inference requests because of the low-latency GetRecord functionality. For this demo, we will be given a patientID and query our online FeatureGroup to build our inference request.\n", + "## SageMaker Feature Store During Inference\n", + "SageMaker Feature Store can be useful in supplementing data for inference requests because of the low-latency GetRecord functionality. For this demo, we will be given a patientID and query our online FeatureGroup to build our inference request.\n", "\n", "From the patient ID we left out in training set, we can choose one patient ID to test the real-time reference. In this example we choose patient `194`, but you can choose either one from the left out id list for testing." ] @@ -879,7 +870,7 @@ "* [SageMaker Feature Store Documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store.html)\n", "* [Store, Discover, and Share Machine Learning Features with Amazon SageMaker Feature Store](https://aws.amazon.com/blogs/aws/new-store-discover-and-share-machine-learning-features-with-amazon-sagemaker-feature-store/?sc_icampaign=launch_sagemaker-feature-store_reinvent20&sc_ichannel=ha&sc_icontent=awssm-6216&sc_iplace=ribbon&trk=ha_awssm-6216) \n", "* [Using streaming ingestion with Amazon SageMaker Feature Store to make ML-backed decisions in near-real time](https://aws.amazon.com/blogs/machine-learning/using-streaming-ingestion-with-amazon-sagemaker-feature-store-to-make-ml-backed-decisions-in-near-real-time/)\n", - "* [Fraud Detection using SageMaker FeatureStore](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.ipynb)\n" + "* [Fraud Detection using SageMaker Feature Store](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.ipynb)\n" ] } ], @@ -888,7 +879,7 @@ "kernelspec": { "display_name": "Python 3 (Data Science)", "language": "python", - "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/datascience-1.0" + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-2:429704687514:image/datascience-1.0" }, "language_info": { "codemirror_mode": { diff --git a/ml-lifecycle/feature_store/README.md b/ml-lifecycle/feature_store/README.md index 505ea1aaaf..37cf0cd9d8 100644 --- a/ml-lifecycle/feature_store/README.md +++ b/ml-lifecycle/feature_store/README.md @@ -13,14 +13,14 @@ # Background -SageMaker FeatureStore makes it easy to create and manage curated features for machine learning (ML) development. It serves as the single source of truth to store, retrieve, remove, track, share, discover, and control access to features. SageMaker Feature Store enables data ingestion via a high TPS API and data consumption via the online and offline stores. +SageMaker Feature Store makes it easy to create and manage curated features for machine learning (ML) development. It serves as the single source of truth to store, retrieve, remove, track, share, discover, and control access to features. SageMaker Feature Store enables data ingestion via a high TPS API and data consumption via the online and offline stores. In this notebook we use SageMaker Feature Store to prepare and store features to train a heart failure detection model using medical record data. This notebook demonstrates how the dataset can be ingested into the Feature Store, queried to create a training dataset, and quickly accessed during inference. We also see how to integrate SageMaker Feature Store with SageMaker Data Wrangler and SageMaker Pipelines to process, store and use features in machine learning development. # Prereqs -The following policies need to be attached to the SageMaker execution role that you use to run this notebook: +The following IAM policies need to be attached to the SageMaker execution role that you use to run this notebook: - AmazonSageMakerFullAccess - AmazonSageMakerFeatureStoreAccess @@ -31,7 +31,7 @@ Note that the AmazonS3FullAccess policy is not attached to your role by default # Data -This notebook uses the publically available [Heart failure clinical records Data Set](https://archive.ics.uci.edu/ml/datasets/Heart+failure+clinical+records) that can be downloaded from the UCI machine learning Repository, as described in the notebook. The data set contains medical record information for a small sample of heart failure patients, including demographic, diagnostic and laboratory test data. +This notebook uses the publicly available [Heart failure clinical records Data Set](https://archive.ics.uci.edu/ml/datasets/Heart+failure+clinical+records) that can be downloaded from the UCI machine learning Repository, as described in the notebook. The data set contains medical record information for a small sample of heart failure patients, including demographic, diagnostic and laboratory test data. **heart_failure_clinical_records_dataset.csv** @@ -56,11 +56,11 @@ The dataset contains one table with thirteen (13) columns: ![architecture diagram](/fs1.PNG) -First, we'll prepare the data for feature store, create a Feature Group and then ingest our data in to the Feature Group. Our features will be available in the offline feature store within minutes. We then use the feature store to build a training dataset, fit a simple model and return predictions. +First, we'll prepare the data for Feature Store, create a Feature Group and then ingest our data in to the Feature Group. Our features will be available in the offline feature store within minutes. We then use the feature store to build a training dataset, fit a simple model and return predictions. # Clean Up -In order to prevent ongoing charges to your AWS account, clean up any resources we spun up during this tutorial. An easy way to track and delete related training resources is to [tag them](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) or create the resources all under the same [resource group](https://us-east-2.console.aws.amazon.com/resource-groups/home) so that later you can easily search and delete unwanted resources. +In order to prevent ongoing charges to your AWS account, clean up any resources we spun up during this tutorial. # Other Resources diff --git a/patterns/ml_gateway/README.md b/patterns/ml_gateway/README.md new file mode 100644 index 0000000000..3d5c5924ec --- /dev/null +++ b/patterns/ml_gateway/README.md @@ -0,0 +1,17 @@ +# Enterprise-Grade ML: Part 1 Prepare and Use the ML Gateway Pattern for Inference + +## Data Prep and Inference using SageMaker Feature Store + +Very often Data Science projects start in an experimental phase in which transformations on features are experimented with, algorithms are selected and tried for determining if they can fit the data distribution well enough for reliable predictions, tuning is done with various hyper-parameters and so on. + +As an organization matures in their Machine Learning (ML) Journey, they will find that they will then transition to an automated ML or MLOps phase where the pipelines for data preparation, training, deployment, monitoring will all need to be automated. + +In order to raise the maturity of projects to an Enterprise Scale that can fulfill business needs, sustain business-level continuity, scale, security and performance, the need for integrating data science experiments with machine learning deployment patterns and best-practices will grow in importance and will save you time and money. + +In this blog series on ML Patterns, we will start by focusing on Deployment Patterns and Best-Practices within the ML lifecycle : exploring the considerations and options that present themselves, post-training; on the serving/inference/prediction phases of the ML lifecycle. + +There are many ways in which we can expose an endpoint that was deployed as a hosted SageMaker endpoint: these variations are summarized in the ML Gateway Pattern with mandatory and optional components. Through this series of blogs we will outline options and their context, pros and cons for helping you decide what components to use for your specific workload and use-case. + + +![arch](./images/ml-gateway-pattern.png) + diff --git a/patterns/ml_gateway/code/train_deploy.py b/patterns/ml_gateway/code/train_deploy.py new file mode 100644 index 0000000000..eff34e3e4f --- /dev/null +++ b/patterns/ml_gateway/code/train_deploy.py @@ -0,0 +1,82 @@ +import os +import sys +import pickle +import xgboost as xgb +import argparse +import pandas as pd +import json +import logging + +logger = logging.getLogger(__name__) +# logger.setLevel(logging.DEBUG) +logger.addHandler(logging.StreamHandler(sys.stdout)) + + +def model_fn(model_dir): + """Deserialize and return fitted model. + Note that this should have the same name as the serialized model in the _xgb_train method + """ + model_file = "xgboost-model" + model = pickle.load(open(os.path.join(model_dir, model_file), "rb")) + return model + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + + # Hyperparameters are described here + parser.add_argument("--num_round", type=int, default=999) + parser.add_argument("--max_depth", type=int, default=3) + parser.add_argument("--eta", type=float, default=0.2) + parser.add_argument("--objective", type=str, default="binary:logistic") + parser.add_argument("--nfold", type=int, default=5) + parser.add_argument("--early_stopping_rounds", type=int, default=10) + parser.add_argument("--train_data_path", type=str, default=os.environ.get("SM_CHANNEL_TRAIN")) + + # SageMaker specific arguments. Defaults are set in the environment variables. + parser.add_argument("--model-dir", type=str, default=os.environ.get("SM_MODEL_DIR")) + parser.add_argument("--output-data-dir", type=str, default=os.environ.get("SM_OUTPUT_DATA_DIR")) + + args = parser.parse_args() + + data = pd.read_csv(f"{args.train_data_path}/train.csv") + train = data.drop("fraud", axis=1) + label = pd.DataFrame(data["fraud"]) + dtrain = xgb.DMatrix(train, label=label) + + params = {"max_depth": args.max_depth, "eta": args.eta, "objective": args.objective} + num_boost_round = args.num_round + nfold = args.nfold + early_stopping_rounds = args.early_stopping_rounds + + cv_results = xgb.cv( + params=params, + dtrain=dtrain, + num_boost_round=num_boost_round, + nfold=nfold, + early_stopping_rounds=early_stopping_rounds, + metrics=("auc"), + seed=0, + ) + + print(f"[0]#011train-auc:{cv_results.iloc[-1]['train-auc-mean']}") + print(f"[1]#011validation-auc:{cv_results.iloc[-1]['test-auc-mean']}") + + metrics_data = { + "classification_metrics": { + "validation:auc": {"value": cv_results.iloc[-1]["test-auc-mean"]}, + "train:auc": {"value": cv_results.iloc[-1]["train-auc-mean"]}, + } + } + + model = xgb.train(params=params, dtrain=dtrain, num_boost_round=len(cv_results)) + + # Save the model to the location specified by ``model_dir`` + metrics_location = args.output_data_dir + "/metrics.json" + model_location = args.model_dir + "/xgboost-model" + + with open(metrics_location, "w") as f: + json.dump(metrics_data, f) + + with open(model_location, "wb") as f: + pickle.dump(model, f) diff --git a/patterns/ml_gateway/helpers/__init__.py b/patterns/ml_gateway/helpers/__init__.py new file mode 100644 index 0000000000..caf5fb0747 --- /dev/null +++ b/patterns/ml_gateway/helpers/__init__.py @@ -0,0 +1,2 @@ +from .ml_gateway import * +from .feature_store import * diff --git a/patterns/ml_gateway/helpers/feature_store.py b/patterns/ml_gateway/helpers/feature_store.py new file mode 100644 index 0000000000..798697a675 --- /dev/null +++ b/patterns/ml_gateway/helpers/feature_store.py @@ -0,0 +1,213 @@ +import sys +import time +from sagemaker.feature_store.feature_definition import FeatureDefinition +from sagemaker.feature_store.feature_group import FeatureGroup + + +class StatusIndicator: + def __init__(self): + self.previous_status = None + self.need_newline = False + + def update(self, status): + if self.previous_status != status: + if self.need_newline: + sys.stdout.write("\n") + sys.stdout.write(status + " ") + self.need_newline = True + self.previous_status = status + else: + sys.stdout.write(".") + self.need_newline = True + sys.stdout.flush() + + def end(self): + if self.need_newline: + sys.stdout.write("\n") + + +def get_feature_definitions(df, feature_group): + """ + Get datatypes from pandas DataFrame and map them + to Feature Store datatypes. + + :param df: pandas.DataFrame + :param feature_group: FeatureGroup + :return: list + """ + # Dtype int_, int8, int16, int32, int64, uint8, uint16, uint32 + # and uint64 are mapped to Integral feature type. + + # Dtype float_, float16, float32 and float64 + # are mapped to Fractional feature type. + + # string dtype is mapped to String feature type. + + # Our schema of our data that we expect + # _after_ SageMaker Processing + feature_definitions = [] + for column in df.columns: + feature_type = feature_group._DTYPE_TO_FEATURE_DEFINITION_CLS_MAP.get( + str(df[column].dtype), None + ) + feature_definitions.append( + FeatureDefinition(column, feature_type) + ) # you can alternatively define your own schema + return feature_definitions + + +def wait_for_feature_group_creation_complete(feature_group): + """ + Wait for a FeatureGroup to finish creating. + + :param feature_group: FeatureGroup + :return: None + """ + status_indicator = StatusIndicator() + status = feature_group.describe().get("FeatureGroupStatus") + while status == "Creating": + status_indicator.update(status) + time.sleep(5) + status = feature_group.describe().get("FeatureGroupStatus") + status_indicator.end() + if status != "Created": + raise RuntimeError(f"Failed to create feature group {feature_group.name}") + print(f"FeatureGroup {feature_group.name} successfully created.") + + +def ingest_df_to_feature_group(df, feature_group_name, feature_store_client): + """ + Take a pandas DataFrame and put it in a FeatureGroup. + + :param df: pandas.DataFrame + :param feature_group_name: str + :param feature_store_client: boto3.client('sagemaker-featurestore-runtime') + :return: None + """ + success, fail = 0, 0 + for row_num, row_series in df.astype(str).iterrows(): + record = [] + for key, value in row_series.to_dict().items(): + record.append({"FeatureName": key, "ValueAsString": str(value)}) + response = feature_store_client.put_record( + FeatureGroupName=feature_group_name, Record=record + ) + if response["ResponseMetadata"]["HTTPStatusCode"] == 200: + success += 1 + else: + fail += 1 + print(f"Success = {success}") + print(f"Fail = {fail}") + + +def get_datatypes(): + """ + Get pandas DataFrame datatypes. + + :return: tuple(dict, dict) + """ + claims_dtypes = { + "policy_id": int, + "incident_severity": int, + "num_vehicles_involved": int, + "num_injuries": int, + "num_witnesses": int, + "police_report_available": int, + "injury_claim": float, + "vehicle_claim": float, + "total_claim_amount": float, + "incident_month": int, + "incident_day": int, + "incident_dow": int, + "incident_hour": int, + "fraud": int, + "driver_relationship_self": int, + "driver_relationship_na": int, + "driver_relationship_spouse": int, + "driver_relationship_child": int, + "driver_relationship_other": int, + "incident_type_collision": int, + "incident_type_breakin": int, + "incident_type_theft": int, + "collision_type_front": int, + "collision_type_rear": int, + "collision_type_side": int, + "collision_type_na": int, + "authorities_contacted_police": int, + "authorities_contacted_none": int, + "authorities_contacted_fire": int, + "authorities_contacted_ambulance": int, + "event_time": float, + } + + customers_dtypes = { + "policy_id": int, + "customer_age": int, + "customer_education": int, + "months_as_customer": int, + "policy_deductable": int, + "policy_annual_premium": int, + "policy_liability": int, + "auto_year": int, + "num_claims_past_year": int, + "num_insurers_past_5_years": int, + "customer_gender_male": int, + "customer_gender_female": int, + "policy_state_ca": int, + "policy_state_wa": int, + "policy_state_az": int, + "policy_state_or": int, + "policy_state_nv": int, + "policy_state_id": int, + "event_time": float, + } + + return claims_dtypes, customers_dtypes + + +def create_feature_group( + feature_group_name, + feature_group_description, + df, + id_name, + event_time_name, + offline_feature_group_bucket, + sagemaker_session, + role, +): + """ + Create a new FeatureGroup. + + :param feature_group_name: str + :param feature_group_description: str + :param df: pandas.DataFrame + :param id_name: str + :param event_time_name: str + :param offline_feature_group_bucket: str + :param sagemaker_session: sagemaker.Session() + :param role: str + :return: tuple(FeatureGroup, bool) + """ + feature_group = FeatureGroup(name=feature_group_name, sagemaker_session=sagemaker_session) + feature_definitions = get_feature_definitions(df, feature_group) + feature_group.feature_definitions = feature_definitions + feature_group_already_exists = False + try: + print(f"Trying to create feature group {feature_group_description} \n") + feature_group.create( + description=feature_group_description, + record_identifier_name=id_name, + event_time_feature_name=event_time_name, + role_arn=role, + s3_uri=offline_feature_group_bucket, + enable_online_store=True, + ) + wait_for_feature_group_creation_complete(feature_group) + except Exception as e: + code = e.response.get("Error").get("Code") + if code == "ResourceInUse": + print(f"Using existing feature group: {feature_group_name}") + feature_group_already_exists = True + else: + raise (e) + return feature_group, feature_group_already_exists diff --git a/patterns/ml_gateway/helpers/ml_gateway.py b/patterns/ml_gateway/helpers/ml_gateway.py new file mode 100644 index 0000000000..f3908c9990 --- /dev/null +++ b/patterns/ml_gateway/helpers/ml_gateway.py @@ -0,0 +1,253 @@ +import boto3 +import logging +from time import strftime, gmtime + + +logger = logging.getLogger(__name__) +logging.basicConfig(level=logging.INFO) + + +def deploy_ml_gateway_pattern( + sagemaker_endpoint_name: str, region: str, s3_bucket_name: str +) -> str: + """ + Create an API Gateway HTTP endpoint that points to a Lambda function + which points to a SageMaker endpoint. + + :param sagemaker_endpoint_name: str + :param s3_bucket_name: str + :return: str + """ + + cloudformation = boto3.client("cloudformation", region_name=region) + timestamp: int = strftime("%d%H%M%S", gmtime()) + stack_name: str = f"ml-gateway-{timestamp}" + lambda_name: str = f"serverless-artillery-{timestamp}-dev-loadGenerator" + cloudformation.create_stack( + StackName=stack_name, + TemplateBody=ml_gateway_cf_body(region), + Parameters=[ + {"ParameterKey": "SageMakerEndPointName", "ParameterValue": sagemaker_endpoint_name}, + { + "ParameterKey": "LambdaName", + "ParameterValue": f"invoke-sagemaker-endpoint-{timestamp}", + }, + {"ParameterKey": "S3BucketName", "ParameterValue": s3_bucket_name}, + ], + Capabilities=["CAPABILITY_IAM"], + ) + waiter = cloudformation.get_waiter("stack_create_complete") + logger.info("Creating ML Gateway...") + waiter.wait(StackName=stack_name) + logger.info("ML Gateway created!") + response = cloudformation.describe_stacks(StackName=stack_name) + api_gateway_endpoint_url = response["Stacks"][0]["Outputs"][0]["OutputValue"] + return f"{api_gateway_endpoint_url}/TestStage/Model" + + +def ml_gateway_cf_body(region: str) -> str: + """ + Return a JSON CloudFormation template represented as a string + that will create an API Gateway HTTP endpoint with a Lambda + function behind it which calls SageMaker Feature Store + and a SageMaker Production Variant. + """ + + template_body = """ + { + "AWSTemplateFormatVersion":"2010-09-09", + "Description":"Call SageMaker Endpoint with API Gateway and Lambda", + "Parameters":{ + "SageMakerEndPointName": { + "Type" : "String", + "Description" : "Name of your SageMaker Endpoint" + }, + "LambdaName": { + "Type" : "String", + "Description" : "Name of your Lambda function" + }, + "S3BucketName": { + "Type" : "String", + "Description" : "Name of your S3 bucket" + } + }, + "Resources":{ + "lambdafunctionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": ["lambda.amazonaws.com"] + }, + "Action": ["sts:AssumeRole"] + } + ] + }, + "Path": "/" + } + }, + "lambdafunctionRolePolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyName": "lambda_sm_Function_Policy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents", + "sagemaker:InvokeEndpoint", + "sagemaker:GetRecord", + "sagemaker:PutRecord" + ], + "Effect": "Allow", + "Resource": ["arn:aws:logs:*:*:*", + "arn:aws:sagemaker:*:*:*" ] + } + ] + }, + "Roles": [{ "Ref": "lambdafunctionRole"}] + } + }, + "invokeSMEndpoint": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": {"Ref": "S3BucketName"}, + "S3Key": "function.zip" + }, + "Handler": "lambda_function.lambda_handler", + "FunctionName": {"Ref": "LambdaName"}, + "Layers": [ + "arn:aws:lambda:us-west-1:770693421928:layer:Klayers-python38-pandas:37" + ], + "Runtime": "python3.8", + "Timeout": 30, + "Role": {"Fn::GetAtt": ["lambdafunctionRole", "Arn"]} + } + }, + "ModelAPI": { + "Type": "AWS::ApiGateway::RestApi", + "Properties": { + "Name": "ModelAPI", + "Description": "API fronting Lambda function calling SageMaker endpoint", + "FailOnWarnings" : true + } + }, + "LambdaPermission": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:invokeFunction", + "FunctionName": {"Fn::GetAtt": ["invokeSMEndpoint", "Arn"]}, + "Principal": "apigateway.amazonaws.com", + "SourceArn": {"Fn::Join": ["", + ["arn:aws:execute-api:", {"Ref": "AWS::Region"}, ":", {"Ref": "AWS::AccountId"}, ":", {"Ref": "ModelAPI"}, "/*"] + ]} + } + }, + "ModelApiStage": { + "DependsOn" : ["ApiGatewayAccount"], + "Type": "AWS::ApiGateway::Stage", + "Properties": { + "DeploymentId": {"Ref": "ApiDeployment"}, + "MethodSettings": [{ + "DataTraceEnabled": true, + "HttpMethod": "*", + "LoggingLevel": "INFO", + "ResourcePath": "/*" + }], + "RestApiId": {"Ref": "ModelAPI"}, + "StageName": "LATEST" + } + }, + "ApiGatewayCloudWatchLogsRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [{ + "Effect": "Allow", + "Principal": { "Service": ["apigateway.amazonaws.com"] }, + "Action": ["sts:AssumeRole"] + }] + }, + "Policies": [{ + "PolicyName": "ApiGatewayLogsPolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [{ + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", + "logs:GetLogEvents", + "logs:FilterLogEvents" + ], + "Resource": "*" + }] + } + }] + } + }, + "ApiGatewayAccount": { + "Type" : "AWS::ApiGateway::Account", + "Properties" : { + "CloudWatchRoleArn" : {"Fn::GetAtt" : ["ApiGatewayCloudWatchLogsRole", "Arn"] } + } + }, + + "ApiDeployment": { + "Type": "AWS::ApiGateway::Deployment", + "DependsOn": ["ModelRequest"], + "Properties": { + "RestApiId": {"Ref": "ModelAPI"}, + "StageName": "TestStage" + } + }, + "Model": { + "Type": "AWS::ApiGateway::Resource", + "Properties": { + "RestApiId": {"Ref": "ModelAPI"}, + "ParentId": {"Fn::GetAtt": ["ModelAPI", "RootResourceId"]}, + "PathPart": "Model" + } + }, + "ModelRequest": { + "DependsOn": "LambdaPermission", + "Type": "AWS::ApiGateway::Method", + "Properties": { + "AuthorizationType": "NONE", + "HttpMethod": "POST", + "Integration": { + "Type": "AWS_PROXY", + "IntegrationHttpMethod": "POST", + "Uri": {"Fn::Join" : ["", + ["arn:aws:apigateway:", {"Ref": "AWS::Region"}, ":lambda:path/2015-03-31/functions/", {"Fn::GetAtt": ["invokeSMEndpoint", "Arn"]}, "/invocations"] + ]} + }, + "MethodResponses": [{ + "StatusCode": "200" + }], + "ResourceId": {"Ref": "Model"}, + "RestApiId": {"Ref": "ModelAPI"} + } + } + }, + "Outputs":{ + "APIGatewayEndPointURL":{ + "Value": {"Fn::Join": ["", ["https://", {"Ref": "ModelAPI"}, ".execute-api.", {"Ref": "AWS::Region"}, ".amazonaws.com"]]} + } + } +} + """ + + return template_body.replace("lambda:us-west-1", f"lambda:{region}") diff --git a/patterns/ml_gateway/images/ml-gateway-pattern.png b/patterns/ml_gateway/images/ml-gateway-pattern.png new file mode 100644 index 0000000000..ce1887a1bc Binary files /dev/null and b/patterns/ml_gateway/images/ml-gateway-pattern.png differ diff --git a/patterns/ml_gateway/index.rst b/patterns/ml_gateway/index.rst new file mode 100644 index 0000000000..294c0cf70a --- /dev/null +++ b/patterns/ml_gateway/index.rst @@ -0,0 +1,13 @@ +The ML Gateway Pattern +============================== + +The following are examples of using the ML Gateway Pattern for inference. + + +Data Preparation and Inference Using SageMaker Feature Store +------------------------------------------------------------ + +.. toctree:: + :maxdepth: 2 + + ml-gateway diff --git a/patterns/ml_gateway/ml-gateway.ipynb b/patterns/ml_gateway/ml-gateway.ipynb new file mode 100644 index 0000000000..c7413ef08a --- /dev/null +++ b/patterns/ml_gateway/ml-gateway.ipynb @@ -0,0 +1,1263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Enterprise-Grade ML : Part 1 - Prepare and Use the ML Gateway Pattern for Inference\n", + "\n", + "## Data Preperation and Inference Using SageMaker Feature Store " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "\n", + "### Contents\n", + "\n", + "----\n", + "\n", + "- [Motivation](#motivation)\n", + "- [Architecure](#arch)\n", + "- [Import Libraries and SageMaker Session Variables](#imports)\n", + "- [Data and Features](#data)\n", + "- [Clean Up](#clean-up)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "\n", + "## Motivation\n", + "\n", + "----\n", + "\n", + "Data Science projects often start in an experimental phase in which transformations on features are experimented with, algorithms are selected and tried for determining if they can fit the data distribution well enough for reliable predictions, tuning is done with various hyper-parameters and so on. \n", + "\n", + "As an organization matures in their Machine Learning (ML) Journey, they will find that they will then transition to an automated ML or MLOps phase where the pipelines for data preparation, training, deployment, monitoring will all need to be automated.\n", + "\n", + "In order to raise the maturity of projects to an Enterprise Scale that can fulfill business needs, sustain business-level continuity, scale, security and performance, the need for integrating data science experiments with machine learning deployment patterns and best-practices will grow in importance and will save you time and money.\n", + "\n", + "In this blog series on ML Patterns, we will start by focusing on Deployment Patterns and Best-Practices within the ML lifecycle : exploring the considerations and options that present themselves, post-training; on the serving/inference/prediction phases of the ML lifecycle.\n", + "\n", + "There are many ways in which we can expose an endpoint that was deployed as a hosted SageMaker endpoint: these variations are summarized in the ML Gateway Pattern with mandatory and optional components. Through this series of blogs we will outline options and their context, pros and cons for helping you decide what components to use for your specific workload and use-case.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "\n", + "## Architecture\n", + "\n", + "----\n", + "\n", + "Here we break down the example in this blog into four parts:\n", + "\n", + "1. Data prep\n", + " 1. For preparation we will load the CSV into s3\n", + " 2. Then create and populate a Feature Store that can be used for training our model\n", + " 3. Later we will use Athena to load the data from the feature store into a dataframe\n", + "2. Training and deployment\n", + "3. Inference\n", + "4. MLOps — deployment of a Cloud Formation Template \n", + "\n", + "\n", + "\n", + "![image](./images/ml-gateway-pattern.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "\n", + "## Import Libraries and SageMaker Session Variables\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pip\n", + "\n", + "def import_or_install(package):\n", + " try:\n", + " __import__(package)\n", + " except ImportError:\n", + " pip.main(['install', package]) \n", + " \n", + "import_or_install('sagemaker')\n", + "import_or_install('boto3')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import sagemaker\n", + "import boto3\n", + "import os\n", + "from sagemaker.inputs import TrainingInput\n", + "from sagemaker.xgboost import XGBoost\n", + "from sagemaker.predictor import Predictor\n", + "from sagemaker.serializers import CSVSerializer\n", + "from sagemaker.deserializers import CSVDeserializer\n", + "from sagemaker.session import production_variant\n", + "from sagemaker.model_monitor import DataCaptureConfig, CronExpressionGenerator, DefaultModelMonitor\n", + "from sagemaker.model_monitor.dataset_format import DatasetFormat\n", + "import datetime as datetime\n", + "import statistics\n", + "import numpy as np\n", + "import requests\n", + "import shutil\n", + "import time\n", + "import helpers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Session variables" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "role = sagemaker.get_execution_role()\n", + "\n", + "# Session variables\n", + "sess = sagemaker.Session()\n", + "bucket = sess.default_bucket()\n", + "prefix = \"ml-gateway\"\n", + "region = sess.boto_region_name\n", + "\n", + "print(f\"Region: {region}\\nBucket: {bucket}\\nPrefix: {prefix}\\n\")\n", + "\n", + "# Data source location\n", + "claims_url = \"https://raw.githubusercontent.com/aws/amazon-sagemaker-examples/master/end_to_end/fraud_detection/data/claims_preprocessed.csv\"\n", + "customers_url = \"https://raw.githubusercontent.com/aws/amazon-sagemaker-examples/master/end_to_end/fraud_detection/data/customers_preprocessed.csv\"\n", + "\n", + "# Feature Store parameters\n", + "claims_feature_group_name = \"claims-feature-group\"\n", + "customers_feature_group_name = \"customers-feature-group\"\n", + "claims_feature_group_description = \"Claims feature group\"\n", + "customers_feature_group_description = \"Customers feature group\"\n", + "id_name = \"policy_id\"\n", + "event_time_name = \"event_time\"\n", + "claims_offline_feature_group_bucket = f\"s3://{bucket}/claims-feature-group\"\n", + "customers_offline_feature_group_bucket = f\"s3://{bucket}/customers-feature-group\"\n", + "\n", + "# SageMaker training\n", + "s3_input_train_uri = f\"s3://{bucket}/{prefix}/data/train/train.csv\"\n", + "s3_input_test_uri = f\"s3://{bucket}/{prefix}/data/test/test.csv\"\n", + "train_instance_type = \"ml.m4.xlarge\"\n", + "train_base_job_name = \"xgboost-model\"\n", + "\n", + "# Model names\n", + "model1_name = \"xgboost-model-1\"\n", + "model2_name = \"xgboost-model-2\"\n", + "\n", + "# SageMaker endpoint\n", + "endpoint_name = \"xgboost-claims-fraud\"\n", + "deploy_instance_type = \"ml.m4.xlarge\"\n", + "\n", + "# SageMaker Model Monitor\n", + "monitor_schedule_name = f\"{prefix}-monitor-schedule\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "\n", + "## Data and Features\n", + "\n", + "----\n", + "\n", + "The data we are using is the same synthetic data that was created in this blog post for the [End-to-end ML Lifecycle with Amazon SageMaker](https://aws.amazon.com/blogs/machine-learning/architect-and-build-the-full-machine-learning-lifecycle-with-amazon-sagemaker/). \n", + "The use-case in the above link/blog is Autoclaim Fraud Detection. We will be using the same datasets to demonstrate the ML Gateway Pattern in this example." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Get data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get claims and customer data from existing aws-samples location\n", + "claims_df = pd.read_csv(claims_url)\n", + "customers_df = pd.read_csv(customers_url)\n", + "\n", + "# If your DataFrame doesn't have a timestamp, you can just create one\n", + "timestamp = pd.to_datetime(\"now\").timestamp()\n", + "claims_df[event_time_name] = timestamp\n", + "customers_df[event_time_name] = timestamp" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "claims_dtypes, customers_dtypes = helpers.get_datatypes()\n", + "claims_df = claims_df.astype(claims_dtypes)\n", + "customers_df = customers_df.astype(customers_dtypes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add data to Feature Store" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "claims_feature_group, claims_feature_group_exists = helpers.create_feature_group(\n", + " claims_feature_group_name,\n", + " claims_feature_group_description,\n", + " claims_df,\n", + " id_name,\n", + " event_time_name,\n", + " claims_offline_feature_group_bucket,\n", + " sess,\n", + " role,\n", + ")\n", + "\n", + "customers_feature_group, customers_feature_group_exists = helpers.create_feature_group(\n", + " customers_feature_group_name,\n", + " customers_feature_group_description,\n", + " customers_df,\n", + " id_name,\n", + " event_time_name,\n", + " customers_offline_feature_group_bucket,\n", + " sess,\n", + " role,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Add data to Feature Groups" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Ingest data to Feature Store\n", + "feature_store_client = boto3.client(\"sagemaker-featurestore-runtime\", region_name=region)\n", + "if not claims_feature_group_exists:\n", + " helpers.ingest_df_to_feature_group(claims_df, claims_feature_group_name, feature_store_client)\n", + "if not customers_feature_group_exists:\n", + " helpers.ingest_df_to_feature_group(\n", + " customers_df, customers_feature_group_name, feature_store_client\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Get training and test data from Feature Store" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wait for data to be synchronized with offline Feature Store." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "time.sleep(900)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then query feature store to get training and test data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "claims_query = claims_feature_group.athena_query()\n", + "customers_query = customers_feature_group.athena_query()\n", + "\n", + "claims_table = claims_query.table_name\n", + "customers_table = customers_query.table_name\n", + "database_name = customers_query.database\n", + "\n", + "feature_columns = list(set(claims_df.columns) ^ set(customers_df.columns))\n", + "feature_columns_string = \", \".join(f'\"{c}\"' for c in feature_columns)\n", + "feature_columns_string = f'\"{claims_table}\".{id_name} as {id_name}, ' + feature_columns_string\n", + "\n", + "query_string = f\"\"\"\n", + "SELECT {feature_columns_string}\n", + "FROM \"{claims_table}\" LEFT JOIN \"{customers_table}\" \n", + "ON \"{claims_table}\".{id_name} = \"{customers_table}\".{id_name}\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "claims_query.run(query_string=query_string, output_location=f\"s3://{bucket}/{prefix}/query_results\")\n", + "claims_query.wait()\n", + "dataset = claims_query.as_dataframe()\n", + "\n", + "# Create data directory to store local data\n", + "data_dir = os.path.join(os.getcwd(), \"data\")\n", + "os.makedirs(data_dir, exist_ok=True)\n", + "\n", + "dataset.to_csv(\"data/claims_customer.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Save training and test sets locally." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "col_order = [\"fraud\"] + list(dataset.drop([\"fraud\", \"policy_id\"], axis=1).columns)\n", + "train = dataset.sample(frac=0.80, random_state=0)[col_order]\n", + "test = dataset.drop(train.index)[col_order]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train.to_csv(\"data/train.csv\", index=False)\n", + "test.to_csv(\"data/test.csv\", index=False)\n", + "\n", + "test = test.reset_index(drop=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Upload datasets to S3." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "s3_client = boto3.client(\"s3\", region_name=region)\n", + "s3_client.upload_file(\n", + " Filename=\"data/train.csv\", Bucket=bucket, Key=f\"{prefix}/data/train/train.csv\"\n", + ")\n", + "s3_client.upload_file(Filename=\"data/test.csv\", Bucket=bucket, Key=f\"{prefix}/data/test/test.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Train and deploy an XGBoost model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "s3_input_train = TrainingInput(s3_input_train_uri, content_type=\"csv\")\n", + "s3_input_test = TrainingInput(s3_input_test_uri, content_type=\"csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "hyperparameters = {\n", + " \"max_depth\": \"3\",\n", + " \"eta\": \"0.2\",\n", + " \"objective\": \"binary:logistic\",\n", + " \"num_round\": \"100\",\n", + "}\n", + "\n", + "estimator_parameters = {\n", + " \"entry_point\": \"code/train_deploy.py\",\n", + " \"instance_type\": train_instance_type,\n", + " \"instance_count\": 1,\n", + " \"hyperparameters\": hyperparameters,\n", + " \"role\": role,\n", + " \"base_job_name\": train_base_job_name,\n", + " \"framework_version\": \"1.0-1\",\n", + " \"py_version\": \"py3\",\n", + "}\n", + "\n", + "estimator = XGBoost(**estimator_parameters)\n", + "inputs = {\"train\": s3_input_train, \"test\": s3_input_test}\n", + "\n", + "# Train the model if it already hasn't been trained\n", + "existing_training_jobs = sess.sagemaker_client.list_training_jobs(\n", + " NameContains=train_base_job_name, MaxResults=30\n", + ")[\"TrainingJobSummaries\"]\n", + "if not existing_training_jobs:\n", + " estimator.fit(inputs)\n", + "# Else fetch the latest training job\n", + "else:\n", + " latest_training_job_name = existing_training_jobs[0][\"TrainingJobName\"]\n", + " estimator = XGBoost.attach(latest_training_job_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create two SageMaker models to deploy behind a single endpoint using SageMaker Production Variants." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model1 = estimator.create_model(entry_point=\"code/train_deploy.py\", role=role, name=model1_name)\n", + "model1._create_sagemaker_model(instance_type=deploy_instance_type)\n", + "\n", + "model2 = estimator.create_model(entry_point=\"code/train_deploy.py\", role=role, name=model2_name)\n", + "model2._create_sagemaker_model(instance_type=deploy_instance_type)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "variant_1 = production_variant(\n", + " model_name=model1_name,\n", + " instance_type=deploy_instance_type,\n", + " initial_instance_count=1,\n", + " variant_name=\"Variant1\",\n", + " initial_weight=1,\n", + ")\n", + "\n", + "\n", + "variant_2 = production_variant(\n", + " model_name=model2_name,\n", + " instance_type=deploy_instance_type,\n", + " initial_instance_count=1,\n", + " variant_name=\"Variant2\",\n", + " initial_weight=1,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Setup Model Monitor's Data Capture for Production Variants." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "s3_capture_upload_path = f\"s3://{bucket}/{prefix}/model_monitor\"\n", + "\n", + "data_capture_config = DataCaptureConfig(\n", + " enable_capture=True, sampling_percentage=100, destination_s3_uri=s3_capture_upload_path\n", + ")\n", + "\n", + "data_capture_config_dict = data_capture_config._to_request_dict()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now create the Production Variant endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# If not already deployed, deploy the model\n", + "existing_endpoints = sess.sagemaker_client.list_endpoints(\n", + " NameContains=endpoint_name, MaxResults=30\n", + ")[\"Endpoints\"]\n", + "if not existing_endpoints:\n", + " sess.endpoint_from_production_variants(\n", + " name=endpoint_name,\n", + " production_variants=[variant_1, variant_2],\n", + " data_capture_config_dict=data_capture_config_dict,\n", + " )\n", + " predictor = Predictor(\n", + " endpoint_name=endpoint_name,\n", + " sagemaker_session=sess,\n", + " serializer=CSVSerializer(),\n", + " deserializer=CSVDeserializer(),\n", + " )\n", + "else:\n", + " predictor = Predictor(\n", + " endpoint_name=endpoint_name,\n", + " sagemaker_session=sess,\n", + " serializer=CSVSerializer(),\n", + " deserializer=CSVDeserializer(),\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a baseline." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Baseline data is the training data that we saved as CSV\n", + "baseline_data_uri = s3_input_train_uri\n", + "baseline_results_uri = f\"s3://{bucket}/{prefix}/model_monitor/baseline_output\"\n", + "\n", + "my_default_monitor = DefaultModelMonitor(\n", + " role=role,\n", + " instance_count=1,\n", + " instance_type=\"ml.m5.large\",\n", + " volume_size_in_gb=20,\n", + " max_runtime_in_seconds=3600,\n", + ")\n", + "\n", + "my_default_monitor.suggest_baseline(\n", + " baseline_dataset=baseline_data_uri,\n", + " dataset_format=DatasetFormat.csv(header=False),\n", + " output_s3_uri=baseline_results_uri,\n", + " wait=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create the monitoring job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "baseline_violations_uri = f\"s3://{bucket}/{prefix}/model_monitor/violations\"\n", + "\n", + "my_default_monitor.create_monitoring_schedule(\n", + " monitor_schedule_name=monitor_schedule_name,\n", + " endpoint_input=endpoint_name,\n", + " output_s3_uri=baseline_violations_uri,\n", + " statistics=my_default_monitor.baseline_statistics(),\n", + " constraints=my_default_monitor.suggested_constraints(),\n", + " schedule_cron_expression=CronExpressionGenerator.hourly(),\n", + " enable_cloudwatch_metrics=True,\n", + ")\n", + "\n", + "desc_schedule_result = my_default_monitor.describe_schedule()\n", + "print(\"Schedule status: {}\".format(desc_schedule_result[\"MonitoringScheduleStatus\"]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test Feature Store in Real-Time Inference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See how you can aggregate data from multiple Feature Groups and use those features as input to a SageMaker endpoint in a low-latency fashion." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "def get_prediction(policy_id, featurestore_runtime):\n", + " t0 = datetime.datetime.now()\n", + " customer_record_response = featurestore_runtime.get_record(\n", + " FeatureGroupName=\"customers-feature-group\", RecordIdentifierValueAsString=str(policy_id)\n", + " )\n", + "\n", + " claims_record_response = featurestore_runtime.get_record(\n", + " FeatureGroupName=\"claims-feature-group\", RecordIdentifierValueAsString=str(policy_id)\n", + " )\n", + "\n", + " t1 = datetime.datetime.now()\n", + "\n", + " customer_record = customer_record_response[\"Record\"]\n", + " customer_df = pd.DataFrame(customer_record).set_index(\"FeatureName\")\n", + " claims_record = claims_record_response[\"Record\"]\n", + " claims_df = pd.DataFrame(claims_record).set_index(\"FeatureName\")\n", + "\n", + " joined_df = pd.concat([claims_df, customer_df]).loc[col_order].drop(\"fraud\")\n", + " payload = \",\".join(joined_df[\"ValueAsString\"])\n", + " prediction = float(\n", + " predictor.predict(\n", + " payload, initial_args={\"ContentType\": \"text/csv\"}, target_variant=\"Variant1\"\n", + " )[0][0]\n", + " )\n", + "\n", + " diff = t1 - t0\n", + " minutes, seconds = divmod(diff.total_seconds(), 60)\n", + " timer.append(seconds)\n", + "\n", + " return prediction\n", + "\n", + "\n", + "# Instantiate Feature Store Runtime client\n", + "boto_session = boto3.Session(region_name=region)\n", + "featurestore_runtime = boto_session.client(\n", + " service_name=\"sagemaker-featurestore-runtime\", region_name=region\n", + ")\n", + "\n", + "MAX_POLICY_IDS = 100\n", + "timer = []\n", + "for policy_id in range(1, MAX_POLICY_IDS + 1):\n", + " prediction = get_prediction(policy_id, featurestore_runtime)\n", + " print(f\"Probablitity the claim from policy {int(policy_id)} is fraudulent:\", prediction)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get latencies." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "timer_array = np.array(timer)\n", + "print(\n", + " f\"p95: {np.percentile(timer_array,95)}, p99: {np.percentile(timer_array,99)}, mean: {np.mean(timer_array)} for {MAX_POLICY_IDS} distinct Feature Store gets across two Feature Groups\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create ML Gateway with Feature Store" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, write out a Lambda function script. Make sure to replace the `ENDPOINT_NAME` variable with the name of your deployed SageMaker endpoint." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Lambda function will check if the policy ID from a user request already exists in Feature Store. If so, it will fetch the features associated with the policy ID from both Feature Groups and feed them as inputs into the SageMaker endpoint.\n", + "\n", + "If there are no features in Feature Store for the given policy ID, then take the raw data from the request, transform it, store it in Feature Store, and return a prediction back to the user." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile lambda_function.py\n", + "\n", + "import os\n", + "import io\n", + "import boto3\n", + "import json\n", + "import pandas as pd\n", + "import datetime as datetime\n", + "import re\n", + "\n", + "ENDPOINT_NAME = \"xgboost-claims-fraud\" # REPLACE WITH SAGEMAKER ENDPOINT NAME\n", + "ENDPOINT_NAME = ENDPOINT_NAME.strip()\n", + "runtime = boto3.client(\"runtime.sagemaker\")\n", + "\n", + "# Instantiate Feature Store Runtime client\n", + "# get current region\n", + "region = boto3.Session().region_name\n", + "print(f\"region : {region}\\n\")\n", + "\n", + "boto_session = boto3.Session(region_name=region)\n", + "featurestore_runtime = boto_session.client(\n", + " service_name=\"sagemaker-featurestore-runtime\", region_name=region\n", + ")\n", + "\n", + "\n", + "def get_payload(policy_id):\n", + " \"\"\"Get records associated with the policy id from both\n", + " Feature Groups\n", + "\n", + " Args:\n", + " policy_id: int or str\n", + "\n", + " Returns:\n", + " str\n", + " \"\"\"\n", + "\n", + " col_order = [\n", + " \"fraud\",\n", + " \"driver_relationship_child\",\n", + " \"num_insurers_past_5_years\",\n", + " \"incident_severity\",\n", + " \"driver_relationship_self\",\n", + " \"authorities_contacted_none\",\n", + " \"months_as_customer\",\n", + " \"driver_relationship_na\",\n", + " \"policy_liability\",\n", + " \"collision_type_side\",\n", + " \"collision_type_front\",\n", + " \"incident_month\",\n", + " \"num_claims_past_year\",\n", + " \"customer_gender_male\",\n", + " \"num_vehicles_involved\",\n", + " \"customer_education\",\n", + " \"authorities_contacted_ambulance\",\n", + " \"police_report_available\",\n", + " \"incident_dow\",\n", + " \"vehicle_claim\",\n", + " \"collision_type_rear\",\n", + " \"customer_gender_female\",\n", + " \"incident_day\",\n", + " \"policy_state_or\",\n", + " \"customer_age\",\n", + " \"policy_state_wa\",\n", + " \"injury_claim\",\n", + " \"policy_state_id\",\n", + " \"driver_relationship_spouse\",\n", + " \"policy_deductable\",\n", + " \"num_injuries\",\n", + " \"collision_type_na\",\n", + " \"driver_relationship_other\",\n", + " \"incident_hour\",\n", + " \"incident_type_theft\",\n", + " \"incident_type_breakin\",\n", + " \"num_witnesses\",\n", + " \"policy_state_ca\",\n", + " \"policy_state_nv\",\n", + " \"incident_type_collision\",\n", + " \"auto_year\",\n", + " \"authorities_contacted_police\",\n", + " \"policy_state_az\",\n", + " \"policy_annual_premium\",\n", + " \"total_claim_amount\",\n", + " \"authorities_contacted_fire\",\n", + " ]\n", + " t0 = datetime.datetime.now()\n", + " customer_record_response = featurestore_runtime.get_record(\n", + " FeatureGroupName=\"customers-feature-group\", RecordIdentifierValueAsString=str(policy_id)\n", + " )\n", + " claims_record_response = featurestore_runtime.get_record(\n", + " FeatureGroupName=\"claims-feature-group\", RecordIdentifierValueAsString=str(policy_id)\n", + " )\n", + " t1 = datetime.datetime.now()\n", + " customer_record = customer_record_response[\"Record\"]\n", + " customer_df = pd.DataFrame(customer_record).set_index(\"FeatureName\")\n", + " claims_record = claims_record_response[\"Record\"]\n", + " claims_df = pd.DataFrame(claims_record).set_index(\"FeatureName\")\n", + " joined_df = pd.concat([claims_df, customer_df]).loc[col_order].drop(\"fraud\")\n", + " payload = \",\".join(joined_df[\"ValueAsString\"])\n", + " return payload\n", + "\n", + "\n", + "def response(message, status_code):\n", + " return {\n", + " \"statusCode\": str(status_code),\n", + " \"body\": json.dumps(message),\n", + " \"headers\": {\"Content-Type\": \"application/json\", \"Access-Control-Allow-Origin\": \"*\"},\n", + " }\n", + "\n", + "\n", + "def one_hot_encoder(df: pd.DataFrame, input_column: str, categories: list) -> None:\n", + " \"\"\"A one hot encoder similiar to the one in Data Wrangler.\n", + "\n", + " Args:\n", + " df: A Pandas DataFrame.\n", + " input_column: The name of the column which contains the categorical values.\n", + " categories: The list of categorical values which was available during training.\n", + "\n", + " Returns:\n", + " None: The DataFrame is updated in place with the encoded features.\n", + "\n", + " \"\"\"\n", + "\n", + " # NaN types are converted to literal `na` in Data Wrangler during one-hot encoding\n", + " if \"na\" in categories:\n", + " df[input_column].fillna(\"na\", inplace=True)\n", + " for c in categories:\n", + " df[f\"{input_column}_{c}\"] = 0\n", + " for idx, val in df[input_column].iteritems():\n", + " df.at[idx, f\"{input_column}_{val}\"] = 1\n", + " df.drop(input_column, axis=1, inplace=True)\n", + "\n", + "\n", + "def transform_claims_data(claims_data: dict) -> pd.DataFrame:\n", + " \"\"\"Transforms the inbound claims data to the feature store format.\n", + "\n", + " Args:\n", + " claims_data: A dictionary containing the claims data.\n", + "\n", + " Returns:\n", + " pd.DataFrame: A Pandas DataFrame containing the processed claims data.\n", + " \"\"\"\n", + "\n", + " claims_df = pd.DataFrame.from_dict(claims_data)\n", + "\n", + " # (3) convert cat columns to lowercase\n", + " claims_df = claims_df.applymap(lambda s: s.lower() if type(s) == str else s)\n", + "\n", + " # (4-6) format string\n", + " invalid_char = re.compile(\"[-@#$%^&*()_+=/\\`~{}|<>?]\")\n", + " claims_df[\"driver_relationship\"].replace(invalid_char, \" \", regex=True, inplace=True)\n", + " claims_df[\"collision_type\"].replace(invalid_char, \" \", regex=True, inplace=True)\n", + " claims_df[\"incident_type\"].replace(invalid_char, \" \", regex=True, inplace=True)\n", + "\n", + " # (7-10) one hot encode\n", + " one_hot_encoder(claims_df, \"driver_relationship\", [\"spouse\", \"self\", \"child\", \"na\", \"other\"])\n", + " one_hot_encoder(claims_df, \"incident_type\", [\"collision\", \"breakin\", \"theft\"])\n", + " one_hot_encoder(claims_df, \"collision_type\", [\"front\", \"rear\", \"side\", \"na\"])\n", + " one_hot_encoder(claims_df, \"authorities_contacted\", [\"none\", \"police\", \"ambulance\", \"fire\"])\n", + "\n", + " # (11-12) ordinal encode\n", + " claims_df[\"incident_severity\"] = claims_df[\"incident_severity\"].replace(\n", + " {\"minor\": 0, \"major\": 1, \"totaled\": 2, \"na\": 3}\n", + " )\n", + " claims_df[\"police_report_available\"] = claims_df[\"police_report_available\"].replace(\n", + " {\"no\": 0, \"yes\": 1, \"na\": 2}\n", + " )\n", + "\n", + " # (13) create event_time\n", + " claims_df[\"event_time\"] = pd.to_datetime(\"now\").timestamp()\n", + "\n", + " # NOTE: remaining steps in Flow file involve casting encoded columns from Float to Long, which is not\n", + " # necessary here.\n", + "\n", + " return claims_df\n", + "\n", + "\n", + "def transform_customers_data(customers_data: dict) -> pd.DataFrame:\n", + " \"\"\"Transforms the inbound customers data to the feature store format.\n", + "\n", + " Args:\n", + " customers_data: A dictionary containing the customers data.\n", + "\n", + " Returns:\n", + " pd.DataFrame: A Pandas DataFrame containing the processed customers data.\n", + " \"\"\"\n", + " customers_df = pd.DataFrame.from_dict(customers_data)\n", + "\n", + " # (3) convert cat columns to lowercase\n", + " customers_df = customers_df.applymap(lambda s: s.lower() if type(s) == str else s)\n", + "\n", + " # (4) drop customer_zip\n", + " customers_df.drop(\"customer_zip\", axis=1, inplace=True)\n", + "\n", + " # (5-6) one hot encode\n", + " one_hot_encoder(customers_df, \"customer_gender\", [\"unkown\", \"male\", \"female\", \"other\"])\n", + " one_hot_encoder(customers_df, \"policy_state\", [\"wa\", \"ca\", \"az\", \"or\", \"nv\", \"id\"])\n", + "\n", + " # (7-8) ordinal encode\n", + " customers_df[\"customer_education\"] = customers_df[\"customer_education\"].replace(\n", + " {\n", + " \"below high school\": 0,\n", + " \"high school\": 1,\n", + " \"associate\": 2,\n", + " \"bachelor\": 3,\n", + " \"advanced degree\": 4,\n", + " }\n", + " )\n", + " customers_df[\"policy_liability\"] = customers_df[\"policy_liability\"].replace(\n", + " {\"15/30\": 0, \"25/50\": 1, \"30/60\": 2, \"100/200\": 3}\n", + " )\n", + "\n", + " # NOTE: steps 9-18 in Flow file involve casting encoded columns from Float to Long, which is not\n", + " # necessary here.\n", + "\n", + " # (19) create event_time\n", + " customers_df[\"event_time\"] = pd.to_datetime(\"now\").timestamp()\n", + "\n", + " # (20-21) drop unused columns\n", + " customers_df.drop(\"customer_gender_unkown\", axis=1, inplace=True)\n", + " customers_df.drop(\"customer_gender_other\", axis=1, inplace=True)\n", + "\n", + " return customers_df\n", + "\n", + "\n", + "def ingest_df_to_feature_group(df, feature_group_name):\n", + " \"\"\"Ingests data from a DataFrame into a Feature Groups\n", + "\n", + " Args:\n", + " df: pd.DataFrame\n", + " feature_group_name: str\n", + "\n", + " Returns:\n", + " None: Data is already ingested into Feature Group\n", + " \"\"\"\n", + " success, fail = 0, 0\n", + " for row_num, row_series in df.astype(str).iterrows():\n", + " record = []\n", + " for key, value in row_series.to_dict().items():\n", + " record.append({\"FeatureName\": key, \"ValueAsString\": str(value)})\n", + " print(record)\n", + " response = featurestore_runtime.put_record(\n", + " FeatureGroupName=feature_group_name, Record=record\n", + " )\n", + " if response[\"ResponseMetadata\"][\"HTTPStatusCode\"] == 200:\n", + " success += 1\n", + " else:\n", + " fail += 1\n", + " print(f\"Success = {success}\")\n", + " print(f\"Fail = {fail}\")\n", + "\n", + "\n", + "def get_prediction(policy, target_variant):\n", + " \"\"\"Get records from Feature Groups and invoke SageMaker endpoint\n", + "\n", + " Args:\n", + " policy: int or str\n", + "\n", + " Returns:\n", + " dict to be used as a json response\n", + " \"\"\"\n", + " feature_record = get_payload(policy)\n", + " sm_response = runtime.invoke_endpoint(\n", + " EndpointName=ENDPOINT_NAME,\n", + " ContentType=\"text/csv\",\n", + " Accept=\"application/json\",\n", + " Body=feature_record,\n", + " TargetVariant=target_variant,\n", + " )\n", + " result = json.loads(sm_response[\"Body\"].read().decode())\n", + " pred = result[0]\n", + " return response({\"prediction\": pred}, 200)\n", + "\n", + "\n", + "def lambda_handler(event, context):\n", + " print(\"Received event: \" + json.dumps(event, indent=2))\n", + "\n", + " # If request came from API Gateway\n", + " try:\n", + " data = json.loads(event[\"body\"])\n", + "\n", + " # Otherwise it's just a test case\n", + " except:\n", + " data = json.loads(json.dumps(event))\n", + "\n", + " policy = data[\"claim\"][\"policy_id\"][\"0\"]\n", + " target_variant = data[\"variant\"]\n", + "\n", + " try:\n", + " return get_prediction(policy, target_variant)\n", + " except:\n", + " # Get raw data from request\n", + " claim = data[\"claim\"]\n", + " customer = data[\"customer\"]\n", + " # Transform data\n", + " processed_claims_df = transform_claims_data(claim)\n", + " processed_customers_df = transform_customers_data(customer)\n", + " # Ingest newly processed records into Feature Groups\n", + " ingest_df_to_feature_group(processed_claims_df, \"claims-feature-group\")\n", + " ingest_df_to_feature_group(processed_customers_df, \"customers-feature-group\")\n", + " # Return prediction\n", + " return get_prediction(policy, target_variant)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Upload the Lambda code to S3." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "shutil.make_archive(\"function\", \"zip\", \".\", \"lambda_function.py\")\n", + "s3_bucket_uri = f\"s3://{bucket}\"\n", + "\n", + "!aws s3 cp function.zip {s3_bucket_uri}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use the `helpers` library to deploy what we call an ML Gateway pattern. This will spin up an API Gateway endpoint that's attached to a Lambda function with code you've seen above. This is the gateway that ties together the SageMaker Feature Store and a model deployed as a SageMaker endpoint." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To deploy this ML Gateway pattern, you need to add the following permissions to your SageMaker execution role:\n", + "\n", + "```json\n", + "{\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"apigateway:*\"\n", + " ],\n", + " \"Resource\": [\n", + " \"*\"\n", + " ]\n", + "},\n", + "{\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"lambda:GetLayerVersion\"\n", + " ],\n", + " \"Resource\": [\n", + " \"*\"\n", + " ]\n", + "}\n", + "```\n", + "\n", + "Alternatively, you can add the managed `AWSLambdaFullAccess` and `AmazonAPIGatewayAdministrator` policies to your SageMaker execution role but keep in mind these particular managed policies are overly permissive and should be reviewed for least privileges before production." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "api_gateway_url = helpers.deploy_ml_gateway_pattern(endpoint_name, region, bucket)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the above API Gateway URL, we can call our endpoint with Feature Store." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "api_gateway_url" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Endpoint\n", + "url = api_gateway_url\n", + "\n", + "# User request data\n", + "input_data = {\n", + " \"variant\": \"Variant1\",\n", + " \"claim\": {\n", + " \"policy_id\": {\"0\": \"999999999\"},\n", + " \"driver_relationship\": {\"0\": \"Spouse\"},\n", + " \"incident_type\": {\"0\": \"Collision\"},\n", + " \"collision_type\": {\"0\": \"Front\"},\n", + " \"incident_severity\": {\"0\": \"Minor\"},\n", + " \"authorities_contacted\": {\"0\": \"None\"},\n", + " \"num_vehicles_involved\": {\"0\": 2},\n", + " \"num_injuries\": {\"0\": 0},\n", + " \"num_witnesses\": {\"0\": 0},\n", + " \"police_report_available\": {\"0\": \"No\"},\n", + " \"injury_claim\": {\"0\": 71600},\n", + " \"vehicle_claim\": {\"0\": 8913.6687631788},\n", + " \"total_claim_amount\": {\"0\": 80513.6687631788},\n", + " \"incident_month\": {\"0\": 3},\n", + " \"incident_day\": {\"0\": 17},\n", + " \"incident_dow\": {\"0\": 6},\n", + " \"incident_hour\": {\"0\": 8},\n", + " \"fraud\": {\"0\": 0},\n", + " },\n", + " \"customer\": {\n", + " \"policy_id\": {\"0\": \"999999999\"},\n", + " \"customer_age\": {\"0\": 54},\n", + " \"months_as_customer\": {\"0\": 94},\n", + " \"num_claims_past_year\": {\"0\": 0},\n", + " \"num_insurers_past_5_years\": {\"0\": 1},\n", + " \"policy_state\": {\"0\": \"WA\"},\n", + " \"policy_deductable\": {\"0\": 750},\n", + " \"policy_annual_premium\": {\"0\": 3000},\n", + " \"policy_liability\": {\"0\": \"25/50\"},\n", + " \"customer_zip\": {\"0\": 99207},\n", + " \"customer_gender\": {\"0\": \"Unkown\"},\n", + " \"customer_education\": {\"0\": \"Associate\"},\n", + " \"auto_year\": {\"0\": 2006},\n", + " },\n", + "}\n", + "\n", + "# Hit endpoint\n", + "r = requests.post(url, json=input_data)\n", + "\n", + "# Print response\n", + "print(r.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean Up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def clean_up():\n", + " # Delete the online Feature Groups\n", + " claims_feature_group.delete()\n", + " customers_feature_group.delete()\n", + "\n", + " # Delete the offline Feature Groups\n", + " !aws s3 rm {claims_offline_feature_group_bucket} --recursive\n", + " !aws s3 rm {customers_offline_feature_group_bucket} --recursive\n", + " !aws s3 rm {prefix} --recursive\n", + "\n", + " # Delete training and test data\n", + " s3_prefix_uri = f\"s3://{bucket}/{prefix}\"\n", + " !aws s3 rm {s3_prefix_uri} --recursive\n", + "\n", + " # Delete model monitor\n", + " !aws sagemaker delete-monitoring-schedule --monitoring-schedule-name {monitor_schedule_name}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Uncomment the following cell to clean up the Feature Groups, the offline Featrue Group S3 buckets, and the Model Monitor schedule." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#clean_up()" + ] + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (Data Science)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/datascience-1.0" + }, + "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.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/r_examples/r_api_serving_examples/API Serving Examples.ipynb b/r_examples/r_api_serving_examples/API Serving Examples.ipynb new file mode 100644 index 0000000000..cb85c5bac6 --- /dev/null +++ b/r_examples/r_api_serving_examples/API Serving Examples.ipynb @@ -0,0 +1,610 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# R API Serving Examples\n", + "\n", + "In this example, we demonstrate how to quickly compare the runtimes of three methods for serving a model from an R hosted REST API. The following SageMaker examples discuss each method in detail:\n", + "\n", + "* **Plumber**\n", + " * Website: [https://www.rplumber.io/](https://www.rplumber.io)\n", + " * SageMaker Example: [r_serving_with_plumber](../r_serving_with_plumber)\n", + "* **RestRServe**\n", + " * Website: [https://restrserve.org](https://restrserve.org)\n", + " * SageMaker Example: [r_serving_with_restrserve](../r_serving_with_restrserve)\n", + "* **FastAPI** (reticulated from Python)\n", + " * Website: [https://fastapi.tiangolo.com](https://fastapi.tiangolo.com)\n", + " * SageMaker Example: [r_serving_with_fastapi](../r_serving_with_fastapi)\n", + " \n", + "We will reuse the docker images from each of these examples. Each one is configured to serve a small XGBoost model which has already been trained on the classical Iris dataset." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Building Docker Images for Serving\n", + "\n", + "First, we will build each docker image from the provided SageMaker Examples." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plumber Serving Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "!cd .. && docker build -t r-plumber -f r_serving_with_plumber/Dockerfile r_serving_with_plumber" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### RestRServe Serving Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "!cd .. && docker build -t r-restrserve -f r_serving_with_restrserve/Dockerfile r_serving_with_restrserve" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FastAPI Serving Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "!cd .. && docker build -t r-fastapi -f r_serving_with_fastapi/Dockerfile r_serving_with_fastapi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch Serving Containers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we will launch each search container. The containers will be launch on the following ports to avoid port collisions on your local machine or SageMaker Notebook instance:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ports = {\n", + " \"plumber\": 5000,\n", + " \"restrserve\": 5001,\n", + " \"fastapi\": 5002,\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!bash launch.sh" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker container list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Simple Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from tqdm import tqdm\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_predictions(examples, instance=requests, port=5000):\n", + " payload = {\"features\": examples}\n", + " return instance.post(f\"http://127.0.0.1:{port}/invocations\", json=payload)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_health(instance=requests, port=5000):\n", + " instance.get(f\"http://127.0.0.1:{port}/ping\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Example Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we define a example inputs from the classical [Iris](https://archive.ics.uci.edu/ml/datasets/iris) dataset.\n", + "* Dua, D. and Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "column_names = [\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\", \"Label\"]\n", + "iris = pd.read_csv(\n", + " \"s3://sagemaker-sample-files/datasets/tabular/iris/iris.data\", names=column_names\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris_features = iris[[\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "example = iris_features.values[:1].tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "many_examples = iris_features.values[:100].tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Testing\n", + "\n", + "Now it's time to test how each API server performs under stress." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will test two use cases:\n", + "* **New Requests**: In this scenario, we test how quickly the server can respond with predictions when each client request establishes a new connection with the server. This simulates the server's ability to handle real-time requests. We could make this more realistic by creating an asynchronous environment that tests the server's ability to fulfill concurrent rather than sequential requests.\n", + "* **Keep Alive / Reuse Session**: In this scenario, we test how quickly the server can respond with predictions when each client request uses a session to keep its connection to the server alive between requests. This simulates the server's ability to handle sequential batch requests from the same client." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For each of the two use cases, we will test the performance on following situations:\n", + "\n", + "* 1000 requests of a single example\n", + "* 1000 requests of 100 examples\n", + "* 1000 pings for health status" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## New Requests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plumber" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# verify the prediction output\n", + "get_predictions(example, port=ports[\"plumber\"]).json()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(example, port=ports[\"plumber\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(many_examples, port=ports[\"plumber\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " get_health(port=ports[\"plumber\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### RestRserve" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# verify the prediction output\n", + "get_predictions(example, port=ports[\"restrserve\"]).json()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(example, port=ports[\"restrserve\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(many_examples, port=ports[\"restrserve\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " get_health(port=ports[\"restrserve\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FastAPI" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# verify the prediction output\n", + "get_predictions(example, port=ports[\"fastapi\"]).json()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(example, port=ports[\"fastapi\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(many_examples, port=ports[\"fastapi\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " get_health(port=ports[\"fastapi\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Keep Alive (Reuse Session)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's test how each one performs when each request reuses a session connection. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# reuse the session for each post and get request\n", + "instance = requests.Session()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plumber" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(example, instance=instance, port=ports[\"plumber\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(many_examples, instance=instance, port=ports[\"plumber\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " get_health(instance=instance, port=ports[\"plumber\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### RestRserve" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(example, instance=instance, port=ports[\"restrserve\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(many_examples, instance=instance, port=ports[\"restrserve\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " get_health(instance=instance, port=ports[\"restrserve\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### FastAPI" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(example, instance=instance, port=ports[\"fastapi\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " _ = get_predictions(many_examples, instance=instance, port=ports[\"fastapi\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(1000)):\n", + " get_health(instance=instance, port=ports[\"fastapi\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Stop All Serving Containers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will shut down the serving containers we launched for the tests." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker kill $(docker ps -q)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conclusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we demonstrated how to conduct a simple performance benchmark across three R model serving solutions. We leave the choice of serving solution up to the reader since in some cases it might be appropriate to customize the benchmark in the following ways:\n", + "\n", + "* Update the serving example to serve a specific model\n", + "* Perform the tests across multiple instances types\n", + "* Modify the serving example and client to test asynchronous requests.\n", + "* Deploy the serving examples to SageMaker Endpoints to test within an autoscaling environment.\n", + "\n", + "For more information on serving your models in custom containers on SageMaker, please see our [support documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-main.html) for the latest updates and best practices." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/r_examples/r_byo_r_algo_hpo/iris.csv b/r_examples/r_api_serving_examples/iris.csv similarity index 100% rename from r_examples/r_byo_r_algo_hpo/iris.csv rename to r_examples/r_api_serving_examples/iris.csv diff --git a/r_examples/r_api_serving_examples/launch.sh b/r_examples/r_api_serving_examples/launch.sh new file mode 100644 index 0000000000..e456602d35 --- /dev/null +++ b/r_examples/r_api_serving_examples/launch.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +echo "Launching Plumber" +docker run -d --rm -p 5000:8080 r-plumber + +echo "Launching RestRServer" +docker run -d --rm -p 5001:8080 r-restrserve + +echo "Launching FastAPI" +docker run -d --rm -p 5002:8080 r-fastapi + diff --git a/r_examples/r_byo_r_algo_hpo/tune_r_bring_your_own.ipynb b/r_examples/r_byo_r_algo_hpo/tune_r_bring_your_own.ipynb index b6e0171ed5..8dafc1a894 100644 --- a/r_examples/r_byo_r_algo_hpo/tune_r_bring_your_own.ipynb +++ b/r_examples/r_byo_r_algo_hpo/tune_r_bring_your_own.ipynb @@ -151,6 +151,9 @@ "\n", "fullname=\"${account}.dkr.ecr.${region}.amazonaws.com/${algorithm_name}:latest\"\n", "\n", + "# Get the login command from ECR and execute it directly\n", + "aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin ${account}.dkr.ecr.${region}.amazonaws.com\n", + "\n", "# If the repository doesn't exist in ECR, create it.\n", "aws ecr describe-repositories --repository-names \"${algorithm_name}\" > /dev/null 2>&1\n", "\n", @@ -159,9 +162,6 @@ " aws ecr create-repository --repository-name \"${algorithm_name}\" > /dev/null\n", "fi\n", "\n", - "# Get the login command from ECR and execute it directly\n", - "$(aws ecr get-login-password --region ${region} --no-include-email)\n", - "\n", "# Build the docker image locally with the image name and then push it to ECR\n", "# with the full name.\n", "docker build -t ${algorithm_name} .\n", @@ -176,7 +176,8 @@ "source": [ "---\n", "## Data\n", - "For this illustrative example, we'll simply use `iris`. This a classic, but small, dataset used to test supervised learning algorithms. Typically the goal is to predict one of three flower species based on various measurements of the flowers' attributes. Further detail can be found [here](https://en.wikipedia.org/wiki/Iris_flower_data_set).\n", + "For this illustrative example, we'll simply use `iris`. This a classic, but small, dataset used to test supervised learning algorithms. Typically, the goal is to predict one of three flower species based on various measurements of the flowers' attributes. Further details can be found [here](https://archive.ics.uci.edu/ml/datasets/iris).\n", + "* **Source:** Dua, D. and Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.\n", "\n", "Let's split the data to train and test datasets (70% / 30%) and then copy the data to S3 so that SageMaker training can access it." ] @@ -187,7 +188,11 @@ "metadata": {}, "outputs": [], "source": [ - "data = pd.read_csv(\"iris.csv\")" + "column_names = [\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\", \"Species\"]\n", + "data = pd.read_csv(\n", + " \"s3://sagemaker-sample-files/datasets/tabular/iris/iris.data\",\n", + " names=column_names,\n", + ")" ] }, { @@ -697,5 +702,5 @@ "notice": "Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/r_examples/r_sagemaker_binary_classification_algorithms/R_binary_classification_algorithms_comparison.ipynb b/r_examples/r_sagemaker_binary_classification_algorithms/R_binary_classification_algorithms_comparison.ipynb new file mode 100644 index 0000000000..727cff9f7a --- /dev/null +++ b/r_examples/r_sagemaker_binary_classification_algorithms/R_binary_classification_algorithms_comparison.ipynb @@ -0,0 +1,1159 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "cf4dc0b3", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "e4fd44cc", + "metadata": {}, + "source": [ + "## Compare built-in Sagemaker classification algorithms for a binary classification problem using Iris dataset" + ] + }, + { + "cell_type": "markdown", + "id": "69f342df", + "metadata": {}, + "source": [ + "In the notebook tutorial, we build 3 classification models using HPO and then compare the AUC on test dataset on 3 deployed models\n", + "\n", + "IRIS is perhaps the best known database to be found in the pattern recognition literature. Fisher's paper is a classic in the field and is referenced frequently to this day. (See Duda & Hart, for example.) The data set contains 3 classes of 50 instances each, where each class refers to a type of iris plant. The dataset is built-in by default into R or can also be downloaded from https://archive.ics.uci.edu/ml/datasets/iris\n", + "\n", + "The iris dataset, besides its historical importance, is also a fun dataset to play with since it can educate us about various ML techniques such as clustering, classification and regression, all in one dataset.\n", + "\n", + "The dataset is built into any base R installation, so no download is required.\n", + "\n", + "Attribute Information:\n", + "\n", + "1. sepal length in cm\n", + "2. sepal width in cm\n", + "3. petal length in cm\n", + "4. petal width in cm\n", + "5. Species of flowers: Iris setosa, Iris versicolor, Iris virginica\n", + "\n", + "The prediction we will perform is `Species ~ f(sepal.length,sepal.width,petal.width,petal.length)`\n", + "\n", + "Predicted attribute: Species of iris plant.\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "2b7bc401", + "metadata": {}, + "source": [ + "### Load required libraries and initialize variables." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae96595e", + "metadata": {}, + "outputs": [], + "source": [ + "rm(list=ls())\n", + "library(reticulate) # be careful not to install reticulate again. since it can cause problems.\n", + "library(tidyverse)\n", + "library(pROC)\n", + "set.seed(1324)" + ] + }, + { + "cell_type": "markdown", + "id": "e7ef8e97", + "metadata": {}, + "source": [ + "SageMaker needs to be imported using the reticulate library. If this was performed in a local computer, we would have to make sure that Python and appropriate SageMaker libraries are installed, but inside a SageMaker notebook R kernels, these are all pre-loaded and the R user does not have to worry about installing reticulate or Python. \n", + "\n", + "Session is the unique session ID associated with each SageMaker call. It remains the same throughout the execution of the program and can be recalled later to close a session or open a new session.\n", + "\n", + "The bucket is the Amazon S3 bucket where we will be storing our data output. The Amazon S3 bucket and prefix that you want to use for training and model data. This should be within the same region as the Notebook Instance, training, and hosting.\n", + "\n", + "The role is the role of the SageMaker notebook as when it was initially deployed. The IAM role arn used to give training and hosting access to your data. See the documentation for how to create these. Note, if more than one role is required for notebook instances, training, and/or hosting, please replace the boto regexp with appropriate full IAM role arn string(s).\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "107a91cb", + "metadata": {}, + "outputs": [], + "source": [ + "sagemaker <- import('sagemaker')\n", + "session <- sagemaker$Session()\n", + "bucket <- session$default_bucket() # you may replace with name of your personal S3 bucket\n", + "role_arn <- sagemaker$get_execution_role()" + ] + }, + { + "cell_type": "markdown", + "id": "78ac95c7", + "metadata": {}, + "source": [ + "### Input the data and basic pre-processing" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e5be74fd", + "metadata": {}, + "outputs": [], + "source": [ + "head(iris)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "190824ed", + "metadata": {}, + "outputs": [], + "source": [ + "summary(iris)" + ] + }, + { + "cell_type": "markdown", + "id": "d0391e7e", + "metadata": {}, + "source": [ + "In above, we see that there are 50 flowers of the setosa species, 50 flowers of the versicolor species, and 50 flowers of the virginica species." + ] + }, + { + "cell_type": "markdown", + "id": "32a67ad2", + "metadata": {}, + "source": [ + "In this case, the target variable is the Species prediction. We are trying to predict the species of the flower given its numerical measurements of Sepal length, sepal width, petal length, and petal width. Since we are trying to do binary classification, we will only take the flower species setosa and versicolor for simplicity. Also we will perform one-hot encoding on the categorical variable Species." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c699c5b2", + "metadata": {}, + "outputs": [], + "source": [ + "iris1 <- iris %>% \n", + " dplyr::select(Species,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width) %>% # change order of columns such that the label column is the first column.\n", + " dplyr::filter(Species %in% c(\"setosa\",\"versicolor\")) %>% #only select two flower for binary classification.\n", + " dplyr::mutate(Species = as.numeric(Species) -1) # one-hot encoding,starting with 0 as setosa and 1 as versicolor." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e338575f", + "metadata": {}, + "outputs": [], + "source": [ + "head(iris1)" + ] + }, + { + "cell_type": "markdown", + "id": "82954ca2", + "metadata": {}, + "source": [ + "We now obtain some basic descriptive statistics of the features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c47022b", + "metadata": {}, + "outputs": [], + "source": [ + "iris1 %>% group_by(Species) %>% summarize(mean_sepal_length = mean(Sepal.Length),\n", + " mean_petal_length = mean(Petal.Length),\n", + " mean_sepal_width = mean(Sepal.Width),\n", + " mean_petal_width = mean(Petal.Width),\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "c3e492f0", + "metadata": {}, + "source": [ + "In the summary statistics, we observe that mean sepal length is longer than mean petal length for both flowers. " + ] + }, + { + "cell_type": "markdown", + "id": "d7833b26", + "metadata": {}, + "source": [ + "### Prepare for modelling" + ] + }, + { + "cell_type": "markdown", + "id": "dd7b7a46", + "metadata": {}, + "source": [ + "##### We split the train and test and validate into 70%, 15%, and 15%, using random sampling." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4f6d609", + "metadata": {}, + "outputs": [], + "source": [ + "iris_train <- iris1 %>%\n", + " sample_frac(size = 0.7)\n", + "iris_test <- anti_join(iris1, iris_train) %>% \n", + " sample_frac(size = 0.5)\n", + "iris_validate <- anti_join(iris1, iris_train) %>%\n", + " anti_join(., iris_test)" + ] + }, + { + "cell_type": "markdown", + "id": "55124158", + "metadata": {}, + "source": [ + "##### We do a check of the summary statistics to make sure train, test, validate datasets are appropriately split and have proper class balance." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e4a2cc9", + "metadata": {}, + "outputs": [], + "source": [ + "table(iris_train$Species)\n", + "nrow(iris_train)" + ] + }, + { + "cell_type": "markdown", + "id": "0b970cf0", + "metadata": {}, + "source": [ + "We see that the class balance between 0 and 1 is almost 50% each for the binary classification. We also see that there are 70 rows in the train dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "207d6b36", + "metadata": {}, + "outputs": [], + "source": [ + "table(iris_validate$Species)\n", + "nrow(iris_validate)" + ] + }, + { + "cell_type": "markdown", + "id": "5ba950db", + "metadata": {}, + "source": [ + "We see that the class balance in validation dataset between 0 and 1 is almost 50% each for the binary classification. We also see that there are 15 rows in the validation dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d76514ee", + "metadata": {}, + "outputs": [], + "source": [ + "table(iris_test$Species)\n", + "nrow(iris_test)" + ] + }, + { + "cell_type": "markdown", + "id": "c2271689", + "metadata": {}, + "source": [ + "We see that the class balance in test dataset between 0 and 1 is almost 50% each for the binary classification. We also see that there are 15 rows in the test dataset." + ] + }, + { + "cell_type": "markdown", + "id": "2307a959", + "metadata": {}, + "source": [ + "### Write the data to Amazon S3" + ] + }, + { + "cell_type": "markdown", + "id": "55026467", + "metadata": {}, + "source": [ + "Different algorithms in SageMaker will have different data formats required for training and for testing. These formats are created to make model production easier. csv is the most well known of these formats and has been used here as input in all algorithms to make it consistent.\n", + "\n", + "SageMaker algorithms take in data from an Amazon S3 object and output data to an Amazon S3 object, so data has to be stored in Amazon S3 as csv,json, proto-buf or any format that is supported by the algorithm that you are going to use." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f25eabdb", + "metadata": {}, + "outputs": [], + "source": [ + "write_csv(iris_train, 'iris_train.csv', col_names = FALSE)\n", + "write_csv(iris_validate, 'iris_valid.csv', col_names = FALSE)\n", + "write_csv(iris_test, 'iris_test.csv', col_names = FALSE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d63db1d8", + "metadata": {}, + "outputs": [], + "source": [ + "s3_train <- session$upload_data(path = 'iris_train.csv', \n", + " bucket = bucket, \n", + " key_prefix = 'data')\n", + "s3_valid <- session$upload_data(path = 'iris_valid.csv', \n", + " bucket = bucket, \n", + " key_prefix = 'data')\n", + "\n", + "s3_test <- session$upload_data(path = 'iris_test.csv', \n", + " bucket = bucket, \n", + " key_prefix = 'data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "54df2b27", + "metadata": {}, + "outputs": [], + "source": [ + "s3_train_input <- sagemaker$inputs$TrainingInput(s3_data = s3_train,\n", + " content_type = 'text/csv')\n", + "s3_valid_input <- sagemaker$inputs$TrainingInput(s3_data = s3_valid,\n", + " content_type = 'text/csv')\n", + "s3_test_input <- sagemaker$inputs$TrainingInput(s3_data = s3_test,\n", + " content_type = 'text/csv')\n" + ] + }, + { + "cell_type": "markdown", + "id": "e2a2542c", + "metadata": {}, + "source": [ + "To perform Binary classification on Tabular\tdata, SageMaker contains following algorithms:\n", + "\n", + "- XGBoost Algorithm\n", + "- Linear Learner Algorithm, \n", + "- K-Nearest Neighbors (k-NN) Algorithm, \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "c01f88a2", + "metadata": {}, + "source": [ + "## Create model 1: XGBoost model in SageMaker" + ] + }, + { + "cell_type": "markdown", + "id": "d99ff2bc", + "metadata": {}, + "source": [ + "Use the XGBoost built-in algorithm to build an XGBoost training container as shown in the following code example. You can automatically spot the XGBoost built-in algorithm image URI using the SageMaker image_uris.retrieve API (or the get_image_uri API if using Amazon SageMaker Python SDK version 1). If you want to ensure if the image_uris.retrieve API finds the correct URI, see Common parameters for built-in algorithms and look up XGBoost from the full list of built-in algorithm image URIs and available regions.\n", + "\n", + "After specifying the XGBoost image URI, you can use the XGBoost container to construct an estimator using the SageMaker Estimator API and initiate a training job. This XGBoost built-in algorithm mode does not incorporate your own XGBoost training script and runs directly on the input datasets.\n", + "\n", + "See https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html for more information." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29145cfe", + "metadata": {}, + "outputs": [], + "source": [ + "container <- sagemaker$image_uris$retrieve(framework='xgboost', region= session$boto_region_name, version='latest')\n", + "cat('XGBoost Container Image URL: ', container)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07325371", + "metadata": {}, + "outputs": [], + "source": [ + "s3_output <- paste0('s3://', bucket, '/output_xgboost')\n", + "estimator1 <- sagemaker$estimator$Estimator(image_uri = container,\n", + " role = role_arn,\n", + " train_instance_count = 1L,\n", + " train_instance_type = 'ml.m5.4xlarge',\n", + " input_mode = 'File',\n", + " output_path = s3_output,\n", + " output_kms_key = NULL,\n", + " base_job_name = NULL,\n", + " sagemaker_session = NULL)" + ] + }, + { + "cell_type": "markdown", + "id": "9a7b6207", + "metadata": {}, + "source": [ + "How would an untuned model perform compared to a tuned model? Is it worth the effort? Before going deeper into XGBoost model tuning, let’s highlight the reasons why you have to tune your model. The main reason to perform hyper-parameter tuning is to increase predictability of our models by choosing our hyperparameters in a well thought manner. There are 3 ways to perform hyperparameter tuning: grid search, random search, bayesian search. Popular packages like scikit-learn use grid search and random search techniques. SageMaker uses Bayesian search techniques.\n", + "\n", + "We need to choose \n", + "\n", + "- a learning objective function to optimize during model training\n", + "- an eval_metric to use to evaluate model performance during validation\n", + "- a set of hyperparameters and a range of values for each to use when tuning the model automatically\n", + "\n", + "SageMaker XGBoost model can be tuned with many hyperparameters. The hyperparameters that have the greatest effect on optimizing the XGBoost evaluation metrics are: \n", + "\n", + "- alpha, \n", + "- min_child_weight, \n", + "- subsample, \n", + "- eta, \n", + "- num_round.\n", + "\n", + "\n", + "The hyperparameters that are required are num_class (the number of classes if it is a multi-class classification problem) and num_round ( the number of rounds to run the training on). All other hyperparameters are optional and will be set to default values if it is not specified by the user." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c33f178", + "metadata": {}, + "outputs": [], + "source": [ + "# check to make sure which are required and which are optional\n", + "estimator1$set_hyperparameters(eval_metric='auc',\n", + " objective='binary:logistic',\n", + " num_round = 6L\n", + " )\n", + "\n", + "# Set Hyperparameter Ranges, check to make sure which are integer and which are continuos parameters. \n", + "hyperparameter_ranges = list('eta' = sagemaker$parameter$ContinuousParameter(0,1),\n", + " 'min_child_weight'= sagemaker$parameter$ContinuousParameter(0,10),\n", + " 'alpha'= sagemaker$parameter$ContinuousParameter(0,2),\n", + " 'max_depth'= sagemaker$parameter$IntegerParameter(0L,10L))\n" + ] + }, + { + "cell_type": "markdown", + "id": "42771dbc", + "metadata": {}, + "source": [ + "The evaluation metric that we will use for our binary classification purpose is validation:auc, but you could use any other metric that is right for your problem. You do have to be careful to change your objective_type to point to the right direction of Maximize or Minimize according to the objective metric you have chosen." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "056f2add", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a hyperparamter tuner\n", + "objective_metric_name = 'validation:auc'\n", + "tuner1 <- sagemaker$tuner$HyperparameterTuner(estimator1,\n", + " objective_metric_name,\n", + " hyperparameter_ranges,\n", + " objective_type='Maximize',\n", + " max_jobs=4L,\n", + " max_parallel_jobs=2L)\n", + "\n", + "# Define the data channels for train and validation datasets\n", + "input_data <- list('train' = s3_train_input,\n", + " 'validation' = s3_valid_input)\n", + "\n", + "# train the tuner\n", + "tuner1$fit(inputs = input_data, \n", + " job_name = paste('sagemaker-tune-xgboost', format(Sys.time(), '%H-%M-%S'), sep = '-'), \n", + " wait=TRUE)" + ] + }, + { + "cell_type": "markdown", + "id": "79451cba", + "metadata": {}, + "source": [ + "The output of the tuning job can be checked in SageMaker if needed." + ] + }, + { + "cell_type": "markdown", + "id": "278ea863", + "metadata": {}, + "source": [ + "### Calculate AUC for the test data on model 1" + ] + }, + { + "cell_type": "markdown", + "id": "1d1951de", + "metadata": {}, + "source": [ + "SageMaker will automatically recognize the training job with the best evaluation metric and load the hyperparameters associated with that training job when we deploy the model. One of the benefits of SageMaker is that we can easily deploy models in a different instance than the instance in which the notebook is running. So we can deploy into a more powerful instance or a less powerful instance." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a8596325", + "metadata": {}, + "outputs": [], + "source": [ + "model_endpoint1 <- tuner1$deploy(initial_instance_count = 1L,\n", + " instance_type = 'ml.t2.medium')\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "181de542", + "metadata": {}, + "source": [ + "The serializer tells SageMaker what format the model expects data to be input in." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "05d97e07", + "metadata": {}, + "outputs": [], + "source": [ + "model_endpoint1$serializer <- sagemaker$serializers$CSVSerializer(content_type='text/csv')" + ] + }, + { + "cell_type": "markdown", + "id": "3ec87668", + "metadata": {}, + "source": [ + "We input the `iris_test` dataset without the labels into the model using the `predict` function and check its AUC value." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc3ce0c5", + "metadata": {}, + "outputs": [], + "source": [ + "# Prepare the test sample for input into the model\n", + "test_sample <- as.matrix(iris_test[-1])\n", + "dimnames(test_sample)[[2]] <- NULL\n", + "\n", + "# Predict using the deployed model\n", + "predictions_ep <- model_endpoint1$predict(test_sample)\n", + "predictions_ep <- stringr::str_split(predictions_ep, pattern = ',', simplify = TRUE)\n", + "predictions_ep <- as.numeric(predictions_ep > 0.5)\n", + "\n", + "# Add the predictions to the test dataset.\n", + "iris_predictions_ep1 <- dplyr::bind_cols(predicted_flower = predictions_ep, \n", + " iris_test)\n", + "iris_predictions_ep1\n", + "\n", + "# Get the AUC\n", + "auc(roc(iris_predictions_ep1$predicted_flower,iris_test$Species))" + ] + }, + { + "cell_type": "markdown", + "id": "d29c25b7", + "metadata": {}, + "source": [ + "## Create model 2: Linear Learner in SageMaker" + ] + }, + { + "cell_type": "markdown", + "id": "42aa8a6a", + "metadata": {}, + "source": [ + "Linear models are supervised learning algorithms used for solving either classification or regression problems. For input, you give the model labeled examples (x, y). x is a high-dimensional vector and y is a numeric label. For binary classification problems, the label must be either 0 or 1.\n", + "\n", + "The linear learner algorithm requires a data matrix, with rows representing the observations, and columns representing the dimensions of the features. It also requires an additional column that contains the labels that match the data points. At a minimum, Amazon SageMaker linear learner requires you to specify input and output data locations, and objective type (classification or regression) as arguments. The feature dimension is also required. You can specify additional parameters in the HyperParameters string map of the request body. These parameters control the optimization procedure, or specifics of the objective function that you train on. For example, the number of epochs, regularization, and loss type.\n", + "\n", + "See https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html for more information." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c34b9b3d", + "metadata": {}, + "outputs": [], + "source": [ + "container <- sagemaker$image_uris$retrieve(framework='linear-learner', region= session$boto_region_name, version='latest')\n", + "cat('Linear Learner Container Image URL: ', container)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ed66e62", + "metadata": {}, + "outputs": [], + "source": [ + "s3_output <- paste0('s3://', bucket, '/output_glm')\n", + "estimator2 <- sagemaker$estimator$Estimator(image_uri = container,\n", + " role = role_arn,\n", + " train_instance_count = 1L,\n", + " train_instance_type = 'ml.m5.4xlarge',\n", + " input_mode = 'File',\n", + " output_path = s3_output,\n", + " output_kms_key = NULL,\n", + " base_job_name = NULL,\n", + " sagemaker_session = NULL)" + ] + }, + { + "cell_type": "markdown", + "id": "f92dbbdd", + "metadata": {}, + "source": [ + "For the text/csv input type, the first column is assumed to be the label, which is the target variable for prediction." + ] + }, + { + "cell_type": "markdown", + "id": "6b2391b3", + "metadata": {}, + "source": [ + "predictor_type is the only hyperparameter that is required to be pre-defined for tuning. The rest are optional." + ] + }, + { + "cell_type": "markdown", + "id": "9f1a07f5", + "metadata": {}, + "source": [ + "Normalization, or feature scaling, is an important preprocessing step for certain loss functions that ensures the model being trained on a dataset does not become dominated by the weight of a single feature. Decision trees do not require normalization of their inputs; and since XGBoost is essentially an ensemble algorithm comprised of decision trees, it does not require normalization for the inputs either.\n", + "\n", + "However, Generalized Linear Models require a normalization of their input. The Amazon SageMaker Linear Learner algorithm has a normalization option to assist with this preprocessing step. If normalization is turned on, the algorithm first goes over a small sample of the data to learn the mean value and standard deviation for each feature and for the label. Each of the features in the full dataset is then shifted to have mean of zero and scaled to have a unit standard deviation.\n", + "\n", + "To make our job easier, we do not have to go back to our previous steps to do normalization. Normalization is built in as a hyper-parameter in SageMaker Linear learner algorithm. So no need to worry about normalization for the training portions.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23e49f71", + "metadata": {}, + "outputs": [], + "source": [ + "estimator2$set_hyperparameters(predictor_type=\"binary_classifier\",\n", + " normalize_data = TRUE)" + ] + }, + { + "cell_type": "markdown", + "id": "4eb28cfd", + "metadata": {}, + "source": [ + "The tunable hyperparameters for linear learner are:\n", + "\n", + "- wd\n", + "- l1\n", + "- learning_rate\n", + "- mini_batch_size\n", + "- use_bias\n", + "- positive_example_weight_mult\n", + "\n", + "Be careful to check which parameters are integers and which parameters are continuous because that is one of the common sources of errors. Also be careful to give a proper range for hyperparameters that makes sense for your problem. Training jobs can sometimes fail if the mini-batch size is too big compared to the training data available." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b79b90bc", + "metadata": {}, + "outputs": [], + "source": [ + "# Set Hyperparameter Ranges\n", + "hyperparameter_ranges = list('wd' = sagemaker$parameter$ContinuousParameter(0.00001,1),\n", + " 'l1' = sagemaker$parameter$ContinuousParameter(0.00001,1),\n", + " 'learning_rate' = sagemaker$parameter$ContinuousParameter(0.00001,1),\n", + " 'mini_batch_size' = sagemaker$parameter$IntegerParameter(10L, 50L) \n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "3f777e12", + "metadata": {}, + "source": [ + "The evaluation metric we will be using in our case to compare the models will be the objective loss and is based on the validation dataset. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9ab03023", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a hyperparamter tuner\n", + "objective_metric_name = 'validation:objective_loss'\n", + "tuner2 <- sagemaker$tuner$HyperparameterTuner(estimator2,\n", + " objective_metric_name,\n", + " hyperparameter_ranges,\n", + " objective_type='Minimize',\n", + " max_jobs=4L,\n", + " max_parallel_jobs=2L)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5803b03b", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a tuning job name\n", + "job_name <- paste('tune-linear-learner', format(Sys.time(), '%H-%M-%S'), sep = '-')\n", + "\n", + "# Define the data channels for train and validation datasets\n", + "input_data <- list('train' = s3_train_input,\n", + " 'validation' = s3_valid_input)\n", + "\n", + "# Train the tuner\n", + "tuner2$fit(inputs = input_data, job_name = job_name, wait=TRUE, content_type='csv') # since we are using csv files as input into the model, we need to specify content type as csv." + ] + }, + { + "cell_type": "markdown", + "id": "2b7bf6a1", + "metadata": {}, + "source": [ + "### Calculate AUC for the test data on model 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "672ca373", + "metadata": {}, + "outputs": [], + "source": [ + "# Deploy the model into an instance of your choosing.\n", + "model_endpoint2 <- tuner2$deploy(initial_instance_count = 1L,\n", + " instance_type = 'ml.t2.medium')" + ] + }, + { + "cell_type": "markdown", + "id": "949973bd", + "metadata": {}, + "source": [ + "For inference, the linear learner algorithm supports the application/json, application/x-recordio-protobuf, and text/csv formats. For more information, https://docs.aws.amazon.com/sagemaker/latest/dg/LL-in-formats.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da8d7f55", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify what data formats you want the input and output of your model to look like.\n", + "model_endpoint2$serializer <- sagemaker$serializers$CSVSerializer(content_type='text/csv')\n", + "model_endpoint2$deserializer <- sagemaker$deserializers$JSONDeserializer()" + ] + }, + { + "cell_type": "markdown", + "id": "5aed6097", + "metadata": {}, + "source": [ + "In Linear Learner the output inference files are in JSON or RecordIO formats. https://docs.aws.amazon.com/sagemaker/latest/dg/LL-in-formats.html \n", + "\n", + "When you make predictions on new data, the contents of the response data depends on the type of model you choose within Linear Learner. For regression (predictor_type='regressor'), the score is the prediction produced by the model. For classification (predictor_type='binary_classifier' or predictor_type='multiclass_classifier'), the model returns a score and also a predicted_label. The predicted_label is the class predicted by the model and the score measures the strength of that prediction. So, for binary classification, predicted_label is 0 or 1, and score is a single floating point number that indicates how strongly the algorithm believes that the label should be 1.\n", + "\n", + "To interpret the score in classification problems, you have to consider the loss function used. If the loss hyperparameter value is logistic for binary classification or softmax_loss for multiclass classification, then the score can be interpreted as the probability of the corresponding class. These are the loss values used by the linear learner when the `loss` hyperparameter is set to auto as default value. But if the `loss` is set to `hinge_loss`, then the score cannot be interpreted as a probability. This is because hinge loss corresponds to a Support Vector Classifier, which does not produce probability estimates. In the current example, since our loss hyperparameter is logistic for binary classification, we can interpret it as probability of the corresponding class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd578e7d", + "metadata": {}, + "outputs": [], + "source": [ + "# Prepare the test data for input into the model\n", + "test_sample <- as.matrix(iris_test[-1])\n", + "dimnames(test_sample)[[2]] <- NULL\n", + "\n", + "# Predict using the test data on the deployed model\n", + "predictions_ep <- model_endpoint2$predict(test_sample)\n", + "\n", + "# Add the predictions to the test dataset.\n", + "df <- data.frame(matrix(unlist(predictions_ep$predictions), nrow=length(predictions_ep$predictions), byrow=TRUE))\n", + "df <- df %>% dplyr::rename(score = X1, predicted_label = X2)\n", + "iris_predictions_ep2 <- dplyr::bind_cols(predicted_flower = df$predicted_label, \n", + " iris_test)\n", + "iris_predictions_ep2\n", + "\n", + "# Get the AUC\n", + "auc(roc(iris_predictions_ep2$predicted_flower,iris_test$Species))\n" + ] + }, + { + "cell_type": "markdown", + "id": "f8aff600", + "metadata": {}, + "source": [ + "## Create model 3: KNN in SageMaker" + ] + }, + { + "cell_type": "markdown", + "id": "48ef375f", + "metadata": {}, + "source": [ + "Amazon SageMaker k-nearest neighbors (k-NN) algorithm is an index-based algorithm. It uses a non-parametric method for classification or regression. For classification problems, the algorithm queries the k points that are closest to the sample point and returns the most frequently used label of their class as the predicted label. For regression problems, the algorithm queries the k closest points to the sample point and returns the average of their feature values as the predicted value.\n", + "\n", + "Training with the k-NN algorithm has three steps: sampling, dimension reduction, and index building. Sampling reduces the size of the initial dataset so that it fits into memory. For dimension reduction, the algorithm decreases the feature dimension of the data to reduce the footprint of the k-NN model in memory and inference latency. We provide two methods of dimension reduction methods: random projection and the fast Johnson-Lindenstrauss transform. Typically, you use dimension reduction for high-dimensional (d >1000) datasets to avoid the “curse of dimensionality” that troubles the statistical analysis of data that becomes sparse as dimensionality increases. The main objective of k-NN's training is to construct the index. The index enables efficient lookups of distances between points whose values or class labels have not yet been determined and the k nearest points to use for inference.\n", + "\n", + "See https://docs.aws.amazon.com/sagemaker/latest/dg/k-nearest-neighbors.html for more information." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc3befe5", + "metadata": {}, + "outputs": [], + "source": [ + "container <- sagemaker$image_uris$retrieve(framework='knn', region= session$boto_region_name, version='latest')\n", + "cat('KNN Container Image URL: ', container)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8952078c", + "metadata": {}, + "outputs": [], + "source": [ + "s3_output <- paste0('s3://', bucket, '/output_knn')\n", + "estimator3 <- sagemaker$estimator$Estimator(image_uri = container,\n", + " role = role_arn,\n", + " train_instance_count = 1L,\n", + " train_instance_type = 'ml.m5.4xlarge',\n", + " input_mode = 'File',\n", + " output_path = s3_output,\n", + " output_kms_key = NULL,\n", + " base_job_name = NULL,\n", + " sagemaker_session = NULL)" + ] + }, + { + "cell_type": "markdown", + "id": "952cee1b", + "metadata": {}, + "source": [ + "Hyperparameter `dimension_reduction_target` should not be set when `dimension_reduction_type` is set to its default value, which is `None`. If 'dimension_reduction_target' is set to a certain number without setting `dimension_reduction_type`, then SageMaker will ask us to remove 'dimension_reduction_target' from the specified hyperparameters and try again. In this tutorial, we are not performing dimensionality reduction, since we only have 4 features; so `dimension_reduction_type` is set to its default value of `None`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37ef7aa7", + "metadata": {}, + "outputs": [], + "source": [ + "estimator3$set_hyperparameters( \n", + " feature_dim = 4L, \n", + " sample_size = 10L, \n", + " predictor_type = \"classifier\"\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "484f987c", + "metadata": {}, + "source": [ + "Amazon SageMaker k-nearest neighbor model can be tuned with the following hyperparameters:\n", + "- k \n", + "- sample_size" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a91bd395", + "metadata": {}, + "outputs": [], + "source": [ + "# Set Hyperparameter Ranges\n", + "hyperparameter_ranges = list('k' = sagemaker$parameter$IntegerParameter(1L,10L)\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59ad0005", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a hyperparamter tuner\n", + "objective_metric_name = 'test:accuracy'\n", + "tuner3 <- sagemaker$tuner$HyperparameterTuner(estimator3,\n", + " objective_metric_name,\n", + " hyperparameter_ranges,\n", + " objective_type='Maximize',\n", + " max_jobs=2L,\n", + " max_parallel_jobs=2L)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6d49b48", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a tuning job name\n", + "job_name <- paste('tune-knn', format(Sys.time(), '%H-%M-%S'), sep = '-')\n", + "\n", + "# Define the data channels for train and validation datasets\n", + "input_data <- list('train' = s3_train_input,\n", + " 'test' = s3_valid_input # KNN needs a test data, does not work without it.\n", + " ) \n", + "\n", + "# train the tuner\n", + "tuner3$fit(inputs = input_data, job_name = job_name, wait=TRUE, content_type='text/csv;label_size=0')" + ] + }, + { + "cell_type": "markdown", + "id": "0887c62d", + "metadata": {}, + "source": [ + "### Calculate AUC for the test data on model 3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c204889d", + "metadata": {}, + "outputs": [], + "source": [ + "# Deploy the model into an instance of your choosing.\n", + "model_endpoint3 <- tuner3$deploy(initial_instance_count = 1L,\n", + " instance_type = 'ml.t2.medium')" + ] + }, + { + "cell_type": "markdown", + "id": "d4243dba", + "metadata": {}, + "source": [ + "For inference, the linear learner algorithm supports the application/json, application/x-recordio-protobuf, and text/csv formats. For more information, https://docs.aws.amazon.com/sagemaker/latest/dg/LL-in-formats.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "167ced33", + "metadata": {}, + "outputs": [], + "source": [ + "# Specify what data formats you want the input and output of your model to look like.\n", + "model_endpoint3$serializer <- sagemaker$serializers$CSVSerializer(content_type='text/csv')\n", + "model_endpoint3$deserializer <- sagemaker$deserializers$JSONDeserializer()" + ] + }, + { + "cell_type": "markdown", + "id": "01ce50fd", + "metadata": {}, + "source": [ + "In KNN, the input formats for inference are:\n", + "- CSV\n", + "- JSON\n", + "- JSONLINES\n", + "- RECORDIO\n", + "\n", + "The output formats for inference are:\n", + "- JSON\n", + "- JSONLINES\n", + "- Verbose JSON\n", + "- Verbose RecordIO-ProtoBuf\n", + "\n", + "Notice that there is no CSV output format for inference. \n", + "\n", + "See https://docs.aws.amazon.com/sagemaker/latest/dg/kNN-inference-formats.html for more details.\n", + "\n", + "When you make predictions on new data, the contents of the response data depends on the type of model you choose within Linear Learner. For regression (predictor_type='regressor'), the score is the prediction produced by the model. For classification (predictor_type='binary_classifier' or predictor_type='multiclass_classifier'), the model returns a score and also a predicted_label. The predicted_label is the class predicted by the model and the score measures the strength of that prediction. So, for binary classification, predicted_label is 0 or 1, and score is a single floating point number that indicates how strongly the algorithm believes that the label should be 1.\n", + "\n", + "To interpret the score in classification problems, you have to consider the loss function used. If the loss hyperparameter value is logistic for binary classification or softmax_loss for multiclass classification, then the score can be interpreted as the probability of the corresponding class. These are the loss values used by the linear learner when the loss hyperparameter is set to auto as default value. But if the loss is set to hinge_loss, then the score cannot be interpreted as a probability. This is because hinge loss corresponds to a Support Vector Classifier, which does not produce probability estimates. In the current example, since our loss hyperparameter is logistic for binary classification, we can interpret it as probability of the corresponding class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "017e7253", + "metadata": {}, + "outputs": [], + "source": [ + "# Prepare the test data for input into the model\n", + "test_sample <- as.matrix(iris_test[-1])\n", + "dimnames(test_sample)[[2]] <- NULL\n", + "\n", + "# Predict using the test data on the deployed model\n", + "predictions_ep <- model_endpoint3$predict(test_sample)" + ] + }, + { + "cell_type": "markdown", + "id": "66a9203b", + "metadata": {}, + "source": [ + "We see that the output is of a deserialized JSON format." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d2380e5", + "metadata": {}, + "outputs": [], + "source": [ + "predictions_ep" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b9c12fab", + "metadata": {}, + "outputs": [], + "source": [ + "typeof(predictions_ep)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a755d464", + "metadata": {}, + "outputs": [], + "source": [ + "# Add the predictions to the test dataset.\n", + "df = data.frame(predicted_flower = unlist(predictions_ep$predictions))\n", + "iris_predictions_ep2 <- dplyr::bind_cols(predicted_flower = df$predicted_flower, \n", + " iris_test)\n", + "iris_predictions_ep2\n", + "\n", + "# Get the AUC\n", + "auc(roc(iris_predictions_ep2$predicted_flower,iris_test$Species))" + ] + }, + { + "cell_type": "markdown", + "id": "d36155c6", + "metadata": {}, + "source": [ + "## Compare the AUC of 3 models for the test data" + ] + }, + { + "cell_type": "markdown", + "id": "af1cca8d", + "metadata": {}, + "source": [ + "\n", + "- AUC of Sagemaker XGBoost = 1 \n", + "\n", + "- AUC of Sagemaker Linear Learner = 0.83\n", + "\n", + "- AUC of Sagemaker KNN = 1\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "4e81c277", + "metadata": {}, + "source": [ + "Based on the AUC metric (the higher the better), both XGBoost and KNN perform equally well and are better than the Linear Learner. We can also explore the 3 models with other binary classification metrics such as accuracy, F1 score, and misclassification error. Comparing only the AUC, in this example, we could chose either the XGBoost model or the KNN model to move onto production and close the other two. The deployed model of our choosing can be passed onto production to generate predictions of flower species given that the user only has its sepal and petal measurements. The performance of the deployed model can also be tracked in Amazon CloudWatch." + ] + }, + { + "cell_type": "markdown", + "id": "3a9dd325", + "metadata": {}, + "source": [ + "## Clean up " + ] + }, + { + "cell_type": "markdown", + "id": "e4b7ef60", + "metadata": {}, + "source": [ + "##### We close the endpoints which we created to free up resources." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f27da27", + "metadata": {}, + "outputs": [], + "source": [ + "session$delete_endpoint(model_endpoint1$endpoint)\n", + "session$delete_endpoint(model_endpoint2$endpoint)\n", + "session$delete_endpoint(model_endpoint3$endpoint)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "4.1.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/r_examples/r_serving_with_fastapi/Dockerfile b/r_examples/r_serving_with_fastapi/Dockerfile new file mode 100644 index 0000000000..68315a476f --- /dev/null +++ b/r_examples/r_serving_with_fastapi/Dockerfile @@ -0,0 +1,23 @@ +FROM r-base:3.6.3 + +MAINTAINER Amazon SageMaker Examples + +RUN apt-get -y update && apt-get install -y --no-install-recommends \ + wget \ + r-base \ + r-base-dev \ + apt-transport-https \ + ca-certificates \ + python3 python3-dev pip + +RUN pip install fastapi uvicorn numpy + +RUN R -e "install.packages(c('reticulate','xgboost'), repos='https://cloud.r-project.org')" + +COPY endpoints.py /opt/ml/endpoints.py +COPY deploy.R /opt/ml/deploy.R +COPY xgb.model /opt/ml/xgb.model + +WORKDIR /opt/ml + +ENTRYPOINT ["/usr/bin/Rscript", "/opt/ml/deploy.R", "--no-save"] diff --git a/r_examples/r_serving_with_fastapi/FastAPI Example.ipynb b/r_examples/r_serving_with_fastapi/FastAPI Example.ipynb new file mode 100644 index 0000000000..1fc513f644 --- /dev/null +++ b/r_examples/r_serving_with_fastapi/FastAPI Example.ipynb @@ -0,0 +1,297 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# R Serving with FastAPI" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dockerfile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* The dockerfile defines the environment in which our server will be executed. \n", + "* Below, you can see that the entrypoint for our container will be [deploy.R](deploy.R)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat Dockerfile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Code: deploy.R\n", + "\n", + "**deploy.R** handles the following steps\n", + "* Loads the R libraries used by the server.\n", + "* Loads a pretrained `xgboost` model that has been trained on the classical [Iris](https://archive.ics.uci.edu/ml/datasets/iris) dataset.\n", + " * Dua, D. and Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.\n", + "* Defines an inference function that takes a matrix of iris features and returns predictions for those iris examples.\n", + "* Wraps the inference function to make it thread-safe for passing to python through reticulate.\n", + "* Finally, it generates the [endpoints.py](endpoints.py) from python and launches the FastAPI server app using those endpoint definitions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat deploy.R" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Code: endpoints.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**endpoints.py** defines two routes:\n", + "* `/ping` returns a status of 'Alive' to indicate that the application is healthy\n", + "* `/invocations` applies the previously defined inference function to the input features from the request body\n", + "\n", + "Note, that FastAPI is typed. The `Example` class define the type of the input that we expect to receive from the request.\n", + "\n", + "For more information about the requirements for building your own inference container, see:\n", + "[Use Your Own Inference Code with Hosting Services](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat endpoints.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Build the Serving Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "!docker build -t r-fastapi ." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch the Serving Container" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!echo \"Launching FastAPI\"\n", + "!docker run -d --rm -p 5000:8080 r-fastapi\n", + "!echo \"Waiting for the server to start..\" && sleep 10" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker container list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Simple Python Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from tqdm import tqdm\n", + "import pandas as pd\n", + "\n", + "pd.set_option(\"display.max_rows\", 500)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_predictions(examples, instance=requests, port=5000):\n", + " payload = {\"features\": examples}\n", + " return instance.post(f\"http://127.0.0.1:{port}/invocations\", json=payload)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_health(instance=requests, port=5000):\n", + " instance.get(f\"http://127.0.0.1:{port}/ping\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Example Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We define example inputs from the Iris dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "column_names = [\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\", \"Label\"]\n", + "iris = pd.read_csv(\n", + " \"s3://sagemaker-sample-files/datasets/tabular/iris/iris.data\", names=column_names\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris_features = iris[[\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "example_inputs = iris_features.values.tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plumber" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "predicted = get_predictions(example_inputs).json()[\"output\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris[\"predicted\"] = predicted" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Stop All Serving Containers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will shut down the serving container we launched for the test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker kill $(docker ps -q)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/r_examples/r_serving_with_fastapi/deploy.R b/r_examples/r_serving_with_fastapi/deploy.R new file mode 100644 index 0000000000..82550d0edd --- /dev/null +++ b/r_examples/r_serving_with_fastapi/deploy.R @@ -0,0 +1,26 @@ +library(reticulate) +library(xgboost) + +# explicit tell reticulate to use the system python +use_python("/usr/bin/python3") + +# load our FastAPI endpoints with reticulate +source_python('endpoints.py') + +# load a pretrained xgboost model +bst <- xgb.load("xgb.model") + +# create a closure around our xgboost model and input data processing +inference <- function(x){ + ds <- xgb.DMatrix(data = x ) + predict(bst, ds) +} + +# make our inference closure safe to send to python as a callback +safe_inference <- py_main_thread_func(inference) + +# create a new FastAPI application instance +app <- make_endpoints(safe_inference) + +# run our FastAPI application +run_app(app) \ No newline at end of file diff --git a/r_examples/r_serving_with_fastapi/endpoints.py b/r_examples/r_serving_with_fastapi/endpoints.py new file mode 100644 index 0000000000..7b62009e85 --- /dev/null +++ b/r_examples/r_serving_with_fastapi/endpoints.py @@ -0,0 +1,32 @@ +from typing import Optional, List +from fastapi import FastAPI +from pydantic import BaseModel +import uvicorn +import numpy as np + + +# Define our expected input types +class Example(BaseModel): + features: List[List[float]] + + +# Create a function that we can use to pass our inference function +# to the endpoints during initialization. +def make_endpoints(r_inference_func): + app = FastAPI() + + @app.get("/ping") + async def check_health(): + return {"Status": "Alive"} + + @app.post("/invocations") + async def read_item(input: Example): + output = r_inference_func(np.array(input.features)) + return {"output": output} + + return app + + +# A function we can call from R to launch the FastAPI application +def run_app(app): + uvicorn.run(app, host="0.0.0.0", port=8080, log_level="info") diff --git a/r_examples/r_serving_with_fastapi/xgb.model b/r_examples/r_serving_with_fastapi/xgb.model new file mode 100644 index 0000000000..1898fcdf6e Binary files /dev/null and b/r_examples/r_serving_with_fastapi/xgb.model differ diff --git a/r_examples/r_serving_with_plumber/Dockerfile b/r_examples/r_serving_with_plumber/Dockerfile new file mode 100644 index 0000000000..a00c6aa3ea --- /dev/null +++ b/r_examples/r_serving_with_plumber/Dockerfile @@ -0,0 +1,20 @@ +FROM r-base:3.6.3 + +MAINTAINER Amazon SageMaker Examples + +RUN apt-get -y update && apt-get install -y --no-install-recommends \ + wget \ + apt-transport-https \ + ca-certificates \ + libcurl4-openssl-dev \ + libsodium-dev + +RUN R -e "install.packages(c('xgboost','plumber'), repos='https://cloud.r-project.org')" + +COPY xgb.model /opt/ml/xgb.model +COPY endpoints.R /opt/ml/endpoints.R +COPY deploy.R /opt/ml/deploy.R + +WORKDIR /opt/ml + +ENTRYPOINT ["/usr/bin/Rscript", "/opt/ml/deploy.R", "--no-save"] diff --git a/r_examples/r_serving_with_plumber/Plumber Example.ipynb b/r_examples/r_serving_with_plumber/Plumber Example.ipynb new file mode 100644 index 0000000000..1030638dcf --- /dev/null +++ b/r_examples/r_serving_with_plumber/Plumber Example.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# R Serving with Plumber" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dockerfile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* The Dockerfile defines the environment in which our server will be executed.\n", + "* Below, you can see that the entrypoint for our container will be [deploy.R](deploy.R)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat Dockerfile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Code: deploy.R\n", + "\n", + "The **deploy.R** script handles the following steps:\n", + "* Loads the R libraries used by the server.\n", + "* Loads a pretrained `xgboost` model that has been trained on the classical [Iris](https://archive.ics.uci.edu/ml/datasets/iris) dataset.\n", + " * Dua, D. and Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.\n", + "* Defines an inference function that takes a matrix of iris features and returns predictions for those iris examples.\n", + "* Finally, it imports the [endpoints.R](endpoints.R) script and launches the Plumber server app using those endpoint definitions.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat deploy.R" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Code: endpoints.R" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**endpoints.R** defines two routes:\n", + "* `/ping` returns a string 'Alive' to indicate that the application is healthy\n", + "* `/invocations` applies the previously defined inference function to the input features from the request body\n", + "\n", + "For more information about the requirements for building your own inference container, see:\n", + "[Use Your Own Inference Code with Hosting Services](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat endpoints.R" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Build the Serving Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "!docker build -t r-plumber ." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch the Serving Container" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!echo \"Launching Plumber\"\n", + "!docker run -d --rm -p 5000:8080 r-plumber\n", + "!echo \"Waiting for the server to start..\" && sleep 10" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker container list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Simple Python Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from tqdm import tqdm\n", + "import pandas as pd\n", + "\n", + "pd.set_option(\"display.max_rows\", 500)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_predictions(examples, instance=requests, port=5000):\n", + " payload = {\"features\": examples}\n", + " return instance.post(f\"http://127.0.0.1:{port}/invocations\", json=payload)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_health(instance=requests, port=5000):\n", + " instance.get(f\"http://127.0.0.1:{port}/ping\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Example Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's define example inputs from the Iris dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "column_names = [\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\", \"Label\"]\n", + "iris = pd.read_csv(\n", + " \"s3://sagemaker-sample-files/datasets/tabular/iris/iris.data\", names=column_names\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris_features = iris[[\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "example_inputs = iris_features.values.tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plumber" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "predicted = get_predictions(example_inputs).json()[\"output\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris[\"predicted\"] = predicted" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Stop All Serving Containers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will shut down the serving container we launched for the test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker kill $(docker ps -q)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/r_examples/r_serving_with_plumber/deploy.R b/r_examples/r_serving_with_plumber/deploy.R new file mode 100644 index 0000000000..b15b24ef72 --- /dev/null +++ b/r_examples/r_serving_with_plumber/deploy.R @@ -0,0 +1,16 @@ +library(xgboost) +library(plumber) +library(jsonlite) + +# load a pretrained xgboost model +bst <- xgb.load("xgb.model") + +# create a closure around our xgboost model and input data processing +inference <- function(x){ + ds <- xgb.DMatrix(data = x ) + output <- predict(bst, ds) + list(output=output) +} + +app <- plumb('endpoints.R') +app$run(host='0.0.0.0', port=8080) diff --git a/r_examples/r_serving_with_plumber/endpoints.R b/r_examples/r_serving_with_plumber/endpoints.R new file mode 100644 index 0000000000..529763866b --- /dev/null +++ b/r_examples/r_serving_with_plumber/endpoints.R @@ -0,0 +1,20 @@ + +#' Ping to show server is there +#' @get /ping +function() { + return('Alive') +} + + +#' Parse input and return prediction from model +#' @param req The http request sent +#' @post /invocations +function(req) { + + # Read in data + input_json <- fromJSON(req$postBody) + output <- inference(input_json$features) + # Return prediction + return(output) + +} diff --git a/r_examples/r_serving_with_plumber/xgb.model b/r_examples/r_serving_with_plumber/xgb.model new file mode 100644 index 0000000000..1898fcdf6e Binary files /dev/null and b/r_examples/r_serving_with_plumber/xgb.model differ diff --git a/r_examples/r_serving_with_restrserve/Dockerfile b/r_examples/r_serving_with_restrserve/Dockerfile new file mode 100644 index 0000000000..69dc88b8c2 --- /dev/null +++ b/r_examples/r_serving_with_restrserve/Dockerfile @@ -0,0 +1,12 @@ +FROM r-base:3.6.3 + +MAINTAINER Amazon SageMaker Examples + +RUN R -e "install.packages(c('RestRserve','xgboost','dplyr'), repos='https://cloud.r-project.org')" + +COPY xgb.model /opt/ml/xgb.model +COPY restrserve.R /opt/ml/restrserve.R + +WORKDIR /opt/ml + +ENTRYPOINT ["/usr/bin/Rscript", "/opt/ml/restrserve.R", "--no-save"] diff --git a/r_examples/r_serving_with_restrserve/RestRServe Example.ipynb b/r_examples/r_serving_with_restrserve/RestRServe Example.ipynb new file mode 100644 index 0000000000..bfe1fcfa6e --- /dev/null +++ b/r_examples/r_serving_with_restrserve/RestRServe Example.ipynb @@ -0,0 +1,269 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# R Serving with RestRserve" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dockerfile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* The Dockerfile defines the environment in which our server will be executed.\n", + "* Below, you can see that the entry point for our container will be `restrserve.R`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat Dockerfile" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Code: restrserve.R\n", + "\n", + "Script `restrserve.R` handles the following steps\n", + "* Loads the R libraries used by the server.\n", + "* Loads a pretrained `xgboost` model that has been trained on the classical [Iris](https://archive.ics.uci.edu/ml/datasets/iris) dataset.\n", + " * Dua, D. and Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.\n", + "* Defines an inference function that takes a matrix of iris features and returns predictions for those iris examples.\n", + "* Defines two routes:\n", + " * `/ping` returns a string 'Alive' to indicate that the application is healthy\n", + " * `/invocations` applies the previously defined inference function to the input features from the request body\n", + "* Launches the RestRserve serving application." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pycat restrserve.R" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Build the Serving Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "!docker build -t r-restrserve ." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch the Serving Container" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!echo \"Launching RestRServer\"\n", + "!docker run -d --rm -p 5000:8080 r-restrserve\n", + "!echo \"Waiting for the server to start..\" && sleep 10" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker container list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Simple Python Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from tqdm import tqdm\n", + "import pandas as pd\n", + "\n", + "pd.set_option(\"display.max_rows\", 500)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_predictions(examples, instance=requests, port=5000):\n", + " payload = {\"features\": examples}\n", + " return instance.post(f\"http://127.0.0.1:{port}/invocations\", json=payload)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_health(instance=requests, port=5000):\n", + " instance.get(f\"http://127.0.0.1:{port}/ping\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Example Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's define example inputs from the Iris dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "column_names = [\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\", \"Label\"]\n", + "iris = pd.read_csv(\n", + " \"s3://sagemaker-sample-files/datasets/tabular/iris/iris.data\", names=column_names\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris_features = iris[[\"Sepal.Length\", \"Sepal.Width\", \"Petal.Length\", \"Petal.Width\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "example_inputs = iris_features.values.tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plumber" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "predicted = get_predictions(example_inputs).json()[\"output\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris[\"predicted\"] = predicted" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "iris" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Stop All Serving Containers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will shut down the serving container we launched for the test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker kill $(docker ps -q)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/r_examples/r_serving_with_restrserve/restrserve.R b/r_examples/r_serving_with_restrserve/restrserve.R new file mode 100644 index 0000000000..f3ec5cb482 --- /dev/null +++ b/r_examples/r_serving_with_restrserve/restrserve.R @@ -0,0 +1,31 @@ +library(xgboost) +library(RestRserve) + +# load a pretrained xgboost model +bst <- xgb.load("xgb.model") + +# create a closure around our xgboost model and input data processing +inference <- function(x){ + ds <- xgb.DMatrix(data = x ) + output <- predict(bst, ds) + list(output=output) +} +app = Application$new() + +app$add_get( + path = "/ping", + FUN = function(request, response) { + response$set_body(list(Status = "Alive")) + }) + +app$add_post( + path = "/invocations", + FUN = function(request, response) { + result = inference(do.call(rbind,request$body$features)) + response$set_content_type("application/json") + response$set_body(result) + }) + + +backend = BackendRserve$new() +backend$start(app, http_port = 8080) diff --git a/r_examples/r_serving_with_restrserve/xgb.model b/r_examples/r_serving_with_restrserve/xgb.model new file mode 100644 index 0000000000..1898fcdf6e Binary files /dev/null and b/r_examples/r_serving_with_restrserve/xgb.model differ diff --git a/reinforcement_learning/common/markdown_helper.py b/reinforcement_learning/common/markdown_helper.py index 3d0cb3051f..8a1302a1bc 100644 --- a/reinforcement_learning/common/markdown_helper.py +++ b/reinforcement_learning/common/markdown_helper.py @@ -89,8 +89,8 @@ def generate_help_for_robomaker_all_permissions(role): text += ( "3. Go to JSON tab, add the following JSON blob to the `Statement` list and save policy:\n" ) - text += """```json - { + text += f"""```json + {{ "Effect": "Allow", "Action": [ "robomaker:CreateSimulationApplication", @@ -104,31 +104,29 @@ def generate_help_for_robomaker_all_permissions(role): "Resource": [ "*" ] - }, - { + }}, + {{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", - "Condition": { - "StringEquals": { + "Condition": {{ + "StringEquals": {{ "iam:AWSServiceName": "robomaker.amazonaws.com" - } - } - }, - { + }} + }} + }}, + {{ "Effect": "Allow", - "Action": [ - "iam:PassRole" - ], - "Resource": "*", - "Condition": { - "StringEquals": { + "Action": "iam:PassRole", + "Resource": \"{role}\", + "Condition": {{ + "StringEquals": {{ "iam:PassedToService": [ "robomaker.amazonaws.com" ] - } - } - },```\n""" + }} + }} + }},```\n""" text += ( "4. Next, go to the `Trust relationships tab` and click on `Edit Trust Relationship.` \n" ) @@ -212,8 +210,8 @@ def generate_help_for_experiment_manager_permissions(role): text += ( "3. Go to JSON tab, add the following JSON blob to the `Statement` list and save policy:\n" ) - text += """```json - { + text += f"""```json + {{ "Effect": "Allow", "Action": [ "cloudformation:DescribeStacks", @@ -232,7 +230,6 @@ def generate_help_for_experiment_manager_permissions(role): "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:DeleteRole", - "iam:PassRole", "cloudwatch:PutDashboard", "firehose:ListDeliveryStreams", "firehose:DeleteDeliveryStream", @@ -250,6 +247,11 @@ def generate_help_for_experiment_manager_permissions(role): "Resource": [ "*" ] - },```\n""" + }}, + {{ + "Effect": "Allow", + "Action": "iam:PassRole", + "Resource": \"{role}\" + }}```\n""" text += "4. Now wait for a few minutes before executing this cell again!" return text diff --git a/sagemaker-debugger/debugger_interactive_analysis_profiling/interactive_analysis_profiling_data.ipynb b/sagemaker-debugger/debugger_interactive_analysis_profiling/interactive_analysis_profiling_data.ipynb index 4daacc52fa..52c309e3c8 100644 --- a/sagemaker-debugger/debugger_interactive_analysis_profiling/interactive_analysis_profiling_data.ipynb +++ b/sagemaker-debugger/debugger_interactive_analysis_profiling/interactive_analysis_profiling_data.ipynb @@ -171,17 +171,10 @@ "metadata": {}, "outputs": [], "source": [ - "import pip\n", + "import sys\n", "\n", - "\n", - "def import_or_install(package):\n", - " try:\n", - " __import__(package)\n", - " except ImportError:\n", - " pip.main([\"install\", package])\n", - "\n", - "\n", - "import_or_install(\"smdebug\")" + "!{sys.executable} -m pip install \"smdebug\"\n", + "!{sys.executable} -m pip install \"bokeh==2.3.0\"" ] }, { @@ -194,7 +187,8 @@ "\n", "tj = TrainingJob(training_job_name, region)\n", "\n", - "tj.wait_for_sys_profiling_data_to_be_available()" + "tj.wait_for_sys_profiling_data_to_be_available()\n", + "tj.wait_for_framework_profiling_data_to_be_available()" ] }, { @@ -504,83 +498,9 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2021-04-29 07:02:03.203 ip-172-16-71-4:29196 INFO metrics_reader_base.py:134] Getting 9 event files\n", - "Found 76397 system metrics events from timestamp_in_us:0 to timestamp_in_us:1619676600000000\n", - "select events:['.*']\n", - "select dimensions:['CPU', 'GPU']\n", - "filtered_events:{'cpu23', 'cpu20', 'cpu19', 'cpu26', 'cpu18', 'cpu2', 'WriteThroughputInBytesPerSecond', 'cpu8', 'gpu3', 'cpu10', 'cpu16', 'ReceiveBytesPerSecond', 'TransmitBytesPerSecond', 'cpu17', 'gpu1', 'cpu13', 'cpu29', 'cpu3', 'IOPS', 'cpu22', 'MemoryUsedPercent', 'cpu11', 'cpu12', 'cpu25', 'cpu24', 'cpu1', 'cpu28', 'cpu9', 'gpu2', 'gpu0', 'cpu21', 'cpu27', 'ReadThroughputInBytesPerSecond', 'total', 'cpu5', 'cpu15', 'cpu4', 'cpu30', 'cpu7', 'cpu31', 'cpu14', 'cpu6', 'cpu0'}\n", - "filtered_dimensions:{'CPUUtilization-nodeid:algo-1', 'GPUUtilization-nodeid:algo-1', 'GPUMemoryUtilization-nodeid:algo-1'}\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": [ - "(function(root) {\n", - " function embed_document(root) {\n", - " \n", - " var docs_json = {\"d9af2108-bcb5-4ca5-a49f-df3aa06ee385\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"3332\"},{\"id\":\"3330\"}]},\"id\":\"3333\",\"type\":\"Column\"},{\"attributes\":{\"below\":[{\"id\":\"2502\"}],\"center\":[{\"id\":\"2505\"},{\"id\":\"2509\"}],\"left\":[{\"id\":\"2506\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2528\"}],\"title\":{\"id\":\"3221\"},\"toolbar\":{\"id\":\"2517\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2494\"},\"x_scale\":{\"id\":\"2498\"},\"y_range\":{\"id\":\"2496\"},\"y_scale\":{\"id\":\"2500\"}},\"id\":\"2493\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2350\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3263\"},\"ticker\":{\"id\":\"2655\"}},\"id\":\"2654\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"2728\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2731\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"2798\"}],\"center\":[{\"id\":\"2801\"},{\"id\":\"2805\"}],\"left\":[{\"id\":\"2802\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2824\"}],\"title\":{\"id\":\"3301\"},\"toolbar\":{\"id\":\"2813\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2790\"},\"x_scale\":{\"id\":\"2794\"},\"y_range\":{\"id\":\"2792\"},\"y_scale\":{\"id\":\"2796\"}},\"id\":\"2789\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis\":{\"id\":\"1429\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1432\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2927\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2352\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2531\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2655\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"2783\"}},\"id\":\"2788\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2933\"},\"ticker\":{\"id\":\"1434\"}},\"id\":\"1433\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2494\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2886\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"2775\"}},\"id\":\"2771\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu7\",\"formatter\":{\"id\":\"3185\"},\"ticker\":{\"id\":\"2355\"}},\"id\":\"2354\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"2654\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2657\",\"type\":\"Grid\"},{\"attributes\":{\"start\":0},\"id\":\"2496\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1434\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2774\",\"type\":\"HelpTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2901\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2790\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2355\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2732\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2769\",\"type\":\"PanTool\"},{\"attributes\":{\"axis\":{\"id\":\"1433\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1436\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"2354\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2357\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2498\",\"type\":\"LinearScale\"},{\"attributes\":{\"start\":0},\"id\":\"2792\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"2894\"}},\"id\":\"2899\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2733\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1451\"},\"glyph\":{\"id\":\"1453\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1454\"},\"selection_glyph\":null,\"view\":{\"id\":\"1456\"}},\"id\":\"1455\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2500\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3183\"},\"ticker\":{\"id\":\"2359\"}},\"id\":\"2358\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2794\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2658\",\"type\":\"PanTool\"},{\"attributes\":{\"overlay\":{\"id\":\"2738\"}},\"id\":\"2734\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu0\",\"formatter\":{\"id\":\"3225\"},\"ticker\":{\"id\":\"2503\"}},\"id\":\"2502\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2796\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1517\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[588,111,55,41,32,28,15,15,13,8,6,7,7,4,2,2,4,1,3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"2987\"},\"selection_policy\":{\"id\":\"2988\"}},\"id\":\"1636\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2359\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2659\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2735\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2894\"},\"glyph\":{\"id\":\"2896\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2897\"},\"selection_glyph\":null,\"view\":{\"id\":\"2899\"}},\"id\":\"2898\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"children\":[[{\"id\":\"1309\"},0,0],[{\"id\":\"1346\"},0,1],[{\"id\":\"1383\"},0,2],[{\"id\":\"1420\"},0,3],[{\"id\":\"1457\"},1,0],[{\"id\":\"1494\"},1,1],[{\"id\":\"1531\"},1,2],[{\"id\":\"1568\"},1,3],[{\"id\":\"1605\"},2,0],[{\"id\":\"1642\"},2,1],[{\"id\":\"1679\"},2,2],[{\"id\":\"1716\"},2,3],[{\"id\":\"1753\"},3,0],[{\"id\":\"1790\"},3,1],[{\"id\":\"1827\"},3,2],[{\"id\":\"1864\"},3,3],[{\"id\":\"1901\"},4,0],[{\"id\":\"1938\"},4,1],[{\"id\":\"1975\"},4,2],[{\"id\":\"2012\"},4,3],[{\"id\":\"2049\"},5,0],[{\"id\":\"2086\"},5,1],[{\"id\":\"2123\"},5,2],[{\"id\":\"2160\"},5,3],[{\"id\":\"2197\"},6,0],[{\"id\":\"2234\"},6,1],[{\"id\":\"2271\"},6,2],[{\"id\":\"2308\"},6,3],[{\"id\":\"2345\"},7,0],[{\"id\":\"2382\"},7,1],[{\"id\":\"2419\"},7,2],[{\"id\":\"2456\"},7,3],[{\"id\":\"2493\"},8,0],[{\"id\":\"2530\"},8,1],[{\"id\":\"2567\"},8,2],[{\"id\":\"2604\"},8,3],[{\"id\":\"2641\"},9,0],[{\"id\":\"2678\"},9,1],[{\"id\":\"2715\"},9,2],[{\"id\":\"2752\"},9,3],[{\"id\":\"2789\"},10,0],[{\"id\":\"2826\"},10,1],[{\"id\":\"2863\"},10,2]]},\"id\":\"3330\",\"type\":\"GridBox\"},{\"attributes\":{},\"id\":\"1437\",\"type\":\"PanTool\"},{\"attributes\":{\"axis\":{\"id\":\"2358\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2361\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"GPUMemoryUtilization-nodeid:algo-1_gpu2\",\"formatter\":{\"id\":\"3305\"},\"ticker\":{\"id\":\"2799\"}},\"id\":\"2798\",\"type\":\"LinearAxis\"},{\"attributes\":{\"overlay\":{\"id\":\"2664\"}},\"id\":\"2660\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2736\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis\":{\"id\":\"2502\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2505\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1438\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2903\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2799\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2661\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2737\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3223\"},\"ticker\":{\"id\":\"2507\"}},\"id\":\"2506\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"2798\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2801\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2905\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"2376\"}},\"id\":\"2381\",\"type\":\"CDSView\"},{\"attributes\":{\"below\":[{\"id\":\"2391\"}],\"center\":[{\"id\":\"2394\"},{\"id\":\"2398\"}],\"left\":[{\"id\":\"2395\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2417\"}],\"title\":{\"id\":\"3191\"},\"toolbar\":{\"id\":\"2406\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2383\"},\"x_scale\":{\"id\":\"2387\"},\"y_range\":{\"id\":\"2385\"},\"y_scale\":{\"id\":\"2389\"}},\"id\":\"2382\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2662\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2507\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2732\"},{\"id\":\"2733\"},{\"id\":\"2734\"},{\"id\":\"2735\"},{\"id\":\"2736\"},{\"id\":\"2737\"}]},\"id\":\"2739\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3303\"},\"ticker\":{\"id\":\"2803\"}},\"id\":\"2802\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1454\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2907\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2362\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2663\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"2506\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2509\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2803\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2908\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2363\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2773\",\"type\":\"ResetTool\"},{\"attributes\":{\"source\":{\"id\":\"1451\"}},\"id\":\"1456\",\"type\":\"CDSView\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2658\"},{\"id\":\"2659\"},{\"id\":\"2660\"},{\"id\":\"2661\"},{\"id\":\"2662\"},{\"id\":\"2663\"}]},\"id\":\"2665\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"2802\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2805\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2928\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"below\":[{\"id\":\"2539\"}],\"center\":[{\"id\":\"2542\"},{\"id\":\"2546\"}],\"left\":[{\"id\":\"2543\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2565\"}],\"title\":{\"id\":\"3231\"},\"toolbar\":{\"id\":\"2554\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2531\"},\"x_scale\":{\"id\":\"2535\"},\"y_range\":{\"id\":\"2533\"},\"y_scale\":{\"id\":\"2537\"}},\"id\":\"2530\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"overlay\":{\"id\":\"2368\"}},\"id\":\"2364\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2772\",\"type\":\"SaveTool\"},{\"attributes\":{\"below\":[{\"id\":\"1466\"}],\"center\":[{\"id\":\"1469\"},{\"id\":\"1473\"}],\"left\":[{\"id\":\"1470\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1492\"}],\"title\":{\"id\":\"2941\"},\"toolbar\":{\"id\":\"1481\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1458\"},\"x_scale\":{\"id\":\"1462\"},\"y_range\":{\"id\":\"1460\"},\"y_scale\":{\"id\":\"1464\"}},\"id\":\"1457\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2931\",\"type\":\"Title\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1490\",\"type\":\"Quad\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[829,2,1,1,10,102,8,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3287\"},\"selection_policy\":{\"id\":\"3288\"}},\"id\":\"2746\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2695\"},{\"id\":\"2696\"},{\"id\":\"2697\"},{\"id\":\"2698\"},{\"id\":\"2699\"},{\"id\":\"2700\"}]},\"id\":\"2702\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2365\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2848\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2510\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1458\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2738\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2933\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2366\",\"type\":\"ResetTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2746\"},\"glyph\":{\"id\":\"2748\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2749\"},\"selection_glyph\":null,\"view\":{\"id\":\"2751\"}},\"id\":\"2750\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2701\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2511\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"start\":0},\"id\":\"1460\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2923\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2935\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2367\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2806\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2664\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"2516\"}},\"id\":\"2512\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1462\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2749\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2937\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2807\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2672\"},\"glyph\":{\"id\":\"2674\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2675\"},\"selection_glyph\":null,\"view\":{\"id\":\"2677\"}},\"id\":\"2676\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2918\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2513\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1464\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[569,79,40,27,21,21,22,18,13,5,11,8,8,1,3,2,3,4,1,0,3,1,0,1,1,0,0,0,0,1,0,0,2,0,0,0,0,1,1,0,0,0,2,0,1,0,1,0,4]},\"selected\":{\"id\":\"3207\"},\"selection_policy\":{\"id\":\"3208\"}},\"id\":\"2450\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"2746\"}},\"id\":\"2751\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"2812\"}},\"id\":\"2808\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2675\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2938\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2514\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu18\",\"formatter\":{\"id\":\"2945\"},\"ticker\":{\"id\":\"1467\"}},\"id\":\"1466\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2941\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"2765\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2768\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"2761\"}],\"center\":[{\"id\":\"2764\"},{\"id\":\"2768\"}],\"left\":[{\"id\":\"2765\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2787\"}],\"title\":{\"id\":\"3291\"},\"toolbar\":{\"id\":\"2776\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2753\"},\"x_scale\":{\"id\":\"2757\"},\"y_range\":{\"id\":\"2755\"},\"y_scale\":{\"id\":\"2759\"}},\"id\":\"2752\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2809\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2783\"},\"glyph\":{\"id\":\"2785\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2786\"},\"selection_glyph\":null,\"view\":{\"id\":\"2788\"}},\"id\":\"2787\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2515\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2943\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1467\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"2672\"}},\"id\":\"2677\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2810\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2753\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2748\",\"type\":\"Quad\"},{\"attributes\":{\"axis\":{\"id\":\"1466\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1469\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"2709\"},\"glyph\":{\"id\":\"2711\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2712\"},\"selection_glyph\":null,\"view\":{\"id\":\"2714\"}},\"id\":\"2713\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2945\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2540\",\"type\":\"BasicTicker\"},{\"attributes\":{\"below\":[{\"id\":\"2687\"}],\"center\":[{\"id\":\"2690\"},{\"id\":\"2694\"}],\"left\":[{\"id\":\"2691\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2713\"}],\"title\":{\"id\":\"3271\"},\"toolbar\":{\"id\":\"2702\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2679\"},\"x_scale\":{\"id\":\"2683\"},\"y_range\":{\"id\":\"2681\"},\"y_scale\":{\"id\":\"2685\"}},\"id\":\"2678\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2510\"},{\"id\":\"2511\"},{\"id\":\"2512\"},{\"id\":\"2513\"},{\"id\":\"2514\"},{\"id\":\"2515\"}]},\"id\":\"2517\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2811\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2943\"},\"ticker\":{\"id\":\"1471\"}},\"id\":\"1470\",\"type\":\"LinearAxis\"},{\"attributes\":{\"start\":0},\"id\":\"2755\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2674\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2947\",\"type\":\"Selection\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2921\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2679\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2757\",\"type\":\"LinearScale\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2806\"},{\"id\":\"2807\"},{\"id\":\"2808\"},{\"id\":\"2809\"},{\"id\":\"2810\"},{\"id\":\"2811\"}]},\"id\":\"2813\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1471\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2948\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2537\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2759\",\"type\":\"LinearScale\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2843\"},{\"id\":\"2844\"},{\"id\":\"2845\"},{\"id\":\"2846\"},{\"id\":\"2847\"},{\"id\":\"2848\"}]},\"id\":\"2850\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"1470\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1473\",\"type\":\"Grid\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2951\",\"type\":\"Title\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2849\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis\":{\"id\":\"2691\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2694\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"GPUMemoryUtilization-nodeid:algo-1_gpu1\",\"formatter\":{\"id\":\"3295\"},\"ticker\":{\"id\":\"2762\"}},\"id\":\"2761\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[829,2,1,2,8,93,19,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3297\"},\"selection_policy\":{\"id\":\"3298\"}},\"id\":\"2783\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1606\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2925\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2953\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[826,3,1,0,0,0,1,0,1,0,0,0,2,0,0,1,7,19,33,54,6,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3277\"},\"selection_policy\":{\"id\":\"3278\"}},\"id\":\"2709\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2368\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2712\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2762\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2955\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"2724\"}],\"center\":[{\"id\":\"2727\"},{\"id\":\"2731\"}],\"left\":[{\"id\":\"2728\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2750\"}],\"title\":{\"id\":\"3281\"},\"toolbar\":{\"id\":\"2739\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2716\"},\"x_scale\":{\"id\":\"2720\"},\"y_range\":{\"id\":\"2718\"},\"y_scale\":{\"id\":\"2722\"}},\"id\":\"2715\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2383\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"2761\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2764\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"1614\"}],\"center\":[{\"id\":\"1617\"},{\"id\":\"1621\"}],\"left\":[{\"id\":\"1618\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1640\"}],\"title\":{\"id\":\"2981\"},\"toolbar\":{\"id\":\"1629\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1606\"},\"x_scale\":{\"id\":\"1610\"},\"y_range\":{\"id\":\"1608\"},\"y_scale\":{\"id\":\"1612\"}},\"id\":\"1605\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"start\":0},\"id\":\"2385\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2812\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[600,97,57,46,29,23,12,14,14,9,6,10,8,1,2,2,1,1,0,2,0,0,1,0,1,2,1,0,0,0,0,0,0,0,0,0,3,0,1,0,1,2,1,1,1,2,0,1,0]},\"selected\":{\"id\":\"2947\"},\"selection_policy\":{\"id\":\"2948\"}},\"id\":\"1488\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1474\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"GPUUtilization-nodeid:algo-1_gpu3\",\"formatter\":{\"id\":\"3235\"},\"ticker\":{\"id\":\"2540\"}},\"id\":\"2539\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3293\"},\"ticker\":{\"id\":\"2766\"}},\"id\":\"2765\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2387\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2716\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"2820\"},\"glyph\":{\"id\":\"2822\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2823\"},\"selection_glyph\":null,\"view\":{\"id\":\"2825\"}},\"id\":\"2824\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2958\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1475\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2535\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2766\",\"type\":\"BasicTicker\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2961\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2389\",\"type\":\"LinearScale\"},{\"attributes\":{\"start\":0},\"id\":\"2718\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2823\",\"type\":\"Quad\"},{\"attributes\":{\"overlay\":{\"id\":\"1480\"}},\"id\":\"1476\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2770\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2516\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu31\",\"formatter\":{\"id\":\"3195\"},\"ticker\":{\"id\":\"2392\"}},\"id\":\"2391\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2720\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2963\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"2820\"}},\"id\":\"2825\",\"type\":\"CDSView\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2769\"},{\"id\":\"2770\"},{\"id\":\"2771\"},{\"id\":\"2772\"},{\"id\":\"2773\"},{\"id\":\"2774\"}]},\"id\":\"2776\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1477\",\"type\":\"SaveTool\"},{\"attributes\":{\"start\":0},\"id\":\"2533\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2722\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2965\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2392\",\"type\":\"BasicTicker\"},{\"attributes\":{\"below\":[{\"id\":\"2835\"}],\"center\":[{\"id\":\"2838\"},{\"id\":\"2842\"}],\"left\":[{\"id\":\"2839\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2861\"}],\"title\":{\"id\":\"3311\"},\"toolbar\":{\"id\":\"2850\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2827\"},\"x_scale\":{\"id\":\"2831\"},\"y_range\":{\"id\":\"2829\"},\"y_scale\":{\"id\":\"2833\"}},\"id\":\"2826\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1478\",\"type\":\"ResetTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[829,2,1,1,10,101,9,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3317\"},\"selection_policy\":{\"id\":\"3318\"}},\"id\":\"2857\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis\":{\"id\":\"2391\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2394\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"GPUMemoryUtilization-nodeid:algo-1_gpu3\",\"formatter\":{\"id\":\"3285\"},\"ticker\":{\"id\":\"2725\"}},\"id\":\"2724\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2822\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2917\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1479\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"2539\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2542\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2827\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3193\"},\"ticker\":{\"id\":\"2396\"}},\"id\":\"2395\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2725\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2967\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2968\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3233\"},\"ticker\":{\"id\":\"2544\"}},\"id\":\"2543\",\"type\":\"LinearAxis\"},{\"attributes\":{\"start\":0},\"id\":\"2829\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2859\",\"type\":\"Quad\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2971\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"2724\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2727\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2775\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2396\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1474\"},{\"id\":\"1475\"},{\"id\":\"1476\"},{\"id\":\"1477\"},{\"id\":\"1478\"},{\"id\":\"1479\"}]},\"id\":\"1481\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2831\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2544\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"2395\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2398\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3283\"},\"ticker\":{\"id\":\"2729\"}},\"id\":\"2728\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2973\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1599\"}},\"id\":\"1604\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"2543\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2546\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2833\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2785\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1511\"},{\"id\":\"1512\"},{\"id\":\"1513\"},{\"id\":\"1514\"},{\"id\":\"1515\"},{\"id\":\"1516\"}]},\"id\":\"1518\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2975\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2729\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"GPUMemoryUtilization-nodeid:algo-1_gpu0\",\"formatter\":{\"id\":\"3315\"},\"ticker\":{\"id\":\"2836\"}},\"id\":\"2835\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[675,89,32,24,15,20,21,11,15,10,7,7,6,3,2,0,4,0,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"2957\"},\"selection_policy\":{\"id\":\"2958\"}},\"id\":\"1525\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[680,78,46,23,19,24,15,18,8,8,7,8,6,7,3,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3197\"},\"selection_policy\":{\"id\":\"3198\"}},\"id\":\"2413\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[824,3,2,1,0,0,2,0,0,0,0,1,0,1,2,4,7,13,21,58,14,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3237\"},\"selection_policy\":{\"id\":\"3238\"}},\"id\":\"2561\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2786\",\"type\":\"Quad\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3121\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2977\",\"type\":\"Selection\"},{\"attributes\":{\"below\":[{\"id\":\"2280\"}],\"center\":[{\"id\":\"2283\"},{\"id\":\"2287\"}],\"left\":[{\"id\":\"2284\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2306\"}],\"title\":{\"id\":\"3161\"},\"toolbar\":{\"id\":\"2295\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2272\"},\"x_scale\":{\"id\":\"2276\"},\"y_range\":{\"id\":\"2274\"},\"y_scale\":{\"id\":\"2278\"}},\"id\":\"2271\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu17\",\"formatter\":{\"id\":\"2995\"},\"ticker\":{\"id\":\"1652\"}},\"id\":\"1651\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3123\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2978\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2294\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1652\",\"type\":\"BasicTicker\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2981\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3125\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis\":{\"id\":\"1651\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1654\",\"type\":\"Grid\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2305\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2251\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2983\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3127\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2993\"},\"ticker\":{\"id\":\"1656\"}},\"id\":\"1655\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2252\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2985\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3128\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1656\",\"type\":\"BasicTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"2257\"}},\"id\":\"2253\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3131\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2987\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1655\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1658\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2254\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"3133\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2988\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2255\",\"type\":\"ResetTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2991\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3135\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1673\"}},\"id\":\"1678\",\"type\":\"CDSView\"},{\"attributes\":{\"below\":[{\"id\":\"1688\"}],\"center\":[{\"id\":\"1691\"},{\"id\":\"1695\"}],\"left\":[{\"id\":\"1692\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1714\"}],\"title\":{\"id\":\"3001\"},\"toolbar\":{\"id\":\"1703\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1680\"},\"x_scale\":{\"id\":\"1684\"},\"y_range\":{\"id\":\"1682\"},\"y_scale\":{\"id\":\"1686\"}},\"id\":\"1679\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2256\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2993\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2503\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3137\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1659\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2995\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3138\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2251\"},{\"id\":\"2252\"},{\"id\":\"2253\"},{\"id\":\"2254\"},{\"id\":\"2255\"},{\"id\":\"2256\"}]},\"id\":\"2258\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1310\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1660\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3141\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2997\",\"type\":\"Selection\"},{\"attributes\":{\"overlay\":{\"id\":\"1665\"}},\"id\":\"1661\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"start\":0},\"id\":\"1312\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3143\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2998\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2288\"},{\"id\":\"2289\"},{\"id\":\"2290\"},{\"id\":\"2291\"},{\"id\":\"2292\"},{\"id\":\"2293\"}]},\"id\":\"2295\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1662\",\"type\":\"SaveTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3001\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3145\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"2302\"},\"glyph\":{\"id\":\"2304\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2305\"},\"selection_glyph\":null,\"view\":{\"id\":\"2307\"}},\"id\":\"2306\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1663\",\"type\":\"ResetTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2257\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"3003\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3147\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1664\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"3005\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3148\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"2265\"},\"glyph\":{\"id\":\"2267\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2268\"},\"selection_glyph\":null,\"view\":{\"id\":\"2270\"}},\"id\":\"2269\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3151\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3007\",\"type\":\"Selection\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1712\",\"type\":\"Quad\"},{\"attributes\":{\"source\":{\"id\":\"2265\"}},\"id\":\"2270\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1680\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3153\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3008\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"start\":0},\"id\":\"1756\",\"type\":\"DataRange1d\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3011\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3155\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2304\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2272\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1343\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3013\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3157\",\"type\":\"Selection\"},{\"attributes\":{\"below\":[{\"id\":\"1318\"}],\"center\":[{\"id\":\"1321\"},{\"id\":\"1325\"}],\"left\":[{\"id\":\"1322\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1344\"}],\"title\":{\"id\":\"2901\"},\"toolbar\":{\"id\":\"1333\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1310\"},\"x_scale\":{\"id\":\"1314\"},\"y_range\":{\"id\":\"1312\"},\"y_scale\":{\"id\":\"1316\"}},\"id\":\"1309\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2267\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3015\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3158\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1754\",\"type\":\"DataRange1d\"},{\"attributes\":{\"start\":0},\"id\":\"2274\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[667,98,31,26,15,21,20,18,14,9,13,6,3,4,0,1,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1]},\"selected\":{\"id\":\"2907\"},\"selection_policy\":{\"id\":\"2908\"}},\"id\":\"1340\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3161\",\"type\":\"Title\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1342\",\"type\":\"Quad\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[327,37,20,15,12,4,1,6,2,2,2,2,4,3,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3027\"},\"selection_policy\":{\"id\":\"3028\"}},\"id\":\"1784\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3017\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1758\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2276\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1665\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"3163\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3018\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2278\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1314\",\"type\":\"LinearScale\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3021\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3165\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"start\":0},\"id\":\"1682\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu4\",\"formatter\":{\"id\":\"3165\"},\"ticker\":{\"id\":\"2281\"}},\"id\":\"2280\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1316\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3023\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3167\",\"type\":\"Selection\"},{\"attributes\":{\"overlay\":{\"id\":\"1332\"}},\"id\":\"1328\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1684\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2281\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu23\",\"formatter\":{\"id\":\"2905\"},\"ticker\":{\"id\":\"1319\"}},\"id\":\"1318\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3025\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3168\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1686\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"2280\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2283\",\"type\":\"Grid\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3171\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1319\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3027\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1329\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu13\",\"formatter\":{\"id\":\"3005\"},\"ticker\":{\"id\":\"1689\"}},\"id\":\"1688\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3163\"},\"ticker\":{\"id\":\"2285\"}},\"id\":\"2284\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1318\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1321\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3173\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3028\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1689\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2285\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2903\"},\"ticker\":{\"id\":\"1323\"}},\"id\":\"1322\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3031\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3175\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1330\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis\":{\"id\":\"1688\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1691\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"2284\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2287\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1323\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3033\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3177\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3003\"},\"ticker\":{\"id\":\"1693\"}},\"id\":\"1692\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1322\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1325\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3035\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2378\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3178\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1693\",\"type\":\"BasicTicker\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3181\",\"type\":\"Title\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1380\",\"type\":\"Quad\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[670,80,41,32,28,20,20,18,8,8,9,7,5,2,0,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3167\"},\"selection_policy\":{\"id\":\"3168\"}},\"id\":\"2302\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3037\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2695\",\"type\":\"PanTool\"},{\"attributes\":{\"axis\":{\"id\":\"1692\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1695\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2288\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"3183\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3038\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"below\":[{\"id\":\"1762\"}],\"center\":[{\"id\":\"1765\"},{\"id\":\"1769\"}],\"left\":[{\"id\":\"1766\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1788\"}],\"title\":{\"id\":\"3021\"},\"toolbar\":{\"id\":\"1777\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1754\"},\"x_scale\":{\"id\":\"1758\"},\"y_range\":{\"id\":\"1756\"},\"y_scale\":{\"id\":\"1760\"}},\"id\":\"1753\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2289\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3041\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3185\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"overlay\":{\"id\":\"1369\"}},\"id\":\"1365\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1331\",\"type\":\"HelpTool\"},{\"attributes\":{\"overlay\":{\"id\":\"2294\"}},\"id\":\"2290\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[552,82,41,32,27,21,17,23,15,13,11,7,6,3,3,3,2,1,2,0,2,0,1,1,1,1,0,0,0,1,0,1,1,0,0,0,1,0,1,2,0,1,0,0,0,0,2,1,3]},\"selected\":{\"id\":\"3007\"},\"selection_policy\":{\"id\":\"3008\"}},\"id\":\"1710\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3043\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1327\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"3187\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1326\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1696\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2291\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"3045\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3188\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1697\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2292\",\"type\":\"ResetTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3191\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3047\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2293\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"2132\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2135\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2836\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2698\",\"type\":\"SaveTool\"},{\"attributes\":{\"below\":[{\"id\":\"2317\"}],\"center\":[{\"id\":\"2320\"},{\"id\":\"2324\"}],\"left\":[{\"id\":\"2321\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2343\"}],\"title\":{\"id\":\"3171\"},\"toolbar\":{\"id\":\"2332\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2309\"},\"x_scale\":{\"id\":\"2313\"},\"y_range\":{\"id\":\"2311\"},\"y_scale\":{\"id\":\"2315\"}},\"id\":\"2308\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3123\"},\"ticker\":{\"id\":\"2137\"}},\"id\":\"2136\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"2835\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2838\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"2701\"}},\"id\":\"2697\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3313\"},\"ticker\":{\"id\":\"2840\"}},\"id\":\"2839\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2137\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1368\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2696\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"2136\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2139\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2840\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1443\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"2154\"},\"glyph\":{\"id\":\"2156\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2157\"},\"selection_glyph\":null,\"view\":{\"id\":\"2159\"}},\"id\":\"2158\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"2839\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2842\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1332\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2309\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2220\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2214\"},{\"id\":\"2215\"},{\"id\":\"2216\"},{\"id\":\"2217\"},{\"id\":\"2218\"},{\"id\":\"2219\"}]},\"id\":\"2221\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1347\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"2857\"}},\"id\":\"2862\",\"type\":\"CDSView\"},{\"attributes\":{\"start\":0},\"id\":\"2311\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1340\"}},\"id\":\"1345\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2896\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2140\",\"type\":\"PanTool\"},{\"attributes\":{\"below\":[{\"id\":\"1355\"}],\"center\":[{\"id\":\"1358\"},{\"id\":\"1362\"}],\"left\":[{\"id\":\"1359\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1381\"}],\"title\":{\"id\":\"2911\"},\"toolbar\":{\"id\":\"1370\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1347\"},\"x_scale\":{\"id\":\"1351\"},\"y_range\":{\"id\":\"1349\"},\"y_scale\":{\"id\":\"1353\"}},\"id\":\"1346\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2313\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2141\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2843\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1340\"},\"glyph\":{\"id\":\"1342\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1343\"},\"selection_glyph\":null,\"view\":{\"id\":\"1345\"}},\"id\":\"1344\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"1392\"}],\"center\":[{\"id\":\"1395\"},{\"id\":\"1399\"}],\"left\":[{\"id\":\"1396\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1418\"}],\"title\":{\"id\":\"2921\"},\"toolbar\":{\"id\":\"1407\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1384\"},\"x_scale\":{\"id\":\"1388\"},\"y_range\":{\"id\":\"1386\"},\"y_scale\":{\"id\":\"1390\"}},\"id\":\"1383\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2315\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2844\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu30\",\"formatter\":{\"id\":\"3175\"},\"ticker\":{\"id\":\"2318\"}},\"id\":\"2317\",\"type\":\"LinearAxis\"},{\"attributes\":{\"overlay\":{\"id\":\"2849\"}},\"id\":\"2845\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2157\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2318\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2846\",\"type\":\"SaveTool\"},{\"attributes\":{\"start\":0},\"id\":\"1349\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"2317\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2320\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"2154\"}},\"id\":\"2159\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2847\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1351\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3173\"},\"ticker\":{\"id\":\"2322\"}},\"id\":\"2321\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2193\",\"type\":\"Quad\"},{\"attributes\":{\"below\":[{\"id\":\"2169\"}],\"center\":[{\"id\":\"2172\"},{\"id\":\"2176\"}],\"left\":[{\"id\":\"2173\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2195\"}],\"title\":{\"id\":\"3131\"},\"toolbar\":{\"id\":\"2184\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2161\"},\"x_scale\":{\"id\":\"2165\"},\"y_range\":{\"id\":\"2163\"},\"y_scale\":{\"id\":\"2167\"}},\"id\":\"2160\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1353\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[642,93,33,28,27,17,14,9,13,9,9,11,4,5,1,2,2,3,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1]},\"selected\":{\"id\":\"2977\"},\"selection_policy\":{\"id\":\"2978\"}},\"id\":\"1599\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2156\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2322\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2860\",\"type\":\"Quad\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu20\",\"formatter\":{\"id\":\"2915\"},\"ticker\":{\"id\":\"1356\"}},\"id\":\"1355\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2161\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"2857\"},\"glyph\":{\"id\":\"2859\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2860\"},\"selection_glyph\":null,\"view\":{\"id\":\"2862\"}},\"id\":\"2861\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"2872\"}],\"center\":[{\"id\":\"2875\"},{\"id\":\"2879\"}],\"left\":[{\"id\":\"2876\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2898\"}],\"title\":{\"id\":\"3321\"},\"toolbar\":{\"id\":\"2887\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2864\"},\"x_scale\":{\"id\":\"2868\"},\"y_range\":{\"id\":\"2866\"},\"y_scale\":{\"id\":\"2870\"}},\"id\":\"2863\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis\":{\"id\":\"2321\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2324\",\"type\":\"Grid\"},{\"attributes\":{\"start\":0},\"id\":\"2163\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2864\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1356\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2362\"},{\"id\":\"2363\"},{\"id\":\"2364\"},{\"id\":\"2365\"},{\"id\":\"2366\"},{\"id\":\"2367\"}]},\"id\":\"2369\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"1355\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1358\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2165\",\"type\":\"LinearScale\"},{\"attributes\":{\"start\":0},\"id\":\"2866\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2913\"},\"ticker\":{\"id\":\"1360\"}},\"id\":\"1359\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2167\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2868\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[688,75,44,22,26,21,15,13,16,7,11,3,6,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3177\"},\"selection_policy\":{\"id\":\"3178\"}},\"id\":\"2339\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2325\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_total\",\"formatter\":{\"id\":\"3135\"},\"ticker\":{\"id\":\"2170\"}},\"id\":\"2169\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2870\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1360\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2326\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1359\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1362\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"GPUMemoryUtilization-nodeid:algo-1_total\",\"formatter\":{\"id\":\"3325\"},\"ticker\":{\"id\":\"2873\"}},\"id\":\"2872\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2170\",\"type\":\"BasicTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"2331\"}},\"id\":\"2327\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"2169\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2172\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2873\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2328\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3133\"},\"ticker\":{\"id\":\"2174\"}},\"id\":\"2173\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"2872\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2875\",\"type\":\"Grid\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[642,89,67,26,29,31,18,10,8,8,6,4,7,4,3,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"2917\"},\"selection_policy\":{\"id\":\"2918\"}},\"id\":\"1377\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2329\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3323\"},\"ticker\":{\"id\":\"2877\"}},\"id\":\"2876\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2174\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1363\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2330\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"2173\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2176\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2877\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1364\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"2876\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2879\",\"type\":\"Grid\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2379\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2711\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2325\"},{\"id\":\"2326\"},{\"id\":\"2327\"},{\"id\":\"2328\"},{\"id\":\"2329\"},{\"id\":\"2330\"}]},\"id\":\"2332\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1367\",\"type\":\"ResetTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1363\"},{\"id\":\"1364\"},{\"id\":\"1365\"},{\"id\":\"1366\"},{\"id\":\"1367\"},{\"id\":\"1368\"}]},\"id\":\"1370\",\"type\":\"Toolbar\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2911\",\"type\":\"Title\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[125,37,76,116,337,76,26,38,99,15,3,3,2,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3137\"},\"selection_policy\":{\"id\":\"3138\"}},\"id\":\"2191\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2452\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2177\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[830,2,0,2,10,104,6,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3327\"},\"selection_policy\":{\"id\":\"3328\"}},\"id\":\"2894\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"1599\"},\"glyph\":{\"id\":\"1601\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1602\"},\"selection_glyph\":null,\"view\":{\"id\":\"1604\"}},\"id\":\"1603\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2915\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1437\"},{\"id\":\"1438\"},{\"id\":\"1439\"},{\"id\":\"1440\"},{\"id\":\"1441\"},{\"id\":\"1442\"}]},\"id\":\"1444\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2178\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2880\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2376\"},\"glyph\":{\"id\":\"2378\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2379\"},\"selection_glyph\":null,\"view\":{\"id\":\"2381\"}},\"id\":\"2380\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2331\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1527\",\"type\":\"Quad\"},{\"attributes\":{\"overlay\":{\"id\":\"2183\"}},\"id\":\"2179\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2881\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1369\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"2339\"},\"glyph\":{\"id\":\"2341\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2342\"},\"selection_glyph\":null,\"view\":{\"id\":\"2344\"}},\"id\":\"2343\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2180\",\"type\":\"SaveTool\"},{\"attributes\":{\"overlay\":{\"id\":\"2886\"}},\"id\":\"2882\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1377\"},\"glyph\":{\"id\":\"1379\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1380\"},\"selection_glyph\":null,\"view\":{\"id\":\"1382\"}},\"id\":\"1381\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2342\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2181\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2883\",\"type\":\"SaveTool\"},{\"attributes\":{\"source\":{\"id\":\"1377\"}},\"id\":\"1382\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2182\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2884\",\"type\":\"ResetTool\"},{\"attributes\":{\"source\":{\"id\":\"2339\"}},\"id\":\"2344\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2885\",\"type\":\"HelpTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[705,69,40,31,18,18,19,13,8,12,7,4,3,2,1,0,2,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"2927\"},\"selection_policy\":{\"id\":\"2928\"}},\"id\":\"1414\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2231\",\"type\":\"Quad\"},{\"attributes\":{\"below\":[{\"id\":\"2354\"}],\"center\":[{\"id\":\"2357\"},{\"id\":\"2361\"}],\"left\":[{\"id\":\"2358\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2380\"}],\"title\":{\"id\":\"3181\"},\"toolbar\":{\"id\":\"2369\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2346\"},\"x_scale\":{\"id\":\"2350\"},\"y_range\":{\"id\":\"2348\"},\"y_scale\":{\"id\":\"2352\"}},\"id\":\"2345\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1384\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[517,143,57,40,31,29,15,8,11,9,8,10,3,3,7,1,0,5,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,1,0,1,0,8]},\"selected\":{\"id\":\"3187\"},\"selection_policy\":{\"id\":\"3188\"}},\"id\":\"2376\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2177\"},{\"id\":\"2178\"},{\"id\":\"2179\"},{\"id\":\"2180\"},{\"id\":\"2181\"},{\"id\":\"2182\"}]},\"id\":\"2184\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2341\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2346\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1379\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2880\"},{\"id\":\"2881\"},{\"id\":\"2882\"},{\"id\":\"2883\"},{\"id\":\"2884\"},{\"id\":\"2885\"}]},\"id\":\"2887\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2699\",\"type\":\"ResetTool\"},{\"attributes\":{\"start\":0},\"id\":\"1386\",\"type\":\"DataRange1d\"},{\"attributes\":{\"start\":0},\"id\":\"2348\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2700\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2913\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1590\",\"type\":\"HelpTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1702\"}},\"id\":\"1698\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1924\"}},\"id\":\"1920\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1525\"},\"glyph\":{\"id\":\"1527\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1528\"},\"selection_glyph\":null,\"view\":{\"id\":\"1530\"}},\"id\":\"1529\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1480\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"3193\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3048\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1699\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1921\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3023\"},\"ticker\":{\"id\":\"1767\"}},\"id\":\"1766\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3051\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3195\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1700\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1922\",\"type\":\"ResetTool\"},{\"attributes\":{\"start\":0},\"id\":\"1608\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3053\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3197\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1701\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1923\",\"type\":\"HelpTool\"},{\"attributes\":{\"source\":{\"id\":\"1488\"}},\"id\":\"1493\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3055\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis\":{\"id\":\"1762\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1765\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3198\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3201\",\"type\":\"Title\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[650,87,22,24,26,26,18,16,14,12,11,7,6,7,4,4,1,0,2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,1,0,0,0,1,1,0]},\"selected\":{\"id\":\"3087\"},\"selection_policy\":{\"id\":\"3088\"}},\"id\":\"2006\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3057\",\"type\":\"Selection\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1696\"},{\"id\":\"1697\"},{\"id\":\"1698\"},{\"id\":\"1699\"},{\"id\":\"1700\"},{\"id\":\"1701\"}]},\"id\":\"1703\",\"type\":\"Toolbar\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1918\"},{\"id\":\"1919\"},{\"id\":\"1920\"},{\"id\":\"1921\"},{\"id\":\"1922\"},{\"id\":\"1923\"}]},\"id\":\"1925\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1491\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3203\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3058\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1488\"},\"glyph\":{\"id\":\"1490\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1491\"},\"selection_glyph\":null,\"view\":{\"id\":\"1493\"}},\"id\":\"1492\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"1747\"},\"glyph\":{\"id\":\"1749\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1750\"},\"selection_glyph\":null,\"view\":{\"id\":\"1752\"}},\"id\":\"1751\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"1988\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1991\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"1503\"}],\"center\":[{\"id\":\"1506\"},{\"id\":\"1510\"}],\"left\":[{\"id\":\"1507\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1529\"}],\"title\":{\"id\":\"2951\"},\"toolbar\":{\"id\":\"1518\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1495\"},\"x_scale\":{\"id\":\"1499\"},\"y_range\":{\"id\":\"1497\"},\"y_scale\":{\"id\":\"1501\"}},\"id\":\"1494\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1610\",\"type\":\"LinearScale\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3061\",\"type\":\"Title\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1750\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1495\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1749\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1989\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1612\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3063\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3205\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3207\",\"type\":\"Selection\"},{\"attributes\":{\"start\":0},\"id\":\"1497\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1747\"}},\"id\":\"1752\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu16\",\"formatter\":{\"id\":\"2985\"},\"ticker\":{\"id\":\"1615\"}},\"id\":\"1614\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1702\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1924\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"3065\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1499\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3208\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1710\"},\"glyph\":{\"id\":\"1712\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1713\"},\"selection_glyph\":null,\"view\":{\"id\":\"1715\"}},\"id\":\"1714\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"1932\"},\"glyph\":{\"id\":\"1934\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1935\"},\"selection_glyph\":null,\"view\":{\"id\":\"1937\"}},\"id\":\"1936\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3211\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1615\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1501\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1971\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3067\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1614\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1617\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3213\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3068\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu2\",\"formatter\":{\"id\":\"2955\"},\"ticker\":{\"id\":\"1504\"}},\"id\":\"1503\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2983\"},\"ticker\":{\"id\":\"1619\"}},\"id\":\"1618\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3071\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3215\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1504\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1713\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1935\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1619\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3073\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3217\",\"type\":\"Selection\"},{\"attributes\":{\"below\":[{\"id\":\"1725\"}],\"center\":[{\"id\":\"1728\"},{\"id\":\"1732\"}],\"left\":[{\"id\":\"1729\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1751\"}],\"title\":{\"id\":\"3011\"},\"toolbar\":{\"id\":\"1740\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1717\"},\"x_scale\":{\"id\":\"1721\"},\"y_range\":{\"id\":\"1719\"},\"y_scale\":{\"id\":\"1723\"}},\"id\":\"1716\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"below\":[{\"id\":\"1947\"}],\"center\":[{\"id\":\"1950\"},{\"id\":\"1954\"}],\"left\":[{\"id\":\"1951\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1973\"}],\"title\":{\"id\":\"3071\"},\"toolbar\":{\"id\":\"1962\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1939\"},\"x_scale\":{\"id\":\"1943\"},\"y_range\":{\"id\":\"1941\"},\"y_scale\":{\"id\":\"1945\"}},\"id\":\"1938\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis\":{\"id\":\"1503\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1506\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"1618\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1621\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1710\"}},\"id\":\"1715\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1932\"}},\"id\":\"1937\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3075\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2953\"},\"ticker\":{\"id\":\"1508\"}},\"id\":\"1507\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3218\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1717\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1939\",\"type\":\"DataRange1d\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3221\",\"type\":\"Title\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2897\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1659\"},{\"id\":\"1660\"},{\"id\":\"1661\"},{\"id\":\"1662\"},{\"id\":\"1663\"},{\"id\":\"1664\"}]},\"id\":\"1666\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1508\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3077\",\"type\":\"Selection\"},{\"attributes\":{\"start\":0},\"id\":\"1719\",\"type\":\"DataRange1d\"},{\"attributes\":{\"start\":0},\"id\":\"1941\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3223\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3078\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"1507\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1510\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1721\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1943\",\"type\":\"LinearScale\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3081\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3225\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1622\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1723\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1945\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"1525\"}},\"id\":\"1530\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3083\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1623\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[532,142,52,44,22,28,27,24,13,11,8,9,10,6,1,4,1,5,0,1,1,1,2,0,0,0,0,0,2,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0]},\"selected\":{\"id\":\"2967\"},\"selection_policy\":{\"id\":\"2968\"}},\"id\":\"1562\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3227\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu29\",\"formatter\":{\"id\":\"3015\"},\"ticker\":{\"id\":\"1726\"}},\"id\":\"1725\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu24\",\"formatter\":{\"id\":\"3075\"},\"ticker\":{\"id\":\"1948\"}},\"id\":\"1947\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3085\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3228\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1628\"}},\"id\":\"1624\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1511\",\"type\":\"PanTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3231\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1726\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1948\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1625\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"3087\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1512\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"1725\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1728\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"1947\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1950\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3233\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1626\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"3088\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1517\"}},\"id\":\"1513\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3013\"},\"ticker\":{\"id\":\"1730\"}},\"id\":\"1729\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3073\"},\"ticker\":{\"id\":\"1952\"}},\"id\":\"1951\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3091\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1627\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"3235\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1514\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1730\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1952\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3093\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1676\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3237\",\"type\":\"Selection\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1622\"},{\"id\":\"1623\"},{\"id\":\"1624\"},{\"id\":\"1625\"},{\"id\":\"1626\"},{\"id\":\"1627\"}]},\"id\":\"1629\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1515\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis\":{\"id\":\"1729\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1732\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"1951\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1954\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3095\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3238\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1516\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu1\",\"formatter\":{\"id\":\"3085\"},\"ticker\":{\"id\":\"1985\"}},\"id\":\"1984\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3241\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3097\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1763\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1823\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1528\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3243\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3098\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"below\":[{\"id\":\"1540\"}],\"center\":[{\"id\":\"1543\"},{\"id\":\"1547\"}],\"left\":[{\"id\":\"1544\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1566\"}],\"title\":{\"id\":\"2961\"},\"toolbar\":{\"id\":\"1555\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1532\"},\"x_scale\":{\"id\":\"1536\"},\"y_range\":{\"id\":\"1534\"},\"y_scale\":{\"id\":\"1538\"}},\"id\":\"1531\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[638,95,48,26,29,24,16,9,15,11,10,5,7,4,2,2,1,0,3,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]},\"selected\":{\"id\":\"3017\"},\"selection_policy\":{\"id\":\"3018\"}},\"id\":\"1747\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[680,85,36,24,24,19,16,20,12,4,9,5,7,5,2,2,1,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3077\"},\"selection_policy\":{\"id\":\"3078\"}},\"id\":\"1969\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1532\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"1673\"},\"glyph\":{\"id\":\"1675\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1676\"},\"selection_glyph\":null,\"view\":{\"id\":\"1678\"}},\"id\":\"1677\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3101\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3245\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1733\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1955\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1628\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"start\":0},\"id\":\"1534\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3103\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3247\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1734\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1956\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1636\"},\"glyph\":{\"id\":\"1638\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1639\"},\"selection_glyph\":null,\"view\":{\"id\":\"1641\"}},\"id\":\"1640\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1536\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3105\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3248\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1739\"}},\"id\":\"1735\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1961\"}},\"id\":\"1957\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1639\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1538\",\"type\":\"LinearScale\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3251\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"3107\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1736\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1958\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu8\",\"formatter\":{\"id\":\"2965\"},\"ticker\":{\"id\":\"1541\"}},\"id\":\"1540\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1636\"}},\"id\":\"1641\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3253\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3108\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1737\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1959\",\"type\":\"ResetTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3111\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1541\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[595,104,58,39,26,22,15,20,20,11,9,7,2,3,1,0,2,2,2,1,0,0,0,0,0,0,1,1,0,1,1,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"2997\"},\"selection_policy\":{\"id\":\"2998\"}},\"id\":\"1673\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3255\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"1651\"}],\"center\":[{\"id\":\"1654\"},{\"id\":\"1658\"}],\"left\":[{\"id\":\"1655\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1677\"}],\"title\":{\"id\":\"2991\"},\"toolbar\":{\"id\":\"1666\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1643\"},\"x_scale\":{\"id\":\"1647\"},\"y_range\":{\"id\":\"1645\"},\"y_scale\":{\"id\":\"1649\"}},\"id\":\"1642\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1738\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1960\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"1540\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1543\",\"type\":\"Grid\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1638\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3113\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3257\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1643\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3083\"},\"ticker\":{\"id\":\"1989\"}},\"id\":\"1988\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1733\"},{\"id\":\"1734\"},{\"id\":\"1735\"},{\"id\":\"1736\"},{\"id\":\"1737\"},{\"id\":\"1738\"}]},\"id\":\"1740\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2963\"},\"ticker\":{\"id\":\"1545\"}},\"id\":\"1544\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3115\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3258\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1955\"},{\"id\":\"1956\"},{\"id\":\"1957\"},{\"id\":\"1958\"},{\"id\":\"1959\"},{\"id\":\"1960\"}]},\"id\":\"1962\",\"type\":\"Toolbar\"},{\"attributes\":{\"start\":0},\"id\":\"1645\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"1984\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1987\",\"type\":\"Grid\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3261\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1545\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3117\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1647\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"1544\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1547\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1985\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3263\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3118\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1649\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"1803\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1806\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"1858\"},\"glyph\":{\"id\":\"1860\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1861\"},\"selection_glyph\":null,\"view\":{\"id\":\"1863\"}},\"id\":\"1862\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"2072\"}},\"id\":\"2068\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2029\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1832\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1807\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2030\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1808\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"2035\"}},\"id\":\"2031\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1739\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"1813\"}},\"id\":\"1809\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2032\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1810\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2033\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1767\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1811\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2034\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"1766\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1769\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1812\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2069\",\"type\":\"SaveTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2029\"},{\"id\":\"2030\"},{\"id\":\"2031\"},{\"id\":\"2032\"},{\"id\":\"2033\"},{\"id\":\"2034\"}]},\"id\":\"2036\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1834\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1906\",\"type\":\"LinearScale\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1807\"},{\"id\":\"1808\"},{\"id\":\"1809\"},{\"id\":\"1810\"},{\"id\":\"1811\"},{\"id\":\"1812\"}]},\"id\":\"1814\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2067\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1821\"}},\"id\":\"1826\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1770\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2066\",\"type\":\"PanTool\"},{\"attributes\":{\"start\":0},\"id\":\"1830\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1771\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1828\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2035\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"1776\"}},\"id\":\"1772\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2043\"},\"glyph\":{\"id\":\"2045\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2046\"},\"selection_glyph\":null,\"view\":{\"id\":\"2048\"}},\"id\":\"2047\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1813\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1773\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu11\",\"formatter\":{\"id\":\"3045\"},\"ticker\":{\"id\":\"1837\"}},\"id\":\"1836\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2046\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1774\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1837\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1775\",\"type\":\"HelpTool\"},{\"attributes\":{\"source\":{\"id\":\"2043\"}},\"id\":\"2048\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"1836\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1839\",\"type\":\"Grid\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1770\"},{\"id\":\"1771\"},{\"id\":\"1772\"},{\"id\":\"1773\"},{\"id\":\"1774\"},{\"id\":\"1775\"}]},\"id\":\"1777\",\"type\":\"Toolbar\"},{\"attributes\":{\"below\":[{\"id\":\"2058\"}],\"center\":[{\"id\":\"2061\"},{\"id\":\"2065\"}],\"left\":[{\"id\":\"2062\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2084\"}],\"title\":{\"id\":\"3101\"},\"toolbar\":{\"id\":\"2073\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2050\"},\"x_scale\":{\"id\":\"2054\"},\"y_range\":{\"id\":\"2052\"},\"y_scale\":{\"id\":\"2056\"}},\"id\":\"2049\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3043\"},\"ticker\":{\"id\":\"1841\"}},\"id\":\"1840\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2045\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2050\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1824\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1841\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1840\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1843\",\"type\":\"Grid\"},{\"attributes\":{\"start\":0},\"id\":\"2052\",\"type\":\"DataRange1d\"},{\"attributes\":{\"below\":[{\"id\":\"1836\"}],\"center\":[{\"id\":\"1839\"},{\"id\":\"1843\"}],\"left\":[{\"id\":\"1840\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1862\"}],\"title\":{\"id\":\"3041\"},\"toolbar\":{\"id\":\"1851\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1828\"},\"x_scale\":{\"id\":\"1832\"},\"y_range\":{\"id\":\"1830\"},\"y_scale\":{\"id\":\"1834\"}},\"id\":\"1827\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data_source\":{\"id\":\"1821\"},\"glyph\":{\"id\":\"1823\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1824\"},\"selection_glyph\":null,\"view\":{\"id\":\"1826\"}},\"id\":\"1825\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2054\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1776\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"source\":{\"id\":\"1895\"}},\"id\":\"1900\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2056\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"1784\"},\"glyph\":{\"id\":\"1786\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1787\"},\"selection_glyph\":null,\"view\":{\"id\":\"1789\"}},\"id\":\"1788\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[345,57,33,37,22,18,20,12,24,12,9,12,14,8,4,6,5,6,6,4,0,2,1,1,2,3,0,2,2,3,3,2,1,1,3,0,2,3,2,1,0,2,2,4,1,0,5,6,13]},\"selected\":{\"id\":\"3047\"},\"selection_policy\":{\"id\":\"3048\"}},\"id\":\"1858\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu9\",\"formatter\":{\"id\":\"3105\"},\"ticker\":{\"id\":\"2059\"}},\"id\":\"2058\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1844\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1787\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2059\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1845\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"2058\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2061\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1784\"}},\"id\":\"1789\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"1850\"}},\"id\":\"1846\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1326\"},{\"id\":\"1327\"},{\"id\":\"1328\"},{\"id\":\"1329\"},{\"id\":\"1330\"},{\"id\":\"1331\"}]},\"id\":\"1333\",\"type\":\"Toolbar\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[694,66,36,39,22,18,17,11,9,6,6,12,5,6,3,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3037\"},\"selection_policy\":{\"id\":\"3038\"}},\"id\":\"1821\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"1799\"}],\"center\":[{\"id\":\"1802\"},{\"id\":\"1806\"}],\"left\":[{\"id\":\"1803\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1825\"}],\"title\":{\"id\":\"3031\"},\"toolbar\":{\"id\":\"1814\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1791\"},\"x_scale\":{\"id\":\"1795\"},\"y_range\":{\"id\":\"1793\"},\"y_scale\":{\"id\":\"1797\"}},\"id\":\"1790\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1847\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2070\",\"type\":\"ResetTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1786\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1848\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2071\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1791\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1849\",\"type\":\"HelpTool\"},{\"attributes\":{\"start\":0},\"id\":\"1793\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2146\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2066\"},{\"id\":\"2067\"},{\"id\":\"2068\"},{\"id\":\"2069\"},{\"id\":\"2070\"},{\"id\":\"2071\"}]},\"id\":\"2073\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1795\",\"type\":\"LinearScale\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1844\"},{\"id\":\"1845\"},{\"id\":\"1846\"},{\"id\":\"1847\"},{\"id\":\"1848\"},{\"id\":\"1849\"}]},\"id\":\"1851\",\"type\":\"Toolbar\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[635,89,45,26,22,19,20,16,13,6,10,10,11,2,1,1,0,0,3,1,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3147\"},\"selection_policy\":{\"id\":\"3148\"}},\"id\":\"2228\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1797\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[575,85,55,41,28,26,25,22,13,12,8,6,6,4,4,4,1,3,1,0,1,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0]},\"selected\":{\"id\":\"3157\"},\"selection_policy\":{\"id\":\"3158\"}},\"id\":\"2265\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1902\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"2302\"}},\"id\":\"2307\",\"type\":\"CDSView\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2140\"},{\"id\":\"2141\"},{\"id\":\"2142\"},{\"id\":\"2143\"},{\"id\":\"2144\"},{\"id\":\"2145\"}]},\"id\":\"2147\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu22\",\"formatter\":{\"id\":\"3035\"},\"ticker\":{\"id\":\"1800\"}},\"id\":\"1799\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1934\",\"type\":\"Quad\"},{\"attributes\":{\"below\":[{\"id\":\"1910\"}],\"center\":[{\"id\":\"1913\"},{\"id\":\"1917\"}],\"left\":[{\"id\":\"1914\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1936\"}],\"title\":{\"id\":\"3061\"},\"toolbar\":{\"id\":\"1925\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1902\"},\"x_scale\":{\"id\":\"1906\"},\"y_range\":{\"id\":\"1904\"},\"y_scale\":{\"id\":\"1908\"}},\"id\":\"1901\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2072\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1800\",\"type\":\"BasicTicker\"},{\"attributes\":{\"start\":0},\"id\":\"1904\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"1799\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1802\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1850\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2082\",\"type\":\"Quad\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3033\"},\"ticker\":{\"id\":\"1804\"}},\"id\":\"1803\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1860\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2083\",\"type\":\"Quad\"},{\"attributes\":{\"data_source\":{\"id\":\"2080\"},\"glyph\":{\"id\":\"2082\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2083\"},\"selection_glyph\":null,\"view\":{\"id\":\"2085\"}},\"id\":\"2084\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1804\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"2080\"}},\"id\":\"2085\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1861\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1388\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2268\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3265\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1961\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2183\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2489\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1390\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3267\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3273\"},\"ticker\":{\"id\":\"2692\"}},\"id\":\"2691\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu19\",\"formatter\":{\"id\":\"2925\"},\"ticker\":{\"id\":\"1393\"}},\"id\":\"1392\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"2228\"}},\"id\":\"2233\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3268\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3271\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1393\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"1969\"}},\"id\":\"1974\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"2191\"}},\"id\":\"2196\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"1392\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1395\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3273\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2923\"},\"ticker\":{\"id\":\"1397\"}},\"id\":\"1396\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1972\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2194\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3275\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"1969\"},\"glyph\":{\"id\":\"1971\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1972\"},\"selection_glyph\":null,\"view\":{\"id\":\"1974\"}},\"id\":\"1973\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"2191\"},\"glyph\":{\"id\":\"2193\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2194\"},\"selection_glyph\":null,\"view\":{\"id\":\"2196\"}},\"id\":\"2195\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"1984\"}],\"center\":[{\"id\":\"1987\"},{\"id\":\"1991\"}],\"left\":[{\"id\":\"1988\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2010\"}],\"title\":{\"id\":\"3081\"},\"toolbar\":{\"id\":\"1999\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1976\"},\"x_scale\":{\"id\":\"1980\"},\"y_range\":{\"id\":\"1978\"},\"y_scale\":{\"id\":\"1982\"}},\"id\":\"1975\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"below\":[{\"id\":\"2206\"}],\"center\":[{\"id\":\"2209\"},{\"id\":\"2213\"}],\"left\":[{\"id\":\"2210\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2232\"}],\"title\":{\"id\":\"3141\"},\"toolbar\":{\"id\":\"2221\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2198\"},\"x_scale\":{\"id\":\"2202\"},\"y_range\":{\"id\":\"2200\"},\"y_scale\":{\"id\":\"2204\"}},\"id\":\"2197\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1397\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3277\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1976\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2198\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"1396\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1399\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"2687\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2690\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3278\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"start\":0},\"id\":\"1978\",\"type\":\"DataRange1d\"},{\"attributes\":{\"start\":0},\"id\":\"2200\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"1414\"},\"glyph\":{\"id\":\"1416\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1417\"},\"selection_glyph\":null,\"view\":{\"id\":\"1419\"}},\"id\":\"1418\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3281\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2692\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2202\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2442\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3103\"},\"ticker\":{\"id\":\"2063\"}},\"id\":\"2062\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"3283\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"overlay\":{\"id\":\"1443\"}},\"id\":\"1439\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2204\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2457\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1992\",\"type\":\"PanTool\"},{\"attributes\":{\"start\":0},\"id\":\"2459\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3285\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1400\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu5\",\"formatter\":{\"id\":\"3145\"},\"ticker\":{\"id\":\"2207\"}},\"id\":\"2206\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1993\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2461\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3287\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1401\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2207\",\"type\":\"BasicTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"1998\"}},\"id\":\"1994\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2463\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3288\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1406\"}},\"id\":\"1402\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"2206\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2209\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1995\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu6\",\"formatter\":{\"id\":\"3215\"},\"ticker\":{\"id\":\"2466\"}},\"id\":\"2465\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3291\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1403\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3143\"},\"ticker\":{\"id\":\"2211\"}},\"id\":\"2210\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1996\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2466\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3293\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1404\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2211\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1997\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"2465\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2468\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3295\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1405\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"2210\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2213\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3213\"},\"ticker\":{\"id\":\"2470\"}},\"id\":\"2469\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[643,81,44,34,24,13,28,14,10,9,9,9,9,3,5,2,0,2,1,1,1,1,0,0,0,2,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]},\"selected\":{\"id\":\"3107\"},\"selection_policy\":{\"id\":\"3108\"}},\"id\":\"2080\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3297\",\"type\":\"Selection\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1992\"},{\"id\":\"1993\"},{\"id\":\"1994\"},{\"id\":\"1995\"},{\"id\":\"1996\"},{\"id\":\"1997\"}]},\"id\":\"1999\",\"type\":\"Toolbar\"},{\"attributes\":{\"data_source\":{\"id\":\"2228\"},\"glyph\":{\"id\":\"2230\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2231\"},\"selection_glyph\":null,\"view\":{\"id\":\"2233\"}},\"id\":\"2232\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2470\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3298\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1406\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"below\":[{\"id\":\"2243\"}],\"center\":[{\"id\":\"2246\"},{\"id\":\"2250\"}],\"left\":[{\"id\":\"2247\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2269\"}],\"title\":{\"id\":\"3151\"},\"toolbar\":{\"id\":\"2258\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2235\"},\"x_scale\":{\"id\":\"2239\"},\"y_range\":{\"id\":\"2237\"},\"y_scale\":{\"id\":\"2241\"}},\"id\":\"2234\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis\":{\"id\":\"2062\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2065\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"2469\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2472\",\"type\":\"Grid\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3301\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2235\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1441\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2214\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2063\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[649,100,35,33,22,20,22,14,10,11,5,10,6,3,3,0,1,1,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0]},\"selected\":{\"id\":\"3227\"},\"selection_policy\":{\"id\":\"3228\"}},\"id\":\"2524\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3303\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2215\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1998\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"3305\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[649,85,45,31,16,21,27,14,9,11,10,9,7,2,1,2,0,2,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3217\"},\"selection_policy\":{\"id\":\"3218\"}},\"id\":\"2487\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"2220\"}},\"id\":\"2216\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2006\"},\"glyph\":{\"id\":\"2008\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2009\"},\"selection_glyph\":null,\"view\":{\"id\":\"2011\"}},\"id\":\"2010\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"2524\"}},\"id\":\"2529\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3307\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2473\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2217\",\"type\":\"SaveTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2009\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3308\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2474\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1442\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2218\",\"type\":\"ResetTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3311\",\"type\":\"Title\"},{\"attributes\":{\"source\":{\"id\":\"2709\"}},\"id\":\"2714\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"2479\"}},\"id\":\"2475\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"2006\"}},\"id\":\"2011\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1440\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2219\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"3313\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2476\",\"type\":\"SaveTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[281,61,30,25,17,6,3,1,7,4,7,2,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]},\"selected\":{\"id\":\"3097\"},\"selection_policy\":{\"id\":\"3098\"}},\"id\":\"2043\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"2021\"}],\"center\":[{\"id\":\"2024\"},{\"id\":\"2028\"}],\"left\":[{\"id\":\"2025\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2047\"}],\"title\":{\"id\":\"3091\"},\"toolbar\":{\"id\":\"2036\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2013\"},\"x_scale\":{\"id\":\"2017\"},\"y_range\":{\"id\":\"2015\"},\"y_scale\":{\"id\":\"2019\"}},\"id\":\"2012\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"3315\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1400\"},{\"id\":\"1401\"},{\"id\":\"1402\"},{\"id\":\"1403\"},{\"id\":\"1404\"},{\"id\":\"1405\"}]},\"id\":\"1407\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2477\",\"type\":\"ResetTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2008\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2013\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3317\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2478\",\"type\":\"HelpTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1417\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2230\",\"type\":\"Quad\"},{\"attributes\":{\"start\":0},\"id\":\"2015\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3318\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"start\":0},\"id\":\"2237\",\"type\":\"DataRange1d\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2473\"},{\"id\":\"2474\"},{\"id\":\"2475\"},{\"id\":\"2476\"},{\"id\":\"2477\"},{\"id\":\"2478\"}]},\"id\":\"2480\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2017\",\"type\":\"LinearScale\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3321\",\"type\":\"Title\"},{\"attributes\":{\"source\":{\"id\":\"1414\"}},\"id\":\"1419\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2239\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2019\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[614,100,55,34,36,14,15,12,10,7,4,13,4,4,9,3,0,2,1,0,0,0,0,0,1,0,1,0,0,2,0,1,0,0,0,0,0,1,0,2,0,0,0,0,2,2,0,0,0]},\"selected\":{\"id\":\"2937\"},\"selection_policy\":{\"id\":\"2938\"}},\"id\":\"1451\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3323\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"1429\"}],\"center\":[{\"id\":\"1432\"},{\"id\":\"1436\"}],\"left\":[{\"id\":\"1433\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1455\"}],\"title\":{\"id\":\"2931\"},\"toolbar\":{\"id\":\"1444\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1421\"},\"x_scale\":{\"id\":\"1425\"},\"y_range\":{\"id\":\"1423\"},\"y_scale\":{\"id\":\"1427\"}},\"id\":\"1420\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2241\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"2524\"},\"glyph\":{\"id\":\"2526\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2527\"},\"selection_glyph\":null,\"view\":{\"id\":\"2529\"}},\"id\":\"2528\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu28\",\"formatter\":{\"id\":\"3095\"},\"ticker\":{\"id\":\"2022\"}},\"id\":\"2021\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2611\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1416\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3325\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1421\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu15\",\"formatter\":{\"id\":\"3155\"},\"ticker\":{\"id\":\"2244\"}},\"id\":\"2243\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2022\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2527\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"3327\",\"type\":\"Selection\"},{\"attributes\":{\"start\":0},\"id\":\"1423\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2479\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2244\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"2021\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2024\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3328\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1425\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"2243\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2246\",\"type\":\"Grid\"},{\"attributes\":{\"toolbars\":[{\"id\":\"1333\"},{\"id\":\"1370\"},{\"id\":\"1407\"},{\"id\":\"1444\"},{\"id\":\"1481\"},{\"id\":\"1518\"},{\"id\":\"1555\"},{\"id\":\"1592\"},{\"id\":\"1629\"},{\"id\":\"1666\"},{\"id\":\"1703\"},{\"id\":\"1740\"},{\"id\":\"1777\"},{\"id\":\"1814\"},{\"id\":\"1851\"},{\"id\":\"1888\"},{\"id\":\"1925\"},{\"id\":\"1962\"},{\"id\":\"1999\"},{\"id\":\"2036\"},{\"id\":\"2073\"},{\"id\":\"2110\"},{\"id\":\"2147\"},{\"id\":\"2184\"},{\"id\":\"2221\"},{\"id\":\"2258\"},{\"id\":\"2295\"},{\"id\":\"2332\"},{\"id\":\"2369\"},{\"id\":\"2406\"},{\"id\":\"2443\"},{\"id\":\"2480\"},{\"id\":\"2517\"},{\"id\":\"2554\"},{\"id\":\"2591\"},{\"id\":\"2628\"},{\"id\":\"2665\"},{\"id\":\"2702\"},{\"id\":\"2739\"},{\"id\":\"2776\"},{\"id\":\"2813\"},{\"id\":\"2850\"},{\"id\":\"2887\"}],\"tools\":[{\"id\":\"1326\"},{\"id\":\"1327\"},{\"id\":\"1328\"},{\"id\":\"1329\"},{\"id\":\"1330\"},{\"id\":\"1331\"},{\"id\":\"1363\"},{\"id\":\"1364\"},{\"id\":\"1365\"},{\"id\":\"1366\"},{\"id\":\"1367\"},{\"id\":\"1368\"},{\"id\":\"1400\"},{\"id\":\"1401\"},{\"id\":\"1402\"},{\"id\":\"1403\"},{\"id\":\"1404\"},{\"id\":\"1405\"},{\"id\":\"1437\"},{\"id\":\"1438\"},{\"id\":\"1439\"},{\"id\":\"1440\"},{\"id\":\"1441\"},{\"id\":\"1442\"},{\"id\":\"1474\"},{\"id\":\"1475\"},{\"id\":\"1476\"},{\"id\":\"1477\"},{\"id\":\"1478\"},{\"id\":\"1479\"},{\"id\":\"1511\"},{\"id\":\"1512\"},{\"id\":\"1513\"},{\"id\":\"1514\"},{\"id\":\"1515\"},{\"id\":\"1516\"},{\"id\":\"1548\"},{\"id\":\"1549\"},{\"id\":\"1550\"},{\"id\":\"1551\"},{\"id\":\"1552\"},{\"id\":\"1553\"},{\"id\":\"1585\"},{\"id\":\"1586\"},{\"id\":\"1587\"},{\"id\":\"1588\"},{\"id\":\"1589\"},{\"id\":\"1590\"},{\"id\":\"1622\"},{\"id\":\"1623\"},{\"id\":\"1624\"},{\"id\":\"1625\"},{\"id\":\"1626\"},{\"id\":\"1627\"},{\"id\":\"1659\"},{\"id\":\"1660\"},{\"id\":\"1661\"},{\"id\":\"1662\"},{\"id\":\"1663\"},{\"id\":\"1664\"},{\"id\":\"1696\"},{\"id\":\"1697\"},{\"id\":\"1698\"},{\"id\":\"1699\"},{\"id\":\"1700\"},{\"id\":\"1701\"},{\"id\":\"1733\"},{\"id\":\"1734\"},{\"id\":\"1735\"},{\"id\":\"1736\"},{\"id\":\"1737\"},{\"id\":\"1738\"},{\"id\":\"1770\"},{\"id\":\"1771\"},{\"id\":\"1772\"},{\"id\":\"1773\"},{\"id\":\"1774\"},{\"id\":\"1775\"},{\"id\":\"1807\"},{\"id\":\"1808\"},{\"id\":\"1809\"},{\"id\":\"1810\"},{\"id\":\"1811\"},{\"id\":\"1812\"},{\"id\":\"1844\"},{\"id\":\"1845\"},{\"id\":\"1846\"},{\"id\":\"1847\"},{\"id\":\"1848\"},{\"id\":\"1849\"},{\"id\":\"1881\"},{\"id\":\"1882\"},{\"id\":\"1883\"},{\"id\":\"1884\"},{\"id\":\"1885\"},{\"id\":\"1886\"},{\"id\":\"1918\"},{\"id\":\"1919\"},{\"id\":\"1920\"},{\"id\":\"1921\"},{\"id\":\"1922\"},{\"id\":\"1923\"},{\"id\":\"1955\"},{\"id\":\"1956\"},{\"id\":\"1957\"},{\"id\":\"1958\"},{\"id\":\"1959\"},{\"id\":\"1960\"},{\"id\":\"1992\"},{\"id\":\"1993\"},{\"id\":\"1994\"},{\"id\":\"1995\"},{\"id\":\"1996\"},{\"id\":\"1997\"},{\"id\":\"2029\"},{\"id\":\"2030\"},{\"id\":\"2031\"},{\"id\":\"2032\"},{\"id\":\"2033\"},{\"id\":\"2034\"},{\"id\":\"2066\"},{\"id\":\"2067\"},{\"id\":\"2068\"},{\"id\":\"2069\"},{\"id\":\"2070\"},{\"id\":\"2071\"},{\"id\":\"2103\"},{\"id\":\"2104\"},{\"id\":\"2105\"},{\"id\":\"2106\"},{\"id\":\"2107\"},{\"id\":\"2108\"},{\"id\":\"2140\"},{\"id\":\"2141\"},{\"id\":\"2142\"},{\"id\":\"2143\"},{\"id\":\"2144\"},{\"id\":\"2145\"},{\"id\":\"2177\"},{\"id\":\"2178\"},{\"id\":\"2179\"},{\"id\":\"2180\"},{\"id\":\"2181\"},{\"id\":\"2182\"},{\"id\":\"2214\"},{\"id\":\"2215\"},{\"id\":\"2216\"},{\"id\":\"2217\"},{\"id\":\"2218\"},{\"id\":\"2219\"},{\"id\":\"2251\"},{\"id\":\"2252\"},{\"id\":\"2253\"},{\"id\":\"2254\"},{\"id\":\"2255\"},{\"id\":\"2256\"},{\"id\":\"2288\"},{\"id\":\"2289\"},{\"id\":\"2290\"},{\"id\":\"2291\"},{\"id\":\"2292\"},{\"id\":\"2293\"},{\"id\":\"2325\"},{\"id\":\"2326\"},{\"id\":\"2327\"},{\"id\":\"2328\"},{\"id\":\"2329\"},{\"id\":\"2330\"},{\"id\":\"2362\"},{\"id\":\"2363\"},{\"id\":\"2364\"},{\"id\":\"2365\"},{\"id\":\"2366\"},{\"id\":\"2367\"},{\"id\":\"2399\"},{\"id\":\"2400\"},{\"id\":\"2401\"},{\"id\":\"2402\"},{\"id\":\"2403\"},{\"id\":\"2404\"},{\"id\":\"2436\"},{\"id\":\"2437\"},{\"id\":\"2438\"},{\"id\":\"2439\"},{\"id\":\"2440\"},{\"id\":\"2441\"},{\"id\":\"2473\"},{\"id\":\"2474\"},{\"id\":\"2475\"},{\"id\":\"2476\"},{\"id\":\"2477\"},{\"id\":\"2478\"},{\"id\":\"2510\"},{\"id\":\"2511\"},{\"id\":\"2512\"},{\"id\":\"2513\"},{\"id\":\"2514\"},{\"id\":\"2515\"},{\"id\":\"2547\"},{\"id\":\"2548\"},{\"id\":\"2549\"},{\"id\":\"2550\"},{\"id\":\"2551\"},{\"id\":\"2552\"},{\"id\":\"2584\"},{\"id\":\"2585\"},{\"id\":\"2586\"},{\"id\":\"2587\"},{\"id\":\"2588\"},{\"id\":\"2589\"},{\"id\":\"2621\"},{\"id\":\"2622\"},{\"id\":\"2623\"},{\"id\":\"2624\"},{\"id\":\"2625\"},{\"id\":\"2626\"},{\"id\":\"2658\"},{\"id\":\"2659\"},{\"id\":\"2660\"},{\"id\":\"2661\"},{\"id\":\"2662\"},{\"id\":\"2663\"},{\"id\":\"2695\"},{\"id\":\"2696\"},{\"id\":\"2697\"},{\"id\":\"2698\"},{\"id\":\"2699\"},{\"id\":\"2700\"},{\"id\":\"2732\"},{\"id\":\"2733\"},{\"id\":\"2734\"},{\"id\":\"2735\"},{\"id\":\"2736\"},{\"id\":\"2737\"},{\"id\":\"2769\"},{\"id\":\"2770\"},{\"id\":\"2771\"},{\"id\":\"2772\"},{\"id\":\"2773\"},{\"id\":\"2774\"},{\"id\":\"2806\"},{\"id\":\"2807\"},{\"id\":\"2808\"},{\"id\":\"2809\"},{\"id\":\"2810\"},{\"id\":\"2811\"},{\"id\":\"2843\"},{\"id\":\"2844\"},{\"id\":\"2845\"},{\"id\":\"2846\"},{\"id\":\"2847\"},{\"id\":\"2848\"},{\"id\":\"2880\"},{\"id\":\"2881\"},{\"id\":\"2882\"},{\"id\":\"2883\"},{\"id\":\"2884\"},{\"id\":\"2885\"}]},\"id\":\"3331\",\"type\":\"ProxyToolbar\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3093\"},\"ticker\":{\"id\":\"2026\"}},\"id\":\"2025\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1427\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3153\"},\"ticker\":{\"id\":\"2248\"}},\"id\":\"2247\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2490\",\"type\":\"Quad\"},{\"attributes\":{\"toolbar\":{\"id\":\"3331\"},\"toolbar_location\":\"above\"},\"id\":\"3332\",\"type\":\"ToolbarBox\"},{\"attributes\":{\"data_source\":{\"id\":\"2487\"},\"glyph\":{\"id\":\"2489\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2490\"},\"selection_glyph\":null,\"view\":{\"id\":\"2492\"}},\"id\":\"2491\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2026\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu26\",\"formatter\":{\"id\":\"2935\"},\"ticker\":{\"id\":\"1430\"}},\"id\":\"1429\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2248\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"2025\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2028\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"2487\"}},\"id\":\"2492\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"2247\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2250\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1430\",\"type\":\"BasicTicker\"},{\"attributes\":{\"below\":[{\"id\":\"2613\"}],\"center\":[{\"id\":\"2616\"},{\"id\":\"2620\"}],\"left\":[{\"id\":\"2617\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2639\"}],\"title\":{\"id\":\"3251\"},\"toolbar\":{\"id\":\"2628\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2605\"},\"x_scale\":{\"id\":\"2609\"},\"y_range\":{\"id\":\"2607\"},\"y_scale\":{\"id\":\"2611\"}},\"id\":\"2604\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2584\"},{\"id\":\"2585\"},{\"id\":\"2586\"},{\"id\":\"2587\"},{\"id\":\"2588\"},{\"id\":\"2589\"}]},\"id\":\"2591\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu3\",\"formatter\":{\"id\":\"3025\"},\"ticker\":{\"id\":\"1763\"}},\"id\":\"1762\",\"type\":\"LinearAxis\"},{\"attributes\":{\"start\":0},\"id\":\"2607\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2547\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1548\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2614\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2548\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1549\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis_label\":\"GPUUtilization-nodeid:algo-1_gpu2\",\"formatter\":{\"id\":\"3255\"},\"ticker\":{\"id\":\"2614\"}},\"id\":\"2613\",\"type\":\"LinearAxis\"},{\"attributes\":{\"overlay\":{\"id\":\"2553\"}},\"id\":\"2549\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis\":{\"id\":\"2613\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2616\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"1554\"}},\"id\":\"1550\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2590\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2550\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2957\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1551\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2551\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1552\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2618\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2552\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1553\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3253\"},\"ticker\":{\"id\":\"2618\"}},\"id\":\"2617\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2609\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2601\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2547\"},{\"id\":\"2548\"},{\"id\":\"2549\"},{\"id\":\"2550\"},{\"id\":\"2551\"},{\"id\":\"2552\"}]},\"id\":\"2554\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"2617\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2620\",\"type\":\"Grid\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1602\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1548\"},{\"id\":\"1549\"},{\"id\":\"1550\"},{\"id\":\"1551\"},{\"id\":\"1552\"},{\"id\":\"1553\"}]},\"id\":\"1555\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2605\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1591\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[824,3,1,1,1,1,0,0,0,0,1,0,1,1,0,4,3,14,26,47,25,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3257\"},\"selection_policy\":{\"id\":\"3258\"}},\"id\":\"2635\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1760\",\"type\":\"LinearScale\"},{\"attributes\":{\"start\":0},\"id\":\"2681\",\"type\":\"DataRange1d\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1585\"},{\"id\":\"1586\"},{\"id\":\"1587\"},{\"id\":\"1588\"},{\"id\":\"1589\"},{\"id\":\"1590\"}]},\"id\":\"1592\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2553\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis_label\":\"GPUUtilization-nodeid:algo-1_total\",\"formatter\":{\"id\":\"3275\"},\"ticker\":{\"id\":\"2688\"}},\"id\":\"2687\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1554\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2621\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2561\"},\"glyph\":{\"id\":\"2563\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2564\"},\"selection_glyph\":null,\"view\":{\"id\":\"2566\"}},\"id\":\"2565\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"1562\"},\"glyph\":{\"id\":\"1564\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1565\"},\"selection_glyph\":null,\"view\":{\"id\":\"1567\"}},\"id\":\"1566\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2622\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2564\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1565\",\"type\":\"Quad\"},{\"attributes\":{\"overlay\":{\"id\":\"2627\"}},\"id\":\"2623\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"2561\"}},\"id\":\"2566\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1453\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2624\",\"type\":\"SaveTool\"},{\"attributes\":{\"source\":{\"id\":\"1562\"}},\"id\":\"1567\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2600\",\"type\":\"Quad\"},{\"attributes\":{\"below\":[{\"id\":\"2576\"}],\"center\":[{\"id\":\"2579\"},{\"id\":\"2583\"}],\"left\":[{\"id\":\"2580\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2602\"}],\"title\":{\"id\":\"3241\"},\"toolbar\":{\"id\":\"2591\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2568\"},\"x_scale\":{\"id\":\"2572\"},\"y_range\":{\"id\":\"2570\"},\"y_scale\":{\"id\":\"2574\"}},\"id\":\"2567\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2625\",\"type\":\"ResetTool\"},{\"attributes\":{\"below\":[{\"id\":\"1577\"}],\"center\":[{\"id\":\"1580\"},{\"id\":\"1584\"}],\"left\":[{\"id\":\"1581\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1603\"}],\"title\":{\"id\":\"2971\"},\"toolbar\":{\"id\":\"1592\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1569\"},\"x_scale\":{\"id\":\"1573\"},\"y_range\":{\"id\":\"1571\"},\"y_scale\":{\"id\":\"1575\"}},\"id\":\"1568\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2563\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2626\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2568\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1564\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1569\",\"type\":\"DataRange1d\"},{\"attributes\":{\"start\":0},\"id\":\"2570\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2688\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2621\"},{\"id\":\"2622\"},{\"id\":\"2623\"},{\"id\":\"2624\"},{\"id\":\"2625\"},{\"id\":\"2626\"}]},\"id\":\"2628\",\"type\":\"Toolbar\"},{\"attributes\":{\"start\":0},\"id\":\"1571\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2572\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1573\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2574\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2685\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1575\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"GPUUtilization-nodeid:algo-1_gpu1\",\"formatter\":{\"id\":\"3245\"},\"ticker\":{\"id\":\"2577\"}},\"id\":\"2576\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2683\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu10\",\"formatter\":{\"id\":\"2975\"},\"ticker\":{\"id\":\"1578\"}},\"id\":\"1577\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2627\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2577\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1578\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"2576\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2579\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"2635\"},\"glyph\":{\"id\":\"2637\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2638\"},\"selection_glyph\":null,\"view\":{\"id\":\"2640\"}},\"id\":\"2639\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"1577\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1580\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3243\"},\"ticker\":{\"id\":\"2581\"}},\"id\":\"2580\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2638\",\"type\":\"Quad\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"2973\"},\"ticker\":{\"id\":\"1582\"}},\"id\":\"1581\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2581\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1582\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"2635\"}},\"id\":\"2640\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"2580\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2583\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"1581\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1584\",\"type\":\"Grid\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[820,9,0,1,0,0,1,1,0,0,0,1,0,3,0,3,5,18,19,54,16,2,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3267\"},\"selection_policy\":{\"id\":\"3268\"}},\"id\":\"2672\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"2650\"}],\"center\":[{\"id\":\"2653\"},{\"id\":\"2657\"}],\"left\":[{\"id\":\"2654\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2676\"}],\"title\":{\"id\":\"3261\"},\"toolbar\":{\"id\":\"2665\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2642\"},\"x_scale\":{\"id\":\"2646\"},\"y_range\":{\"id\":\"2644\"},\"y_scale\":{\"id\":\"2648\"}},\"id\":\"2641\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data_source\":{\"id\":\"2598\"},\"glyph\":{\"id\":\"2600\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2601\"},\"selection_glyph\":null,\"view\":{\"id\":\"2603\"}},\"id\":\"2602\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1601\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2637\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2642\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1675\",\"type\":\"Quad\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[824,3,3,0,0,1,0,0,0,1,1,0,1,0,0,4,5,13,27,57,14,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3247\"},\"selection_policy\":{\"id\":\"3248\"}},\"id\":\"2598\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"start\":0},\"id\":\"2644\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"2598\"}},\"id\":\"2603\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2584\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1585\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2441\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2646\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2585\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1586\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2648\",\"type\":\"LinearScale\"},{\"attributes\":{\"overlay\":{\"id\":\"2590\"}},\"id\":\"2586\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1591\"}},\"id\":\"1587\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis_label\":\"GPUUtilization-nodeid:algo-1_gpu0\",\"formatter\":{\"id\":\"3265\"},\"ticker\":{\"id\":\"2651\"}},\"id\":\"2650\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2587\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1588\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2651\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2588\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1589\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis\":{\"id\":\"2650\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2653\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2589\",\"type\":\"HelpTool\"},{\"attributes\":{\"below\":[{\"id\":\"2095\"}],\"center\":[{\"id\":\"2098\"},{\"id\":\"2102\"}],\"left\":[{\"id\":\"2099\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2121\"}],\"title\":{\"id\":\"3111\"},\"toolbar\":{\"id\":\"2110\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2087\"},\"x_scale\":{\"id\":\"2091\"},\"y_range\":{\"id\":\"2089\"},\"y_scale\":{\"id\":\"2093\"}},\"id\":\"2086\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2436\"},{\"id\":\"2437\"},{\"id\":\"2438\"},{\"id\":\"2439\"},{\"id\":\"2440\"},{\"id\":\"2441\"}]},\"id\":\"2443\",\"type\":\"Toolbar\"},{\"attributes\":{\"source\":{\"id\":\"1858\"}},\"id\":\"1863\",\"type\":\"CDSView\"},{\"attributes\":{\"below\":[{\"id\":\"1873\"}],\"center\":[{\"id\":\"1876\"},{\"id\":\"1880\"}],\"left\":[{\"id\":\"1877\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"1899\"}],\"title\":{\"id\":\"3051\"},\"toolbar\":{\"id\":\"1888\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1865\"},\"x_scale\":{\"id\":\"1869\"},\"y_range\":{\"id\":\"1867\"},\"y_scale\":{\"id\":\"1871\"}},\"id\":\"1864\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2399\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2087\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2400\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1915\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1865\",\"type\":\"DataRange1d\"},{\"attributes\":{\"start\":0},\"id\":\"2089\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"2405\"}},\"id\":\"2401\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"start\":0},\"id\":\"1867\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2091\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2402\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1869\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2093\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2403\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1871\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu21\",\"formatter\":{\"id\":\"3115\"},\"ticker\":{\"id\":\"2096\"}},\"id\":\"2095\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2404\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu12\",\"formatter\":{\"id\":\"3055\"},\"ticker\":{\"id\":\"1874\"}},\"id\":\"1873\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2096\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2453\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2399\"},{\"id\":\"2400\"},{\"id\":\"2401\"},{\"id\":\"2402\"},{\"id\":\"2403\"},{\"id\":\"2404\"}]},\"id\":\"2406\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"2095\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2098\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1874\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1873\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1876\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3113\"},\"ticker\":{\"id\":\"2100\"}},\"id\":\"2099\",\"type\":\"LinearAxis\"},{\"attributes\":{\"below\":[{\"id\":\"2465\"}],\"center\":[{\"id\":\"2468\"},{\"id\":\"2472\"}],\"left\":[{\"id\":\"2469\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2491\"}],\"title\":{\"id\":\"3211\"},\"toolbar\":{\"id\":\"2480\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2457\"},\"x_scale\":{\"id\":\"2461\"},\"y_range\":{\"id\":\"2459\"},\"y_scale\":{\"id\":\"2463\"}},\"id\":\"2456\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3053\"},\"ticker\":{\"id\":\"1878\"}},\"id\":\"1877\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2100\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"2450\"}},\"id\":\"2455\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"2099\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2102\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1878\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2405\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[829,2,1,1,6,63,52,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3307\"},\"selection_policy\":{\"id\":\"3308\"}},\"id\":\"2820\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis\":{\"id\":\"1877\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1880\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"2146\"}},\"id\":\"2142\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2413\"},\"glyph\":{\"id\":\"2415\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2416\"},\"selection_glyph\":null,\"view\":{\"id\":\"2418\"}},\"id\":\"2417\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu25\",\"formatter\":{\"id\":\"3065\"},\"ticker\":{\"id\":\"1911\"}},\"id\":\"1910\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[663,92,37,22,22,29,19,18,9,9,7,7,4,5,3,3,3,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3117\"},\"selection_policy\":{\"id\":\"3118\"}},\"id\":\"2117\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2416\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2145\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2103\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[664,81,33,21,6,11,13,8,10,13,0,6,6,1,3,1,2,0,1,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,0,2,2,0,1,0,0,0,0,2]},\"selected\":{\"id\":\"3057\"},\"selection_policy\":{\"id\":\"3058\"}},\"id\":\"1895\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"2413\"}},\"id\":\"2418\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1881\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2104\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2450\"},\"glyph\":{\"id\":\"2452\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2453\"},\"selection_glyph\":null,\"view\":{\"id\":\"2455\"}},\"id\":\"2454\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"2428\"}],\"center\":[{\"id\":\"2431\"},{\"id\":\"2435\"}],\"left\":[{\"id\":\"2432\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2454\"}],\"title\":{\"id\":\"3201\"},\"toolbar\":{\"id\":\"2443\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2420\"},\"x_scale\":{\"id\":\"2424\"},\"y_range\":{\"id\":\"2422\"},\"y_scale\":{\"id\":\"2426\"}},\"id\":\"2419\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1882\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"2109\"}},\"id\":\"2105\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2415\",\"type\":\"Quad\"},{\"attributes\":{\"overlay\":{\"id\":\"1887\"}},\"id\":\"1883\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2106\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2420\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1884\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2107\",\"type\":\"ResetTool\"},{\"attributes\":{\"start\":0},\"id\":\"2422\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1885\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2108\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2424\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1886\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2426\",\"type\":\"LinearScale\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2103\"},{\"id\":\"2104\"},{\"id\":\"2105\"},{\"id\":\"2106\"},{\"id\":\"2107\"},{\"id\":\"2108\"}]},\"id\":\"2110\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu14\",\"formatter\":{\"id\":\"3205\"},\"ticker\":{\"id\":\"2429\"}},\"id\":\"2428\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1881\"},{\"id\":\"1882\"},{\"id\":\"1883\"},{\"id\":\"1884\"},{\"id\":\"1885\"},{\"id\":\"1886\"}]},\"id\":\"1888\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2144\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2429\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1910\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1913\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2143\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis\":{\"id\":\"2428\"},\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2431\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1911\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3203\"},\"ticker\":{\"id\":\"2433\"}},\"id\":\"2432\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2109\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis_label\":\"Occurences\",\"formatter\":{\"id\":\"3063\"},\"ticker\":{\"id\":\"1915\"}},\"id\":\"1914\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"2117\"},\"glyph\":{\"id\":\"2119\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2120\"},\"selection_glyph\":null,\"view\":{\"id\":\"2122\"}},\"id\":\"2121\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1887\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2433\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data_source\":{\"id\":\"1895\"},\"glyph\":{\"id\":\"1897\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1898\"},\"selection_glyph\":null,\"view\":{\"id\":\"1900\"}},\"id\":\"1899\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"2432\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"2435\",\"type\":\"Grid\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2120\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1366\",\"type\":\"SaveTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1898\",\"type\":\"Quad\"},{\"attributes\":{\"source\":{\"id\":\"2117\"}},\"id\":\"2122\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2526\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1908\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[602,85,61,42,36,28,19,16,12,7,11,4,4,4,3,5,1,0,1,2,2,2,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]},\"selected\":{\"id\":\"3127\"},\"selection_policy\":{\"id\":\"3128\"}},\"id\":\"2154\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"2132\"}],\"center\":[{\"id\":\"2135\"},{\"id\":\"2139\"}],\"left\":[{\"id\":\"2136\"}],\"plot_height\":250,\"plot_width\":250,\"renderers\":[{\"id\":\"2158\"}],\"title\":{\"id\":\"3121\"},\"toolbar\":{\"id\":\"2147\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"2124\"},\"x_scale\":{\"id\":\"2128\"},\"y_range\":{\"id\":\"2126\"},\"y_scale\":{\"id\":\"2130\"}},\"id\":\"2123\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis\":{\"id\":\"1914\"},\"dimension\":1,\"grid_line_color\":\"white\",\"ticker\":null},\"id\":\"1917\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2436\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"2119\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"2124\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2437\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"navy\"},\"left\":{\"field\":\"left\"},\"line_color\":{\"value\":\"white\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1897\",\"type\":\"Quad\"},{\"attributes\":{\"start\":0},\"id\":\"2126\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"2442\"}},\"id\":\"2438\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1980\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2128\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2439\",\"type\":\"SaveTool\"},{\"attributes\":{\"data\":{\"left\":[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96],\"right\":[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98],\"top\":[608,110,52,27,27,28,14,11,12,14,6,14,9,6,3,3,3,1,2,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},\"selected\":{\"id\":\"3067\"},\"selection_policy\":{\"id\":\"3068\"}},\"id\":\"1932\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1982\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2130\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1918\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2440\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_cpu27\",\"formatter\":{\"id\":\"3125\"},\"ticker\":{\"id\":\"2133\"}},\"id\":\"2132\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1919\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2133\",\"type\":\"BasicTicker\"}],\"root_ids\":[\"3333\"]},\"title\":\"Bokeh Application\",\"version\":\"2.2.3\"}};\n", - " var render_items = [{\"docid\":\"d9af2108-bcb5-4ca5-a49f-df3aa06ee385\",\"notebook_comms_target\":\"3748\",\"root_ids\":[\"3333\"],\"roots\":{\"3333\":\"1c6ade4d-a094-44b4-b36f-95757b7218e7\"}}];\n", - " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", - "\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " } else {\n", - " var attempts = 0;\n", - " var timer = setInterval(function(root) {\n", - " if (root.Bokeh !== undefined) {\n", - " clearInterval(timer);\n", - " embed_document(root);\n", - " } else {\n", - " attempts++;\n", - " if (attempts > 100) {\n", - " clearInterval(timer);\n", - " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", - " }\n", - " }\n", - " }, 10, root)\n", - " }\n", - "})(window);" - ], - "application/vnd.bokehjs_exec.v0+json": "" - }, - "metadata": { - "application/vnd.bokehjs_exec.v0+json": { - "id": "3333" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "filtered_dimensions:{'CPUUtilization-nodeid:algo-1', 'GPUUtilization-nodeid:algo-1', 'GPUMemoryUtilization-nodeid:algo-1'}\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "from smdebug.profiler.analysis.notebook_utils.metrics_histogram import MetricsHistogram\n", "\n", @@ -611,13 +531,19 @@ "metadata": {}, "outputs": [], "source": [ + "import time\n", + "from smdebug.profiler.analysis.notebook_utils.step_timeline_chart import StepTimelineChart\n", + "\n", + "tj.wait_for_sys_profiling_data_to_be_available()\n", "tj.wait_for_framework_profiling_data_to_be_available()\n", "\n", - "from smdebug.profiler.analysis.notebook_utils.step_timeline_chart import StepTimelineChart\n", + "time.sleep(30)\n", "\n", "framework_metrics_reader = tj.get_framework_metrics_reader()\n", "framework_metrics_reader.refresh_event_file_list()\n", "\n", + "time.sleep(30)\n", + "\n", "view_step_timeline_chart = StepTimelineChart(framework_metrics_reader)" ] }, @@ -637,20 +563,9 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "9" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "python_profiling_config_tj[\"StartStep\"]" ] @@ -664,37 +579,9 @@ }, { "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Thu Apr 29 07:02:49 2021 python_stats/python_stats/81-algo-1/train-9-stepstart-1619676498401482.5_train-9-stepend-1619676498506921.8/python_stats\n", - "Thu Apr 29 07:02:49 2021 python_stats/python_stats/81-algo-1/train-9-stepend-1619676498512565.0_train-10-stepstart-1619676498517752.8/python_stats\n", - "\n", - " 3853 function calls (3708 primitive calls) in 0.110 seconds\n", - "\n", - " Ordered by: cumulative time\n", - " List reduced from 292 to 10 due to restriction <10>\n", - "\n", - " ncalls tottime percall cumtime percall filename:lineno(function)\n", - " 1 0.000 0.000 0.080 0.080 /usr/local/lib/python3.7/site-packages/tensorflow/python/eager/function.py:2827(__call__)\n", - " 1 0.000 0.000 0.080 0.080 /usr/local/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py:757(__call__)\n", - " 1 0.000 0.000 0.080 0.080 /usr/local/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py:798(_call)\n", - " 1 0.000 0.000 0.070 0.070 /usr/local/lib/python3.7/site-packages/tensorflow/python/eager/function.py:1829(_filtered_call)\n", - " 1 0.000 0.000 0.070 0.070 /usr/local/lib/python3.7/site-packages/tensorflow/python/eager/function.py:1852(_call_flat)\n", - " 1 0.060 0.060 0.060 0.060 {built-in method tensorflow.python._pywrap_tfe.TFE_Py_Execute}\n", - " 1 0.000 0.000 0.060 0.060 /usr/local/lib/python3.7/site-packages/tensorflow/python/eager/function.py:511(call)\n", - " 1 0.000 0.000 0.060 0.060 /usr/local/lib/python3.7/site-packages/tensorflow/python/eager/execute.py:33(quick_execute)\n", - " 673 0.030 0.000 0.030 0.000 {built-in method builtins.isinstance}\n", - " 1 0.000 0.000 0.020 0.020 /usr/local/lib/python3.7/site-packages/smdebug/tensorflow/keras.py:605(_save_layer_input_and_outputs)\n", - "\n", - "\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "if python_profiling_config_tj == {}:\n", " step = 9\n", @@ -740,378 +627,9 @@ }, { "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "\n", - "(function(root) {\n", - " function now() {\n", - " return new Date();\n", - " }\n", - "\n", - " var force = true;\n", - "\n", - " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", - " root._bokeh_onload_callbacks = [];\n", - " root._bokeh_is_loading = undefined;\n", - " }\n", - "\n", - " var JS_MIME_TYPE = 'application/javascript';\n", - " var HTML_MIME_TYPE = 'text/html';\n", - " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", - " var CLASS_NAME = 'output_bokeh rendered_html';\n", - "\n", - " /**\n", - " * Render data to the DOM node\n", - " */\n", - " function render(props, node) {\n", - " var script = document.createElement(\"script\");\n", - " node.appendChild(script);\n", - " }\n", - "\n", - " /**\n", - " * Handle when an output is cleared or removed\n", - " */\n", - " function handleClearOutput(event, handle) {\n", - " var cell = handle.cell;\n", - "\n", - " var id = cell.output_area._bokeh_element_id;\n", - " var server_id = cell.output_area._bokeh_server_id;\n", - " // Clean up Bokeh references\n", - " if (id != null && id in Bokeh.index) {\n", - " Bokeh.index[id].model.document.clear();\n", - " delete Bokeh.index[id];\n", - " }\n", - "\n", - " if (server_id !== undefined) {\n", - " // Clean up Bokeh references\n", - " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", - " cell.notebook.kernel.execute(cmd, {\n", - " iopub: {\n", - " output: function(msg) {\n", - " var id = msg.content.text.trim();\n", - " if (id in Bokeh.index) {\n", - " Bokeh.index[id].model.document.clear();\n", - " delete Bokeh.index[id];\n", - " }\n", - " }\n", - " }\n", - " });\n", - " // Destroy server and session\n", - " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", - " cell.notebook.kernel.execute(cmd);\n", - " }\n", - " }\n", - "\n", - " /**\n", - " * Handle when a new output is added\n", - " */\n", - " function handleAddOutput(event, handle) {\n", - " var output_area = handle.output_area;\n", - " var output = handle.output;\n", - "\n", - " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", - " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", - " return\n", - " }\n", - "\n", - " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", - "\n", - " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", - " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", - " // store reference to embed id on output_area\n", - " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", - " }\n", - " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", - " var bk_div = document.createElement(\"div\");\n", - " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", - " var script_attrs = bk_div.children[0].attributes;\n", - " for (var i = 0; i < script_attrs.length; i++) {\n", - " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", - " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", - " }\n", - " // store reference to server id on output_area\n", - " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", - " }\n", - " }\n", - "\n", - " function register_renderer(events, OutputArea) {\n", - "\n", - " function append_mime(data, metadata, element) {\n", - " // create a DOM node to render to\n", - " var toinsert = this.create_output_subarea(\n", - " metadata,\n", - " CLASS_NAME,\n", - " EXEC_MIME_TYPE\n", - " );\n", - " this.keyboard_manager.register_events(toinsert);\n", - " // Render to node\n", - " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", - " render(props, toinsert[toinsert.length - 1]);\n", - " element.append(toinsert);\n", - " return toinsert\n", - " }\n", - "\n", - " /* Handle when an output is cleared or removed */\n", - " events.on('clear_output.CodeCell', handleClearOutput);\n", - " events.on('delete.Cell', handleClearOutput);\n", - "\n", - " /* Handle when a new output is added */\n", - " events.on('output_added.OutputArea', handleAddOutput);\n", - "\n", - " /**\n", - " * Register the mime type and append_mime function with output_area\n", - " */\n", - " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", - " /* Is output safe? */\n", - " safe: true,\n", - " /* Index of renderer in `output_area.display_order` */\n", - " index: 0\n", - " });\n", - " }\n", - "\n", - " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", - " if (root.Jupyter !== undefined) {\n", - " var events = require('base/js/events');\n", - " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", - "\n", - " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", - " register_renderer(events, OutputArea);\n", - " }\n", - " }\n", - "\n", - " \n", - " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", - " root._bokeh_timeout = Date.now() + 5000;\n", - " root._bokeh_failed_load = false;\n", - " }\n", - "\n", - " var NB_LOAD_WARNING = {'data': {'text/html':\n", - " \"
\\n\"+\n", - " \"

\\n\"+\n", - " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", - " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", - " \"

\\n\"+\n", - " \"
    \\n\"+\n", - " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", - " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", - " \"
\\n\"+\n", - " \"\\n\"+\n", - " \"from bokeh.resources import INLINE\\n\"+\n", - " \"output_notebook(resources=INLINE)\\n\"+\n", - " \"\\n\"+\n", - " \"
\"}};\n", - "\n", - " function display_loaded() {\n", - " var el = document.getElementById(null);\n", - " if (el != null) {\n", - " el.textContent = \"BokehJS is loading...\";\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " if (el != null) {\n", - " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", - " }\n", - " } else if (Date.now() < root._bokeh_timeout) {\n", - " setTimeout(display_loaded, 100)\n", - " }\n", - " }\n", - "\n", - "\n", - " function run_callbacks() {\n", - " try {\n", - " root._bokeh_onload_callbacks.forEach(function(callback) {\n", - " if (callback != null)\n", - " callback();\n", - " });\n", - " } finally {\n", - " delete root._bokeh_onload_callbacks\n", - " }\n", - " console.debug(\"Bokeh: all callbacks have finished\");\n", - " }\n", - "\n", - " function load_libs(css_urls, js_urls, callback) {\n", - " if (css_urls == null) css_urls = [];\n", - " if (js_urls == null) js_urls = [];\n", - "\n", - " root._bokeh_onload_callbacks.push(callback);\n", - " if (root._bokeh_is_loading > 0) {\n", - " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", - " return null;\n", - " }\n", - " if (js_urls == null || js_urls.length === 0) {\n", - " run_callbacks();\n", - " return null;\n", - " }\n", - " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", - " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", - "\n", - " function on_load() {\n", - " root._bokeh_is_loading--;\n", - " if (root._bokeh_is_loading === 0) {\n", - " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", - " run_callbacks()\n", - " }\n", - " }\n", - "\n", - " function on_error() {\n", - " console.error(\"failed to load \" + url);\n", - " }\n", - "\n", - " for (var i = 0; i < css_urls.length; i++) {\n", - " var url = css_urls[i];\n", - " const element = document.createElement(\"link\");\n", - " element.onload = on_load;\n", - " element.onerror = on_error;\n", - " element.rel = \"stylesheet\";\n", - " element.type = \"text/css\";\n", - " element.href = url;\n", - " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", - " document.body.appendChild(element);\n", - " }\n", - "\n", - " const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\": \"T2yuo9Oe71Cz/I4X9Ac5+gpEa5a8PpJCDlqKYO0CfAuEszu1JrXLl8YugMqYe3sM\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\": \"98GDGJ0kOMCUMUePhksaQ/GYgB3+NH9h996V88sh3aOiUNX3N+fLXAtry6xctSZ6\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\": \"89bArO+nlbP3sgakeHjCo1JYxYR5wufVgA3IbUvDY+K7w4zyxJqssu7wVnfeKCq8\"};\n", - "\n", - " for (var i = 0; i < js_urls.length; i++) {\n", - " var url = js_urls[i];\n", - " var element = document.createElement('script');\n", - " element.onload = on_load;\n", - " element.onerror = on_error;\n", - " element.async = false;\n", - " element.src = url;\n", - " if (url in hashes) {\n", - " element.crossOrigin = \"anonymous\";\n", - " element.integrity = \"sha384-\" + hashes[url];\n", - " }\n", - " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", - " document.head.appendChild(element);\n", - " }\n", - " };\n", - "\n", - " function inject_raw_css(css) {\n", - " const element = document.createElement(\"style\");\n", - " element.appendChild(document.createTextNode(css));\n", - " document.body.appendChild(element);\n", - " }\n", - "\n", - " \n", - " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\"];\n", - " var css_urls = [];\n", - " \n", - "\n", - " var inline_js = [\n", - " function(Bokeh) {\n", - " Bokeh.set_log_level(\"info\");\n", - " },\n", - " function(Bokeh) {\n", - " \n", - " \n", - " }\n", - " ];\n", - "\n", - " function run_inline_js() {\n", - " \n", - " if (root.Bokeh !== undefined || force === true) {\n", - " \n", - " for (var i = 0; i < inline_js.length; i++) {\n", - " inline_js[i].call(root, root.Bokeh);\n", - " }\n", - " } else if (Date.now() < root._bokeh_timeout) {\n", - " setTimeout(run_inline_js, 100);\n", - " } else if (!root._bokeh_failed_load) {\n", - " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", - " root._bokeh_failed_load = true;\n", - " } else if (force !== true) {\n", - " var cell = $(document.getElementById(null)).parents('.cell').data().cell;\n", - " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", - " }\n", - "\n", - " }\n", - "\n", - " if (root._bokeh_is_loading === 0) {\n", - " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", - " run_inline_js();\n", - " } else {\n", - " load_libs(css_urls, js_urls, function() {\n", - " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", - " run_inline_js();\n", - " });\n", - " }\n", - "}(window));" - ], - "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(null);\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\": \"T2yuo9Oe71Cz/I4X9Ac5+gpEa5a8PpJCDlqKYO0CfAuEszu1JrXLl8YugMqYe3sM\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\": \"98GDGJ0kOMCUMUePhksaQ/GYgB3+NH9h996V88sh3aOiUNX3N+fLXAtry6xctSZ6\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\": \"89bArO+nlbP3sgakeHjCo1JYxYR5wufVgA3IbUvDY+K7w4zyxJqssu7wVnfeKCq8\"};\n\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n if (url in hashes) {\n element.crossOrigin = \"anonymous\";\n element.integrity = \"sha384-\" + hashes[url];\n }\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\"];\n var css_urls = [];\n \n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2021-04-29 07:02:58.055 ip-172-16-71-4:29196 INFO metrics_reader_base.py:134] Getting 9 event files\n", - "select events:['total']\n", - "select dimensions:['CPU', 'GPU']\n", - "filtered_events:{'total'}\n", - "filtered_dimensions:{'CPUUtilization-nodeid:algo-1', 'GPUUtilization-nodeid:algo-1', 'GPUMemoryUtilization-nodeid:algo-1'}\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": [ - "(function(root) {\n", - " function embed_document(root) {\n", - " \n", - " var docs_json = {\"2676cafa-7ab3-4f33-a5bc-59946ca4cafb\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"6303\"},{\"id\":\"6181\"}]},\"id\":\"6304\",\"type\":\"Row\"},{\"attributes\":{\"source\":{\"id\":\"6213\"}},\"id\":\"6220\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"6749\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"6219\"}],\"tooltips\":[[\"index\",\"$index\"],[\"(x,y)\",\"($x, $y)\"]]},\"id\":\"6221\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"6751\",\"type\":\"Selection\"},{\"attributes\":{\"below\":[{\"id\":\"6231\"}],\"center\":[{\"id\":\"6234\"},{\"id\":\"6238\"}],\"js_event_callbacks\":{\"selectiongeometry\":[{\"id\":\"6254\"}]},\"left\":[{\"id\":\"6235\"}],\"plot_height\":200,\"plot_width\":1000,\"renderers\":[{\"id\":\"6257\"},{\"id\":\"6259\"}],\"title\":{\"id\":\"6730\"},\"toolbar\":{\"id\":\"6246\"},\"x_range\":{\"id\":\"6183\"},\"x_scale\":{\"id\":\"6227\"},\"y_range\":{\"id\":\"6225\"},\"y_scale\":{\"id\":\"6229\"}},\"id\":\"6223\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"6752\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"end\":1619676599.7611256,\"start\":1619676123.2610095},\"id\":\"6183\",\"type\":\"Range1d\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6255\",\"type\":\"Line\"},{\"attributes\":{\"end\":102},\"id\":\"6225\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"6187\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"6227\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Time in ms\",\"formatter\":{\"id\":\"6736\"},\"ticker\":{\"id\":\"6192\"}},\"id\":\"6191\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"6229\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Time in ms\",\"formatter\":{\"id\":\"6740\"},\"ticker\":{\"id\":\"6232\"}},\"id\":\"6231\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"6191\"},\"ticker\":null,\"visible\":false},\"id\":\"6194\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"6232\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"6231\"},\"ticker\":null,\"visible\":false},\"id\":\"6234\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"6196\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"GPUUtilization-nodeid:algo-1_total\",\"formatter\":{\"id\":\"6738\"},\"ticker\":{\"id\":\"6236\"}},\"id\":\"6235\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"6213\"}},\"id\":\"6218\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6216\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"6236\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"6235\"},\"dimension\":1,\"ticker\":null,\"visible\":false},\"id\":\"6238\",\"type\":\"Grid\"},{\"attributes\":{\"height\":100,\"height_policy\":\"fixed\",\"width\":250},\"id\":\"6181\",\"type\":\"Div\"},{\"attributes\":{\"args\":{\"div\":{\"id\":\"6181\"},\"s1\":{\"id\":\"6253\"}},\"code\":\"\\n console.log('Running CustomJS callback now.');\\n var inds = s1.selected.indices;\\n console.log(inds);\\n var line = \\\" Selected index range: [\\\" + Math.min.apply(Math,inds) + \\\",\\\" + Math.max.apply(Math,inds) + \\\"]\\\\n\\\";\\n console.log(line)\\n var text = div.text.concat(line);\\n var lines = text.split(\\\"\\\\n\\\")\\n if (lines.length > 35)\\n lines.shift();\\n div.text = lines.join(\\\"\\\\n\\\");\"},\"id\":\"6254\",\"type\":\"CustomJS\"},{\"attributes\":{\"below\":[{\"id\":\"6191\"}],\"center\":[{\"id\":\"6194\"},{\"id\":\"6198\"}],\"js_event_callbacks\":{\"selectiongeometry\":[{\"id\":\"6214\"}]},\"left\":[{\"id\":\"6195\"}],\"plot_height\":200,\"plot_width\":1000,\"renderers\":[{\"id\":\"6217\"},{\"id\":\"6219\"}],\"title\":{\"id\":\"6728\"},\"toolbar\":{\"id\":\"6206\"},\"x_range\":{\"id\":\"6183\"},\"x_scale\":{\"id\":\"6187\"},\"y_range\":{\"id\":\"6185\"},\"y_scale\":{\"id\":\"6189\"}},\"id\":\"6182\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"6239\",\"type\":\"CrosshairTool\"},{\"attributes\":{\"dimensions\":\"width\",\"overlay\":{\"id\":\"6205\"}},\"id\":\"6200\",\"type\":\"BoxSelectTool\"},{\"attributes\":{\"dimensions\":\"width\",\"overlay\":{\"id\":\"6245\"}},\"id\":\"6240\",\"type\":\"BoxSelectTool\"},{\"attributes\":{\"end\":102},\"id\":\"6185\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"6241\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"6202\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"6242\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"6189\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"6243\",\"type\":\"SaveTool\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"6204\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"6734\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"6192\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"6736\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"6199\"},{\"id\":\"6200\"},{\"id\":\"6201\"},{\"id\":\"6202\"},{\"id\":\"6203\"},{\"id\":\"6204\"},{\"id\":\"6221\"}]},\"id\":\"6206\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"6245\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_total\",\"formatter\":{\"id\":\"6734\"},\"ticker\":{\"id\":\"6196\"}},\"id\":\"6195\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6256\",\"type\":\"Circle\"},{\"attributes\":{\"args\":{\"div\":{\"id\":\"6181\"},\"s1\":{\"id\":\"6213\"}},\"code\":\"\\n console.log('Running CustomJS callback now.');\\n var inds = s1.selected.indices;\\n console.log(inds);\\n var line = \\\" Selected index range: [\\\" + Math.min.apply(Math,inds) + \\\",\\\" + Math.max.apply(Math,inds) + \\\"]\\\\n\\\";\\n console.log(line)\\n var text = div.text.concat(line);\\n var lines = text.split(\\\"\\\\n\\\")\\n if (lines.length > 35)\\n lines.shift();\\n div.text = lines.join(\\\"\\\\n\\\");\"},\"id\":\"6214\",\"type\":\"CustomJS\"},{\"attributes\":{\"axis\":{\"id\":\"6195\"},\"dimension\":1,\"ticker\":null,\"visible\":false},\"id\":\"6198\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"6253\"},\"glyph\":{\"id\":\"6255\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"6258\"}},\"id\":\"6257\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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9rXQEpMi2EFetPASkyLYQWq0EBOTIthB3bMwE5Mi2EG2tFATkyLYQZa0cBOTIthBwbSQE5Mi2EEotLATkyLYQVa00BOTIthB9rPwE5Mi2EHhsxAUkyLYQaO0MBSTIthB/7NQFJMi2EEWtXAUkyLYQSqzkBSTIthBuLOwFJMi2EGBs9AUkyLYQai38BSTIthBf7QQFZMi2EHDszAVkyLYQQq2UBWTIthBw7NwFZMi2EGhtJAVkyLYQT+2sBWTIthBAbTQFZMi2EHds/AVkyLYQeqzEBaTIthBSrYwFpMi2EH9tlAWkyLYQXazcBaTIthBv7OQFpMi2EFjtrAWkyLYQUi00BaTIthByrPwFpMi2EFKsxAXkyLYQbi0MBeTIthBqLZQF5Mi2EHotXAXkyLYQYC3kBeTIthB6rOwF5Mi2EG4s9AXkyLYQX2z8BeTIthBILYQGJMi2EF0tDAYkyLYQeq0UBiTIthB4LlwGJMi2EH4tZAYkyLYQeG1sBiTIthB37TQGJMi2EFKs/AYkyLYQT2zEBmTIthBwbMwGZMi2EHfs1AZkyLYQWGzcBmTIthB17OQGZMi2EFDtLAZkyLYQde00BmTIthBIbfwGZMi2EGjsxAakyLYQZ20MBqTIthB6rRQGpMi2EHqs3AakyLYQd2zkBqTIthBzLSwGpMi2EFjtNAakyLYQeq08BqTIthBwbMQG5Mi2EFetjAbkyLYQYGzUBuTIthBH7VwG5Mi2EEqtJAbkyLYQZi0sBuTIthBlrPQG5Mi2EE/s/AbkyLYQR2zEByTIthBgrYwHJMi2EE9tVAckyLYQX22cByTIthB+LOQHJMi2EHqtrAckyLYQWO00ByTIthBvrXwHJMi2EFYtRAdkyLYQda1MB2TIthBH7RQHZMi2EHdtHAdkyLYQVi0kB2TIthBHbSwHZMi2EFItdAdkyLYQWO08B2TIthBX7MQHpMi2EFfszAekyLYQeizUB6TIthB4rNwHpMi2EF/s5AekyLYQUG1sB6TIthBlrTQHpMi2EGYtPAekyLYQTe0EB+TIthB3bMwH5Mi2EG2tFAfkyLYQcO0cB+TIthBqbOQH5Mi2EHds7AfkyLYQei10B+TIthBPbTwH5Mi2EGAtRAgkyLYQWO0MCCTIthBPbNQIJMi2EFftHAgkyLYQQO1kCCTIthB6LawIJMi2EGBs9AgkyLYQd+z8CCTIthBzLMQIZMi2EEWtDAhkyLYQYqzUCGTIthBYbNwIZMi2EF9tJAhkyLYQR+3sCGTIthB37TQIZMi2EFItvAhkyLYQeK1ECKTIthB6LMwIpMi2EH2s1AikyLYQX21cCKTIthB/7OQIpMi2EE/t7AikyLYQSC00CKTIthBXrbwIpMi2EHAsxAjkyLYQUO0MCOTIthB6LRQI5Mi2EEgtHAjkyLYQeiykCOTIthBPbSwI5Mi2EH2s9AjkyLYQcGz8COTIthBY7MQJJMi2EFItjAkkyLYQSC0UCSTIthB17NwJJMi2EHXs5AkkyLYQQq0sCSTIthBNrXQJJMi2EEBtfAkkyLYQX21ECWTIthBVrQwJZMi2EGjtVAlkyLYQaGzcCWTIthBqrOQJZMi2EFIs7AlkyLYQV230CWTIthBwLPwJZMi2EHdsxAmkyLYQYizMCaTIthBzLNQJpMi2EFItXAmkyLYQaO2kCaTIthBNrSwJpMi2EEgtNAmkyLYQbbO8CaTIthBKv8QJ5Mi2EFItDAnkyLYQfizUCeTIthBdrRwJ5Mi2EE9tJAnkyLYQWHAsCeTIthBA7TQJ5Mi2EHAs/AnkyLYQQq3ECiTIthBHbUwKJMi2EF9s1AokyLYQcyzcCiTIthB6LKQKJMi2EFCt7AokyLYQSC30CiTIthBI7bwKJMi2EEBtRApkyLYQZ2zMCmTIthBQ7NQKZMi2EEqs3ApkyLYQWO3kCmTIthBP7OwKZMi2EHKs9ApkyLYQcO08CmTIthBnbMQKpMi2EHiszAqkyLYQT+zUCqTIthBw7NwKpMi2EEds5AqkyLYQf+ysCqTIthByrTQKpMi2EFWs/AqkyLYQeizECuTIthBobQwK5Mi2EEjt1ArkyLYQfiycCuTIthBo7OQK5Mi2EH2srArkyLYQaGz0CuTIthB6LLwK5Mi2EGCthAskyLYQf2zMCyTIthBIrNQLJMi2EEJs3AskyLYQYqzkCyTIthBVrOwLJMi2EGqs9AskyLYQXaz8CyTIthBgbMQLZMi2EFjszAtkyLYQUOzUC2TIthBKLNwLZMi2EEdtJAtkyLYQVizsC2TIthBNrPQLZMi2EEDs/AtkyLYQeqzEC6TIthB3bYwLpMi2EHBtVAukyLYQf+ycC6TIthBSrOQLpMi2EEis7AukyLYQfa00C6TIthB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kyLYQaO0MFmTIthBWLRQWZMi2EHKtHBZkyLYQcGzkFmTIthBiLOwWZMi2EHfs9BZkyLYQb+28FmTIthBobQQWpMi2EEqtDBakyLYQVazUFqTIthB4rRwWpMi2EHMs5BakyLYQYK2sFqTIthBf7PQWpMi2EEKtPBakyLYQUi1EFuTIthBP7UwW5Mi2EFhtVBbkyLYQd20cFuTIthBqrOQW5Mi2EGps7BbkyLYQamz0FuTIthBCrTwW5Mi2EG/sxBckyLYQUq2MFyTIthBnbRQXJMi2EH4s3BckyLYQTe0kFyTIthB4rOwXJMi2EHhs9BckyLYQT208FyTIthBtrUQXZMi2EHBszBdkyLYQQq2UF2TIthB9rNwXZMi2EHds5BdkyLYQeKzsF2TIthBH7TQXZMi2EHMs/BdkyLYQbi0EF6TIthBqbQwXpMi2EEgtVBekyLYQde0cF6TIthB37OQXpMi2EGWs7BekyLYQd2z0F6TIthBY7bwXpMi2EGjtRBfkyLYQX22MF+TIthB17NQX5Mi2EF/tXBfkyLYQVi2kF+TIthBfbSwX5Mi2EHMtdBfkyLYQVa08F+TIthBgrMQYJMi2EEDtTBgkyLYQfi0UGCTIthBIbRwYJMi2EHhs5BgkyLYQWm2sGCTIthBnbPQYJMi2EHBs/BgkyLYQde0EGGTIthBSrMwYZMi2EEBtlBhkyLYQd+zcGGTIthBSLWQYZMi2EGItLBhkyLYQSq10GGTIthB9rjwYZMi2EH4shBikyLYQcG2MGKTIthBY7ZQYpMi2EHBtHBikyLYQeKzkGKTIthBwbSwYpMi2EFYs9BikyLYQXS28GKTIthB9rMQY5Mi2EHdtDBjkyLYQfizUGOTIthBH7VwY5Mi2EE9tZBjkyLYQd+0sGOTIthBzLTQY5Mi2EFqs/BjkyLYQd20EGSTIthB37MwZJMi2EHhs1BkkyLYQd+zcGSTIthBCrSQZJMi2EEdtbBkkyLYQWO00GSTIthBiLXwZJMi2EG2txBlkyLYQYK0MGWTIthBCrRQZZMi2EHds3BlkyLYQcyzkGWTIthB+LSwZZMi2EHotNBlkyLYQV6z8GWTIthBPbYQZpMi2EHdszBmkyLYQSq1UGaTIthBILRwZpMi2EF/tZBmkyLYQeGzsGaTIthBSrfQZpMi2EEJtfBmkyLYQUOzEGeTIthB4rMwZ5Mi2EFYtVBnkyLYQam0cGeTIthBwbSQZ5Mi2EGCs7BnkyLYQXS00GeTIthBvrXwZ5Mi2EHXtBBokyLYQcG0MGiTIthBiLNQaJMi2EHftHBokyLYQYGzkGiTIthBXrawaJMi2EGBs9BokyLYQUG28GiTIthBY7cQaZMi2EEqtjBpkyLYQeq1UGmTIthBAbZwaZMi2EH9s5BpkyLYQcy1sGmTIthB9rPQaZMi2EH4tvBpkyLYQTa3EGqTIthB+LMwapMi2EEqtFBqkyLYQfa1cGqTIthBWLaQapMi2EG/trBqkyLYQai10GqTIthBgLbwapMi2EFqsxBrkyLYQVi3MGuTIthBl7VQa5Mi2EHMs3BrkyLYQWqzkGuTIthBo7Owa5Mi2EGds9BrkyLYQaqz8GuTIthB3bIQbJMi2EFKtjBskyLYQd2zUGyTIthBNrRwbJMi2EF2tZBskyLYQei1sGyTIthBirbQbJMi2EHMtfBskyLYQei1EG2TIthBCrYwbZMi2EH2tlBtkyLYQTa3cG2TIthBgrWQbZMi2EH2trBtkyLYQeKz0G2TIthBSLbwbZMi2EE=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[955]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[955]}},\"selected\":{\"id\":\"6745\"},\"selection_policy\":{\"id\":\"6746\"}},\"id\":\"6213\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"6199\",\"type\":\"CrosshairTool\"},{\"attributes\":{\"source\":{\"id\":\"6253\"}},\"id\":\"6258\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"6253\"},\"glyph\":{\"id\":\"6256\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"6260\"}},\"id\":\"6259\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"6253\"}},\"id\":\"6260\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"6213\"},\"glyph\":{\"id\":\"6215\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"6218\"}},\"id\":\"6217\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"6259\"}],\"tooltips\":[[\"index\",\"$index\"],[\"(x,y)\",\"($x, $y)\"]]},\"id\":\"6261\",\"type\":\"HoverTool\"},{\"attributes\":{\"below\":[{\"id\":\"6271\"}],\"center\":[{\"id\":\"6274\"},{\"id\":\"6278\"}],\"js_event_callbacks\":{\"selectiongeometry\":[{\"id\":\"6294\"}]},\"left\":[{\"id\":\"6275\"}],\"plot_height\":200,\"plot_width\":1000,\"renderers\":[{\"id\":\"6297\"},{\"id\":\"6299\"}],\"title\":{\"id\":\"6732\"},\"toolbar\":{\"id\":\"6286\"},\"x_range\":{\"id\":\"6183\"},\"x_scale\":{\"id\":\"6267\"},\"y_range\":{\"id\":\"6265\"},\"y_scale\":{\"id\":\"6269\"}},\"id\":\"6263\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"6201\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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SrOwEpMi2EEps9ASkyLYQbez8BKTIthBhbMQE5Mi2EFfszATkyLYQXizUBOTIthBY7NwE5Mi2EEts5ATkyLYQV+zsBOTIthBcLPQE5Mi2EFos/ATkyLYQVezEBSTIthBY7MwFJMi2EFfs1AUkyLYQVezcBSTIthB3bKQFJMi2EFXs7AUkyLYQXiz0BSTIthBU7TwFJMi2EF4sxAVkyLYQTmzMBWTIthBMbNQFZMi2EFbs3AVkyLYQUqzkBWTIthBeLOwFZMi2EFws9AVkyLYQTmz8BWTIthBU7MQFpMi2EFntDAWkyLYQYWzUBaTIthBW7NwFpMi2EExs5AWkyLYQS2zsBaTIthBKbPQFpMi2EE5s/AWkyLYQVuzEBeTIthBNbMwF5Mi2EELtVAXkyLYQVO0cBeTIthBcLSQF5Mi2EFbs7AXkyLYQTWz0BeTIthBNbPwF5Mi2EEtsxAYkyLYQTmzMBiTIthBzLRQGJMi2EFKtXAYkyLYQdmzkBiTIthB0LSwGJMi2EGFs9AYkyLYQRyz8BiTIthBA7MQGZMi2EEgszAZkyLYQT6zUBmTIthBJbNwGZMi2EHEspAZkyLYQbOzsBmTIthBeLPQGZMi2EE+s/AZkyLYQS2zEBqTIthBRrMwGpMi2EE+s1AakyLYQVOzcBqTIthBMbOQGpMi2EFXs7AakyLYQVOz0BqTIthBY7PwGpMi2EE1sxAbkyLYQSmzMBuTIthBTrNQG5Mi2EFKs3AbkyLYQXSzkBuTIthBY7OwG5Mi2EGBs9AbkyLYQUqz8BuTIthBHLMQHJMi2EGiszAckyLYQTGzUByTIthBmrNwHJMi2EF9s5AckyLYQT6zsByTIthBcLPQHJMi2EGNtPAckyLYQZKzEB2TIthBgbQwHZMi2EGes1AdkyLYQUK0cB2TIthB0LOQHZMi2EFXs7AdkyLYQf+z0B2TIthBxLPwHZMi2EFGsxAekyLYQTmzMB6TIthBV7NQHpMi2EFfs3AekyLYQRSzkB6TIthB2bOwHpMi2EFws9AekyLYQUaz8B6TIthBQrMQH5Mi2EFCszAfkyLYQU6zUB+TIthBX7NwH5Mi2EFGs5AfkyLYQUKzsB+TIthBILPQH5Mi2EHysvAfkyLYQV+0ECCTIthBW7MwIJMi2EFOs1AgkyLYQd2zcCCTIthBgbOQIJMi2EE5s7AgkyLYQWyz0CCTIthBX7PwIJMi2EE1sxAhkyLYQYmzMCGTIthBW7NQIZMi2EFOs3AhkyLYQTmzkCGTIthBY7OwIZMi2EGFs9AhkyLYQXS08CGTIthBxLQQIpMi2EHEszAikyLYQVuzUCKTIthBgbRwIpMi2EGJs5AikyLYQZG0sCKTIthBlrPQIpMi2EGatPAikyLYQa+zECOTIthBU7MwI5Mi2EFKs1AjkyLYQUazcCOTIthB9rKQI5Mi2EE+s7AjkyLYQVOz0COTIthBTrPwI5Mi2EFGsxAkkyLYQXC0MCSTIthBorNQJJMi2EFGs3AkkyLYQTmzkCSTIthBA7OwJJMi2EGvs9AkkyLYQUKz8CSTIthBB7QQJZMi2EHhsjAlkyLYQQ+0UCWTIthBibNwJZMi2EE1s5AlkyLYQTWzsCWTIthBlrPQJZMi2EGns/AlkyLYQfayECaTIthBaLMwJpMi2EFbs1AmkyLYQWOzcCaTIthBprSQJpMi2EE1s7AmkyLYQSmz0CaTIthBdLPwJpMi2EEi/hAnkyLYQVuzMCeTIthBaLNQJ5Mi2EFTs3AnkyLYQRizkCeTIthB6rOwJ5Mi2EGFs9AnkyLYQUKz8CeTIthBU7MQKJMi2EF0szAokyLYQUKzUCiTIthBRrNwKJMi2EHuspAokyLYQTGzsCiTIthBU7PQKJMi2EEts/AokyLYQXSzECmTIthBW7MwKZMi2EFGs1ApkyLYQT6zcCmTIthBW7OQKZMi2EFCs7ApkyLYQa+z0CmTIthBorPwKZMi2EFjsxAqkyLYQS2zMCqTIthBELNQKpMi2EEQs3AqkyLYQeaykCqTIthB1bKwKpMi2EFCs9AqkyLYQSCz8CqTIthB3bIQK5Mi2EEgszArkyLYQRizUCuTIthBzLJwK5Mi2EHhspArkyLYQcCysCuTIthB2bLQK5Mi2EGzsvArkyLYQRSzECyTIthBC7MwLJMi2EHqslAskyLYQdmycCyTIthB4bKQLJMi2EG3srAskyLYQRCz0CyTIthBObPwLJMi2EFTsxAtkyLYQS2zMC2TIthBY7NQLZMi2EEts3AtkyLYQdWykC2TIthBKbOwLZMi2EExs9AtkyLYQQuz8C2TIthBeLMQLpMi2EEHszAukyLYQeqyUC6TIthB2bJwLpMi2EEYs5AukyLYQSWzsC6TIthB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kyLYQTmzEFmTIthBSrMwWZMi2EFbs1BZkyLYQUazcFmTIthBNbOQWZMi2EF0s7BZkyLYQVez0FmTIthBibPwWZMi2EFwsxBakyLYQV+zMFqTIthBNbNQWpMi2EFws3BakyLYQe6ykFqTIthBV7OwWpMi2EFjs9BakyLYQf+y8FqTIthB+rMQW5Mi2EHAszBbkyLYQYGzUFuTIthBzLNwW5Mi2EE1s5BbkyLYQSWzsFuTIthBPrPQW5Mi2EE1s/BbkyLYQVuzEFyTIthBdLMwXJMi2EFXs1BckyLYQXCzcFyTIthBU7OQXJMi2EFfs7BckyLYQWOz0FyTIthBdLPwXJMi2EEHsxBdkyLYQT6zMF2TIthBQrNQXZMi2EFss3BdkyLYQVuzkF2TIthBX7OwXZMi2EGSs9BdkyLYQZqz8F2TIthBFLMQXpMi2EFGszBekyLYQZ6zUF6TIthBcLNwXpMi2EFfs5BekyLYQXizsF6TIthBRrPQXpMi2EFKs/BekyLYQauzEF+TIthBRrMwX5Mi2EFbs1BfkyLYQS2zcF+TIthB8rOQX5Mi2EEYs7BfkyLYQf+z0F+TIthB0LPwX5Mi2EGNsxBgkyLYQUazMGCTIthByLJQYJMi2EEDtHBgkyLYQdCzkGCTIthBW7OwYJMi2EFfs9BgkyLYQUaz8GCTIthBaLMQYZMi2EEgszBhkyLYQWOzUGGTIthBD7RwYZMi2EH2s5BhkyLYQZ6zsGGTIthBeLPQYZMi2EHMs/BhkyLYQRizEGKTIthBKbMwYpMi2EE+s1BikyLYQWizcGKTIthBX7OQYpMi2EFTs7BikyLYQVez0GKTIthBX7PwYpMi2EFbsxBjkyLYQVOzMGOTIthBfbNQY5Mi2EFOs3BjkyLYQX2zkGOTIthBX7OwY5Mi2EF4s9BjkyLYQUqz8GOTIthBW7MQZJMi2EFwszBkkyLYQT6zUGSTIthBW7NwZJMi2EEYs5BkkyLYQXCzsGSTIthB6rLQZJMi2EH/s/BkkyLYQeqzEGWTIthBeLMwZZMi2EFjs1BlkyLYQWOzcGWTIthBRrOQZZMi2EGFs7BlkyLYQZaz0GWTIthBU7PwZZMi2EFbsxBmkyLYQdGyMGaTIthBibNQZpMi2EHMsnBmkyLYQWe0kGaTIthB8rOwZpMi2EELtNBmkyLYQQu08GaTIthBV7MQZ5Mi2EHIszBnkyLYQfKzUGeTIthBcLNwZ5Mi2EFbs5BnkyLYQfaysGeTIthBhbPQZ5Mi2EFftPBnkyLYQWizEGiTIthBPrMwaJMi2EFws1BokyLYQVezcGiTIthBdLOQaJMi2EF8tLBokyLYQV+z0GiTIthBr7TwaJMi2EHItBBpkyLYQVu0MGmTIthBprRQaZMi2EHItHBpkyLYQRSzkGmTIthBV7SwaZMi2EHEs9BpkyLYQeq08GmTIthBA7UQapMi2EFbszBqkyLYQSWzUGqTIthBeLRwapMi2EHutJBqkyLYQbu0sGqTIthBB7TQapMi2EHVsvBqkyLYQdmyEGuTIthBRrQwa5Mi2EFstFBrkyLYQTWzcGuTIthB5rKQa5Mi2EH/srBrkyLYQQuz0GuTIthBB7Pwa5Mi2EHdshBskyLYQRS0MGyTIthBMbNQbJMi2EEHs3BskyLYQWO0kGyTIthBr7SwbJMi2EELtdBskyLYQV+08GyTIthBKLUQbZMi2EG3tDBtkyLYQYW0UG2TIthByLRwbZMi2EExtJBtkyLYQYW0sG2TIthBNbPQbZMi2EGRtPBtkyLYQQ==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[956]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAA0D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAMA9QAAAAAAAAAAAAAAAAACAI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPQ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAIkAAAAAAAIAmQAAAAAAAgCdAAAAAAACAJ0AAAAAAAAAmQAAAAAAAACVAAAAAAACAJkAAAAAAAIAmQAAAAAAAACVAAAAAAAAAKEAAAAAAAIAlQAAAAAAAACVAAAAAAACAJkAAAAAAAAAmQAAAAAAAgCVAAAAAAAAAJkAAAAAAAIAnQAAAAAAAgCZAAAAAAAAAJ0AAAAAAAAAlQAAAAAAAACVAAAAAAAAAI0AAAAAAAIA4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAChAAAAAAAAAJUAAAAAAAAAkQAAAAAAAACVAAAAAAACAJkAAAAAAAIAlQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAnQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAlQAAAAAAAACVAAAAAAAAAJUAAAAAAAAAnQAAAAAAAACdAAAAAAACAJUAAAAAAAAAlQAAAAAAAACRAAAAAAACAJkAAAAAAAIAmQAAAAAAAgCZAAAAAAAAAJ0AAAAAAAAAlQAAAAAAAgCJAAAAAAAAADEAAAAAAAIAmQAAAAAAAgCRAAAAAAACAJEAAAAAAAAAmQAAAAAAAgCdAAAAAAACAJkAAAAAAAAAlQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAmQAAAAAAAACVAAAAAAAAAJ0AAAAAAAIAmQAAAAAAAACZAAAAAAACAJkAAAAAAAIAlQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAgCVAAAAAAAAA4D8AAAAAAIAhQAAAAAAAACNAAAAAAAAAJUAAAAAAAAAlQAAAAAAAACNAAAAAAAAAKEAAAAAAAIAjQAAAAAAAgCRAAAAAAAAAJUAAAAAAAIAkQAAAAAAAgCZAAAAAAAAAJUAAAAAAAIAkQAAAAAAAgCZAAAAAAACAJkAAAAAAAIAlQAAAAAAAACVAAAAAAACAJkAAAAAAAIAlQAAAAAAAACZAAAAAAAAAJkAAAAAAAIAmQAAAAAAAACRAAAAAAAAAJ0AAAAAAAAAcQAAAAAAAACJAAAAAAAAACkAAAAAAAIAmQAAAAAAAgCVAAAAAAAAAJkAAAAAAAIAkQAAAAAAAAChAAAAAAACAJkAAAAAAAIAmQAAAAAAAgCVAAAAAAAAAJUAAAAAAAIAnQAAAAAAAACVAAAAAAAAAJEAAAAAAAIAmQAAAAAAAgCZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAoQAAAAAAAACZAAAAAAACAJkAAAAAAAAAlQAAAAAAAAPQ/AAAAAAAAI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[956]}},\"selected\":{\"id\":\"6751\"},\"selection_policy\":{\"id\":\"6752\"}},\"id\":\"6293\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"end\":102},\"id\":\"6265\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"6203\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"6267\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6215\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"6269\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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SrOwEpMi2EEps9ASkyLYQbez8BKTIthBhbMQE5Mi2EFfszATkyLYQXizUBOTIthBY7NwE5Mi2EEts5ATkyLYQV+zsBOTIthBcLPQE5Mi2EFos/ATkyLYQVezEBSTIthBY7MwFJMi2EFfs1AUkyLYQVezcBSTIthB3bKQFJMi2EFXs7AUkyLYQXiz0BSTIthBU7TwFJMi2EF4sxAVkyLYQTmzMBWTIthBMbNQFZMi2EFbs3AVkyLYQUqzkBWTIthBeLOwFZMi2EFws9AVkyLYQTmz8BWTIthBU7MQFpMi2EFntDAWkyLYQYWzUBaTIthBW7NwFpMi2EExs5AWkyLYQS2zsBaTIthBKbPQFpMi2EE5s/AWkyLYQVuzEBeTIthBNbMwF5Mi2EELtVAXkyLYQVO0cBeTIthBcLSQF5Mi2EFbs7AXkyLYQTWz0BeTIthBNbPwF5Mi2EEtsxAYkyLYQTmzMBiTIthBzLRQGJMi2EFKtXAYkyLYQdmzkBiTIthB0LSwGJMi2EGFs9AYkyLYQRyz8BiTIthBA7MQGZMi2EEgszAZkyLYQT6zUBmTIthBJbNwGZMi2EHEspAZkyLYQbOzsBmTIthBeLPQGZMi2EE+s/AZkyLYQS2zEBqTIthBRrMwGpMi2EE+s1AakyLYQVOzcBqTIthBMbOQGpMi2EFXs7AakyLYQVOz0BqTIthBY7PwGpMi2EE1sxAbkyLYQSmzMBuTIthBTrNQG5Mi2EFKs3AbkyLYQXSzkBuTIthBY7OwG5Mi2EGBs9AbkyLYQUqz8BuTIthBHLMQHJMi2EGiszAckyLYQTGzUByTIthBmrNwHJMi2EF9s5AckyLYQT6zsByTIthBcLPQHJMi2EGNtPAckyLYQZKzEB2TIthBgbQwHZMi2EGes1AdkyLYQUK0cB2TIthB0LOQHZMi2EFXs7AdkyLYQf+z0B2TIthBxLPwHZMi2EFGsxAekyLYQTmzMB6TIthBV7NQHpMi2EFfs3AekyLYQRSzkB6TIthB2bOwHpMi2EFws9AekyLYQUaz8B6TIthBQrMQH5Mi2EFCszAfkyLYQU6zUB+TIthBX7NwH5Mi2EFGs5AfkyLYQUKzsB+TIthBILPQH5Mi2EHysvAfkyLYQV+0ECCTIthBW7MwIJMi2EFOs1AgkyLYQd2zcCCTIthBgbOQIJMi2EE5s7AgkyLYQWyz0CCTIthBX7PwIJMi2EE1sxAhkyLYQYmzMCGTIthBW7NQIZMi2EFOs3AhkyLYQTmzkCGTIthBY7OwIZMi2EGFs9AhkyLYQXS08CGTIthBxLQQIpMi2EHEszAikyLYQVuzUCKTIthBgbRwIpMi2EGJs5AikyLYQZG0sCKTIthBlrPQIpMi2EGatPAikyLYQa+zECOTIthBU7MwI5Mi2EFKs1AjkyLYQUazcCOTIthB9rKQI5Mi2EE+s7AjkyLYQVOz0COTIthBTrPwI5Mi2EFGsxAkkyLYQXC0MCSTIthBorNQJJMi2EFGs3AkkyLYQTmzkCSTIthBA7OwJJMi2EGvs9AkkyLYQUKz8CSTIthBB7QQJZMi2EHhsjAlkyLYQQ+0UCWTIthBibNwJZMi2EE1s5AlkyLYQTWzsCWTIthBlrPQJZMi2EGns/AlkyLYQfayECaTIthBaLMwJpMi2EFbs1AmkyLYQWOzcCaTIthBprSQJpMi2EE1s7AmkyLYQSmz0CaTIthBdLPwJpMi2EEi/hAnkyLYQVuzMCeTIthBaLNQJ5Mi2EFTs3AnkyLYQRizkCeTIthB6rOwJ5Mi2EGFs9AnkyLYQUKz8CeTIthBU7MQKJMi2EF0szAokyLYQUKzUCiTIthBRrNwKJMi2EHuspAokyLYQTGzsCiTIthBU7PQKJMi2EEts/AokyLYQXSzECmTIthBW7MwKZMi2EFGs1ApkyLYQT6zcCmTIthBW7OQKZMi2EFCs7ApkyLYQa+z0CmTIthBorPwKZMi2EFjsxAqkyLYQS2zMCqTIthBELNQKpMi2EEQs3AqkyLYQeaykCqTIthB1bKwKpMi2EFCs9AqkyLYQSCz8CqTIthB3bIQK5Mi2EEgszArkyLYQRizUCuTIthBzLJwK5Mi2EHhspArkyLYQcCysCuTIthB2bLQK5Mi2EGzsvArkyLYQRSzECyTIthBC7MwLJMi2EHqslAskyLYQdmycCyTIthB4bKQLJMi2EG3srAskyLYQRCz0CyTIthBObPwLJMi2EFTsxAtkyLYQS2zMC2TIthBY7NQLZMi2EEts3AtkyLYQdWykC2TIthBKbOwLZMi2EExs9AtkyLYQQuz8C2TIthBeLMQLpMi2EEHszAukyLYQeqyUC6TIthB2bJwLpMi2EEYs5AukyLYQSWzsC6TIthB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kyLYQTmzEFmTIthBSrMwWZMi2EFbs1BZkyLYQUazcFmTIthBNbOQWZMi2EF0s7BZkyLYQVez0FmTIthBibPwWZMi2EFwsxBakyLYQV+zMFqTIthBNbNQWpMi2EFws3BakyLYQe6ykFqTIthBV7OwWpMi2EFjs9BakyLYQf+y8FqTIthB+rMQW5Mi2EHAszBbkyLYQYGzUFuTIthBzLNwW5Mi2EE1s5BbkyLYQSWzsFuTIthBPrPQW5Mi2EE1s/BbkyLYQVuzEFyTIthBdLMwXJMi2EFXs1BckyLYQXCzcFyTIthBU7OQXJMi2EFfs7BckyLYQWOz0FyTIthBdLPwXJMi2EEHsxBdkyLYQT6zMF2TIthBQrNQXZMi2EFss3BdkyLYQVuzkF2TIthBX7OwXZMi2EGSs9BdkyLYQZqz8F2TIthBFLMQXpMi2EFGszBekyLYQZ6zUF6TIthBcLNwXpMi2EFfs5BekyLYQXizsF6TIthBRrPQXpMi2EFKs/BekyLYQauzEF+TIthBRrMwX5Mi2EFbs1BfkyLYQS2zcF+TIthB8rOQX5Mi2EEYs7BfkyLYQf+z0F+TIthB0LPwX5Mi2EGNsxBgkyLYQUazMGCTIthByLJQYJMi2EEDtHBgkyLYQdCzkGCTIthBW7OwYJMi2EFfs9BgkyLYQUaz8GCTIthBaLMQYZMi2EEgszBhkyLYQWOzUGGTIthBD7RwYZMi2EH2s5BhkyLYQZ6zsGGTIthBeLPQYZMi2EHMs/BhkyLYQRizEGKTIthBKbMwYpMi2EE+s1BikyLYQWizcGKTIthBX7OQYpMi2EFTs7BikyLYQVez0GKTIthBX7PwYpMi2EFbsxBjkyLYQVOzMGOTIthBfbNQY5Mi2EFOs3BjkyLYQX2zkGOTIthBX7OwY5Mi2EF4s9BjkyLYQUqz8GOTIthBW7MQZJMi2EFwszBkkyLYQT6zUGSTIthBW7NwZJMi2EEYs5BkkyLYQXCzsGSTIthB6rLQZJMi2EH/s/BkkyLYQeqzEGWTIthBeLMwZZMi2EFjs1BlkyLYQWOzcGWTIthBRrOQZZMi2EGFs7BlkyLYQZaz0GWTIthBU7PwZZMi2EFbsxBmkyLYQdGyMGaTIthBibNQZpMi2EHMsnBmkyLYQWe0kGaTIthB8rOwZpMi2EELtNBmkyLYQQu08GaTIthBV7MQZ5Mi2EHIszBnkyLYQfKzUGeTIthBcLNwZ5Mi2EFbs5BnkyLYQfaysGeTIthBhbPQZ5Mi2EFftPBnkyLYQWizEGiTIthBPrMwaJMi2EFws1BokyLYQVezcGiTIthBdLOQaJMi2EF8tLBokyLYQV+z0GiTIthBr7TwaJMi2EHItBBpkyLYQVu0MGmTIthBprRQaZMi2EHItHBpkyLYQRSzkGmTIthBV7SwaZMi2EHEs9BpkyLYQeq08GmTIthBA7UQapMi2EFbszBqkyLYQSWzUGqTIthBeLRwapMi2EHutJBqkyLYQbu0sGqTIthBB7TQapMi2EHVsvBqkyLYQdmyEGuTIthBRrQwa5Mi2EFstFBrkyLYQTWzcGuTIthB5rKQa5Mi2EH/srBrkyLYQQuz0GuTIthBB7Pwa5Mi2EHdshBskyLYQRS0MGyTIthBMbNQbJMi2EEHs3BskyLYQWO0kGyTIthBr7SwbJMi2EELtdBskyLYQV+08GyTIthBKLUQbZMi2EG3tDBtkyLYQYW0UG2TIthByLRwbZMi2EExtJBtkyLYQYW0sG2TIthBNbPQbZMi2EGRtPBtkyLYQQ==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[956]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAAAAAAOA/AAAAAAAA4D8AAAAAAAD0PwAAAAAAAABAAAAAAAAA/D8AAAAAAADoPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAA6D8AAAAAAADQPwAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAA4D8AAAAAAAAAAAAAAAAAANA/AAAAAAAA4D8AAAAAAADQPwAAAAAAANA/AAAAAAAA4D8AAAAAAADoPwAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D8AAAAAAADgPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAAPg/AAAAAAAA0D8AAAAAACBKQAAAAAAAAAAAAAAAAABAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPkAAAAAAAIBDQAAAAAAA4ENAAAAAAADgQ0AAAAAAAKBCQAAAAAAAAEJAAAAAAACAQ0AAAAAAAIBDQAAAAAAA4EFAAAAAAADgQ0AAAAAAAKBCQAAAAAAAgEFAAAAAAACgQ0AAAAAAAOBCQAAAAAAAAEJAAAAAAABAQ0AAAAAAAABEQAAAAAAAgENAAAAAAADAQ0AAAAAAAEBCQAAAAAAAYEFAAAAAAAAAQEAAAAAAAOBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBAQAAAAAAAwDhAAAAAAACgQUAAAAAAAEBBQAAAAAAAIEJAAAAAAABgQ0AAAAAAAGBCQAAAAAAAQENAAAAAAADgQ0AAAAAAAMBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAKBBQAAAAAAAAEJAAAAAAACgQkAAAAAAAOBDQAAAAAAAoENAAAAAAADAQkAAAAAAAABCQAAAAAAAoEBAAAAAAACgQ0AAAAAAAKBDQAAAAAAAoEJAAAAAAADAQ0AAAAAAAABCQAAAAAAAAERAAAAAAAAAMEAAAAAAAGBDQAAAAAAAoEFAAAAAAADgQUAAAAAAAIBDQAAAAAAAAERAAAAAAACgQ0AAAAAAAGBCQAAAAAAAYENAAAAAAABAQ0AAAAAAAOBBQAAAAAAAoEFAAAAAAABgQ0AAAAAAAGBCQAAAAAAAQENAAAAAAAAAQ0AAAAAAAEBCQAAAAAAA4EJAAAAAAADAQkAAAAAAAABDQAAAAAAA4EBAAAAAAABgQ0AAAAAAAIBCQAAAAAAAoEJAAAAAAAAA9D8AAAAAAOBCQAAAAAAAYEFAAAAAAAAgQkAAAAAAACBCQAAAAAAAAEBAAAAAAAAgREAAAAAAAIBAQAAAAAAAoEFAAAAAAABgQUAAAAAAAABCQAAAAAAAQENAAAAAAACgQUAAAAAAAABBQAAAAAAAQENAAAAAAACAQ0AAAAAAAMBCQAAAAAAAwEFAAAAAAACAQ0AAAAAAAKBCQAAAAAAAYENAAAAAAABAQ0AAAAAAAABDQAAAAAAAAEFAAAAAAADgQ0AAAAAAAEA4QAAAAAAAgENAAAAAAAAAKEAAAAAAAKBDQAAAAAAAgEJAAAAAAADAQkAAAAAAAIBBQAAAAAAAIERAAAAAAABAQ0AAAAAAAIBDQAAAAAAAwEJAAAAAAACAQkAAAAAAAMBDQAAAAAAAAEJAAAAAAADAQUAAAAAAAEBDQAAAAAAAoENAAAAAAAAAQ0AAAAAAAGBDQAAAAAAAoENAAAAAAACAQ0AAAAAAAOBDQAAAAAAAAENAAAAAAABgQ0AAAAAAAABCQAAAAAAAABNAAAAAAADgREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAADQPwAAAAAAAOA/AAAAAAAA4D8AAAAAAADQPwAAAAAAAAAAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[956]}},\"selected\":{\"id\":\"6748\"},\"selection_policy\":{\"id\":\"6749\"}},\"id\":\"6253\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis_label\":\"Time in ms\",\"formatter\":{\"id\":\"6744\"},\"ticker\":{\"id\":\"6272\"}},\"id\":\"6271\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"6738\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"6239\"},{\"id\":\"6240\"},{\"id\":\"6241\"},{\"id\":\"6242\"},{\"id\":\"6243\"},{\"id\":\"6244\"},{\"id\":\"6261\"}]},\"id\":\"6246\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"6272\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"6271\"},\"ticker\":null,\"visible\":false},\"id\":\"6274\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"GPUMemoryUtilization-nodeid:algo-1_total\",\"formatter\":{\"id\":\"6742\"},\"ticker\":{\"id\":\"6276\"}},\"id\":\"6275\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"6276\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"6275\"},\"dimension\":1,\"ticker\":null,\"visible\":false},\"id\":\"6278\",\"type\":\"Grid\"},{\"attributes\":{\"args\":{\"div\":{\"id\":\"6181\"},\"s1\":{\"id\":\"6293\"}},\"code\":\"\\n console.log('Running CustomJS callback now.');\\n var inds = s1.selected.indices;\\n console.log(inds);\\n var line = \\\" Selected index range: [\\\" + Math.min.apply(Math,inds) + \\\",\\\" + Math.max.apply(Math,inds) + \\\"]\\\\n\\\";\\n console.log(line)\\n var text = div.text.concat(line);\\n var lines = text.split(\\\"\\\\n\\\")\\n if (lines.length > 35)\\n lines.shift();\\n div.text = lines.join(\\\"\\\\n\\\");\"},\"id\":\"6294\",\"type\":\"CustomJS\"},{\"attributes\":{},\"id\":\"6279\",\"type\":\"CrosshairTool\"},{\"attributes\":{\"dimensions\":\"width\",\"overlay\":{\"id\":\"6285\"}},\"id\":\"6280\",\"type\":\"BoxSelectTool\"},{\"attributes\":{},\"id\":\"6281\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"6282\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"6283\",\"type\":\"SaveTool\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"6284\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"6745\",\"type\":\"Selection\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"6279\"},{\"id\":\"6280\"},{\"id\":\"6281\"},{\"id\":\"6282\"},{\"id\":\"6283\"},{\"id\":\"6284\"},{\"id\":\"6301\"}]},\"id\":\"6286\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"6742\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"6744\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"6740\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"6285\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"6244\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6295\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"6296\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"6293\"},\"glyph\":{\"id\":\"6295\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"6298\"}},\"id\":\"6297\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"6293\"}},\"id\":\"6298\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"6293\"},\"glyph\":{\"id\":\"6296\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"6300\"}},\"id\":\"6299\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"6293\"}},\"id\":\"6300\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"6299\"}],\"tooltips\":[[\"index\",\"$index\"],[\"(x,y)\",\"($x, $y)\"]]},\"id\":\"6301\",\"type\":\"HoverTool\"},{\"attributes\":{\"children\":[{\"id\":\"6182\"},{\"id\":\"6223\"},{\"id\":\"6263\"}]},\"id\":\"6303\",\"type\":\"Column\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"6205\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"6213\"},\"glyph\":{\"id\":\"6216\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"6220\"}},\"id\":\"6219\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\"},\"id\":\"6728\",\"type\":\"Title\"},{\"attributes\":{\"text\":\"\"},\"id\":\"6730\",\"type\":\"Title\"},{\"attributes\":{\"text\":\"\"},\"id\":\"6732\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"6746\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"6748\",\"type\":\"Selection\"}],\"root_ids\":[\"6304\"]},\"title\":\"Bokeh Application\",\"version\":\"2.2.3\"}};\n", - " var render_items = [{\"docid\":\"2676cafa-7ab3-4f33-a5bc-59946ca4cafb\",\"notebook_comms_target\":\"6754\",\"root_ids\":[\"6304\"],\"roots\":{\"6304\":\"b9ffb79e-9caa-497c-938a-3932cd4888bb\"}}];\n", - " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", - "\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " } else {\n", - " var attempts = 0;\n", - " var timer = setInterval(function(root) {\n", - " if (root.Bokeh !== undefined) {\n", - " clearInterval(timer);\n", - " embed_document(root);\n", - " } else {\n", - " attempts++;\n", - " if (attempts > 100) {\n", - " clearInterval(timer);\n", - " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", - " }\n", - " }\n", - " }, 10, root)\n", - " }\n", - "})(window);" - ], - "application/vnd.bokehjs_exec.v0+json": "" - }, - "metadata": { - "application/vnd.bokehjs_exec.v0+json": { - "id": "6304" - } - }, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "from smdebug.profiler.analysis.notebook_utils.timeline_charts import TimelineCharts\n", "\n", @@ -1158,7 +676,7 @@ "outputs": [], "source": [ "# Note change index range below with selected index range from above cell\n", - "view_timeline_charts.find_time_annotations([808, 831])" + "view_timeline_charts.find_time_annotations([400, 440])" ] }, { @@ -1175,7 +693,7 @@ "outputs": [], "source": [ "# Note change index range below with selected index range from above cell\n", - "view_timeline_charts.plot_detailed_profiler_data([808, 831])" + "view_timeline_charts.plot_detailed_profiler_data([400, 440])" ] }, { @@ -1191,385 +709,9 @@ }, { "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "\n", - "(function(root) {\n", - " function now() {\n", - " return new Date();\n", - " }\n", - "\n", - " var force = true;\n", - "\n", - " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", - " root._bokeh_onload_callbacks = [];\n", - " root._bokeh_is_loading = undefined;\n", - " }\n", - "\n", - " var JS_MIME_TYPE = 'application/javascript';\n", - " var HTML_MIME_TYPE = 'text/html';\n", - " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", - " var CLASS_NAME = 'output_bokeh rendered_html';\n", - "\n", - " /**\n", - " * Render data to the DOM node\n", - " */\n", - " function render(props, node) {\n", - " var script = document.createElement(\"script\");\n", - " node.appendChild(script);\n", - " }\n", - "\n", - " /**\n", - " * Handle when an output is cleared or removed\n", - " */\n", - " function handleClearOutput(event, handle) {\n", - " var cell = handle.cell;\n", - "\n", - " var id = cell.output_area._bokeh_element_id;\n", - " var server_id = cell.output_area._bokeh_server_id;\n", - " // Clean up Bokeh references\n", - " if (id != null && id in Bokeh.index) {\n", - " Bokeh.index[id].model.document.clear();\n", - " delete Bokeh.index[id];\n", - " }\n", - "\n", - " if (server_id !== undefined) {\n", - " // Clean up Bokeh references\n", - " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", - " cell.notebook.kernel.execute(cmd, {\n", - " iopub: {\n", - " output: function(msg) {\n", - " var id = msg.content.text.trim();\n", - " if (id in Bokeh.index) {\n", - " Bokeh.index[id].model.document.clear();\n", - " delete Bokeh.index[id];\n", - " }\n", - " }\n", - " }\n", - " });\n", - " // Destroy server and session\n", - " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", - " cell.notebook.kernel.execute(cmd);\n", - " }\n", - " }\n", - "\n", - " /**\n", - " * Handle when a new output is added\n", - " */\n", - " function handleAddOutput(event, handle) {\n", - " var output_area = handle.output_area;\n", - " var output = handle.output;\n", - "\n", - " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", - " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", - " return\n", - " }\n", - "\n", - " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", - "\n", - " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", - " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", - " // store reference to embed id on output_area\n", - " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", - " }\n", - " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", - " var bk_div = document.createElement(\"div\");\n", - " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", - " var script_attrs = bk_div.children[0].attributes;\n", - " for (var i = 0; i < script_attrs.length; i++) {\n", - " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", - " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", - " }\n", - " // store reference to server id on output_area\n", - " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", - " }\n", - " }\n", - "\n", - " function register_renderer(events, OutputArea) {\n", - "\n", - " function append_mime(data, metadata, element) {\n", - " // create a DOM node to render to\n", - " var toinsert = this.create_output_subarea(\n", - " metadata,\n", - " CLASS_NAME,\n", - " EXEC_MIME_TYPE\n", - " );\n", - " this.keyboard_manager.register_events(toinsert);\n", - " // Render to node\n", - " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", - " render(props, toinsert[toinsert.length - 1]);\n", - " element.append(toinsert);\n", - " return toinsert\n", - " }\n", - "\n", - " /* Handle when an output is cleared or removed */\n", - " events.on('clear_output.CodeCell', handleClearOutput);\n", - " events.on('delete.Cell', handleClearOutput);\n", - "\n", - " /* Handle when a new output is added */\n", - " events.on('output_added.OutputArea', handleAddOutput);\n", - "\n", - " /**\n", - " * Register the mime type and append_mime function with output_area\n", - " */\n", - " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", - " /* Is output safe? */\n", - " safe: true,\n", - " /* Index of renderer in `output_area.display_order` */\n", - " index: 0\n", - " });\n", - " }\n", - "\n", - " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", - " if (root.Jupyter !== undefined) {\n", - " var events = require('base/js/events');\n", - " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", - "\n", - " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", - " register_renderer(events, OutputArea);\n", - " }\n", - " }\n", - "\n", - " \n", - " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", - " root._bokeh_timeout = Date.now() + 5000;\n", - " root._bokeh_failed_load = false;\n", - " }\n", - "\n", - " var NB_LOAD_WARNING = {'data': {'text/html':\n", - " \"
\\n\"+\n", - " \"

\\n\"+\n", - " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", - " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", - " \"

\\n\"+\n", - " \"
    \\n\"+\n", - " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", - " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", - " \"
\\n\"+\n", - " \"\\n\"+\n", - " \"from bokeh.resources import INLINE\\n\"+\n", - " \"output_notebook(resources=INLINE)\\n\"+\n", - " \"\\n\"+\n", - " \"
\"}};\n", - "\n", - " function display_loaded() {\n", - " var el = document.getElementById(null);\n", - " if (el != null) {\n", - " el.textContent = \"BokehJS is loading...\";\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " if (el != null) {\n", - " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", - " }\n", - " } else if (Date.now() < root._bokeh_timeout) {\n", - " setTimeout(display_loaded, 100)\n", - " }\n", - " }\n", - "\n", - "\n", - " function run_callbacks() {\n", - " try {\n", - " root._bokeh_onload_callbacks.forEach(function(callback) {\n", - " if (callback != null)\n", - " callback();\n", - " });\n", - " } finally {\n", - " delete root._bokeh_onload_callbacks\n", - " }\n", - " console.debug(\"Bokeh: all callbacks have finished\");\n", - " }\n", - "\n", - " function load_libs(css_urls, js_urls, callback) {\n", - " if (css_urls == null) css_urls = [];\n", - " if (js_urls == null) js_urls = [];\n", - "\n", - " root._bokeh_onload_callbacks.push(callback);\n", - " if (root._bokeh_is_loading > 0) {\n", - " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", - " return null;\n", - " }\n", - " if (js_urls == null || js_urls.length === 0) {\n", - " run_callbacks();\n", - " return null;\n", - " }\n", - " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", - " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", - "\n", - " function on_load() {\n", - " root._bokeh_is_loading--;\n", - " if (root._bokeh_is_loading === 0) {\n", - " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", - " run_callbacks()\n", - " }\n", - " }\n", - "\n", - " function on_error() {\n", - " console.error(\"failed to load \" + url);\n", - " }\n", - "\n", - " for (var i = 0; i < css_urls.length; i++) {\n", - " var url = css_urls[i];\n", - " const element = document.createElement(\"link\");\n", - " element.onload = on_load;\n", - " element.onerror = on_error;\n", - " element.rel = \"stylesheet\";\n", - " element.type = \"text/css\";\n", - " element.href = url;\n", - " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", - " document.body.appendChild(element);\n", - " }\n", - "\n", - " const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\": \"T2yuo9Oe71Cz/I4X9Ac5+gpEa5a8PpJCDlqKYO0CfAuEszu1JrXLl8YugMqYe3sM\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\": \"98GDGJ0kOMCUMUePhksaQ/GYgB3+NH9h996V88sh3aOiUNX3N+fLXAtry6xctSZ6\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\": \"89bArO+nlbP3sgakeHjCo1JYxYR5wufVgA3IbUvDY+K7w4zyxJqssu7wVnfeKCq8\"};\n", - "\n", - " for (var i = 0; i < js_urls.length; i++) {\n", - " var url = js_urls[i];\n", - " var element = document.createElement('script');\n", - " element.onload = on_load;\n", - " element.onerror = on_error;\n", - " element.async = false;\n", - " element.src = url;\n", - " if (url in hashes) {\n", - " element.crossOrigin = \"anonymous\";\n", - " element.integrity = \"sha384-\" + hashes[url];\n", - " }\n", - " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", - " document.head.appendChild(element);\n", - " }\n", - " };\n", - "\n", - " function inject_raw_css(css) {\n", - " const element = document.createElement(\"style\");\n", - " element.appendChild(document.createTextNode(css));\n", - " document.body.appendChild(element);\n", - " }\n", - "\n", - " \n", - " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\"];\n", - " var css_urls = [];\n", - " \n", - "\n", - " var inline_js = [\n", - " function(Bokeh) {\n", - " Bokeh.set_log_level(\"info\");\n", - " },\n", - " function(Bokeh) {\n", - " \n", - " \n", - " }\n", - " ];\n", - "\n", - " function run_inline_js() {\n", - " \n", - " if (root.Bokeh !== undefined || force === true) {\n", - " \n", - " for (var i = 0; i < inline_js.length; i++) {\n", - " inline_js[i].call(root, root.Bokeh);\n", - " }\n", - " } else if (Date.now() < root._bokeh_timeout) {\n", - " setTimeout(run_inline_js, 100);\n", - " } else if (!root._bokeh_failed_load) {\n", - " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", - " root._bokeh_failed_load = true;\n", - " } else if (force !== true) {\n", - " var cell = $(document.getElementById(null)).parents('.cell').data().cell;\n", - " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", - " }\n", - "\n", - " }\n", - "\n", - " if (root._bokeh_is_loading === 0) {\n", - " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", - " run_inline_js();\n", - " } else {\n", - " load_libs(css_urls, js_urls, function() {\n", - " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", - " run_inline_js();\n", - " });\n", - " }\n", - "}(window));" - ], - "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(null);\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\": \"T2yuo9Oe71Cz/I4X9Ac5+gpEa5a8PpJCDlqKYO0CfAuEszu1JrXLl8YugMqYe3sM\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\": \"98GDGJ0kOMCUMUePhksaQ/GYgB3+NH9h996V88sh3aOiUNX3N+fLXAtry6xctSZ6\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\": \"89bArO+nlbP3sgakeHjCo1JYxYR5wufVgA3IbUvDY+K7w4zyxJqssu7wVnfeKCq8\"};\n\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n if (url in hashes) {\n element.crossOrigin = \"anonymous\";\n element.integrity = \"sha384-\" + hashes[url];\n }\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js\"];\n var css_urls = [];\n \n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2021-04-29 07:03:34.927 ip-172-16-71-4:29196 INFO metrics_reader_base.py:134] Getting 9 event files\n", - "select events:['.*']\n", - "select dimensions:['.*CPU', '.*GPU', '.*Memory']\n", - "filtered_events:{'cpu23', 'cpu20', 'cpu19', 'cpu26', 'cpu18', 'cpu2', 'WriteThroughputInBytesPerSecond', 'cpu8', 'gpu3', 'cpu10', 'cpu16', 'ReceiveBytesPerSecond', 'TransmitBytesPerSecond', 'cpu17', 'gpu1', 'cpu13', 'cpu29', 'cpu3', 'IOPS', 'cpu22', 'MemoryUsedPercent', 'cpu11', 'cpu12', 'cpu25', 'cpu24', 'cpu1', 'cpu28', 'cpu9', 'gpu2', 'gpu0', 'cpu21', 'cpu27', 'ReadThroughputInBytesPerSecond', 'total', 'cpu5', 'cpu15', 'cpu4', 'cpu30', 'cpu7', 'cpu31', 'cpu14', 'cpu6', 'cpu0'}\n", - "filtered_dimensions:{'CPUUtilization-nodeid:algo-1', 'GPUUtilization-nodeid:algo-1', 'GPUMemoryUtilization-nodeid:algo-1'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "BokehUserWarning: ColumnDataSource's columns must be of the same length. Current lengths: ('dh', 44), ('dw', 44), ('image', 43), ('metric', 43), ('x', 44), ('y', 44)\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/javascript": [ - "(function(root) {\n", - " function embed_document(root) {\n", - " \n", - " var docs_json = {\"b4a0e15d-9c39-4537-8e81-b2747bae2095\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"11036\"}],\"center\":[{\"id\":\"11039\"},{\"id\":\"11043\"}],\"left\":[{\"id\":\"11040\"}],\"plot_height\":450,\"plot_width\":1000,\"renderers\":[{\"id\":\"11057\"}],\"title\":{\"id\":\"11968\"},\"toolbar\":{\"id\":\"11048\"},\"x_range\":{\"id\":\"11028\"},\"x_scale\":{\"id\":\"11032\"},\"y_range\":{\"id\":\"11030\"},\"y_scale\":{\"id\":\"11034\"}},\"id\":\"11027\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"11032\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"11973\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"end\":44},\"id\":\"11030\",\"type\":\"Range1d\"},{\"attributes\":{\"data\":{\"dh\":[1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3],\"dw\":[955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955,955],\"image\":[{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAAABSuB6F61EAQAAAAAAAAChAAAAAAAAAGEDhehSuR2EvQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEAAAAAAAAAgQAAAAAAAAChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuR+F6FBdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAAAAAAAAAAAYQFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXP8/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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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XI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/zczMzMzMDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/P1yPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAABcj8L1KJwzQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAhetRuB6FJ0AAAAAAAAAAAFK4HoXrURBAAAAAAAAAAEAAAAAAAAAAAKRwPQrXowBAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzMzMzA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAKEAAAAAAAAAQQIXrUbgehRlAAAAAAAAALEBSuB6F61EQQKRwPQrXowBA4XoUrkdhL0AAAAAAAAAoQAAAAAAAAABAAAAAAAAAAEBSuB6F61EQQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAQQFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABBAAAAAAAAAGEAAAAAAAAAAAAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAABSuB6F61EAQFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAgQAAAAAAAAABAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAGEAAAAAAAAAAAFyPwvUoXB9AAAAAAAAAAEBSuB6F61EAQIXrUbgehRdAAAAAAAAAGEAAAAAAAAAQQD0K16NwPSNAUrgehetRAMAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0B7FK5H4XoYQAAAAAAAAAAAAAAAAAAAAEBSuB6F61EAQM3MzMzMzA5ApHA9CtejAEAAAAAAAAAQQFK4HoXrUQBApHA9CtejAEAAAAAAAAAYQAAAAAAAAAAAXI/C9ShcH0B7FK5H4XoYQFK4HoXrURBAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABhAUrgehetRAEB7FK5H4XoYQAAAAAAAAABAAAAAAAAAAACF61G4HoUXQAAAAAAAAABAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK16NwPQoRQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAQQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAQQFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuR+F6FK4QQAAAAAAAABhArkfhehQuIkB7FK5H4XoYQBSuR+F6FCpAAAAAAAAAAAAAAAAAAAAAAHsUrkfhujZAAAAAAAAAAABI4XoUrkcdQAAAAAAAACxASOF6FK5HMEBmZmZmZmYkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK5H4XoULjJAuB6F61E4NkCuR+F6FO40QLgehetRuCZAZmZmZmZmJEAAAAAAAAAAAAAAAAAAAAAAUrgehetRAEBI4XoUrkclQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKRwPQrXowBAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/UrgehetRIEAAAAAAAAAAAKRwPQrXowBAUrgehetREED2KFyPwnUrQAAAAAAAIExAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAUrgehetRAEBcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFK4HoXrURBAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAgQEjhehSuRyVApHA9CtdjMUB7FK5H4XoYQAAAAAAAAAAAAAAAAAAAIEBmZmZmZmYkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAPQrXo3C9JUCamZmZmZkjQGZmZmZmJjNAKVyPwvWoKkAAAAAAAAApQIXrUbgehRNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFK4HoXrUQBAAAAAAAAAAACkcD0K16MAQAAAAAAAAB5AAAAAAAAAGECF61G4HgUxQOxRuB6FqzBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmZmZmJED2KFyPwnUrQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAZmZmZmZmIUAK16NwPQoRQK5H4XoULiJAFK5H4XoUGkAAAAAAAAAAAAAAAAAAAAAAUrgehetRAECkcD0K16MAQHsUrkfhehhAAAAAAAAAAAA9CtejcD0jQAAAAAAAAAAACtejcD0KAUCF61G4HoUXQAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAK5H4XoUrhBAAAAAAAAAEEBSuB6F61EAQIXrUbgehRlAAAAAAAAAGUAAAAAAAAAZQAAAAAAAAABAUrgehetRAEAK16NwPYopQAAAAAAAAAAAUrgehetRAEAUrkfhepQsQAAAAAAAAAAAZmZmZmZmEUAAAAAAAMAyQD0K16NwvSVAcT0K16NwLkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmZmZuYrQAAAAAAAABBAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuR+F6FBdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmZmZmYhQAAAAAAAABhAAAAAAAAAAACuR+F6FK4QQIXrUbgehRdApHA9CtejAEAK16NwPQoBQFK4HoXrUSBAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClcj8L1aDRAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAUrgeheuRNUAAAAAAAAAAAAAAAAAAAEVAAAAAAAAAIEAAAAAAAAAAAAAAAAAAADhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7FK5H4XoYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAMAyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADpAAAAAAAAAJEBcj8L1KFz/P1yPwvUoXP8/ZmZmZmZmJEAAAAAAAAApQAAAAAAAABBAAAAAAAAAAAAzMzMzM1NAQAAAAAAAwDJAAAAAAAAAKEAAAAAAAAAYQFK4HoXrUQBAzczMzMzMDkAAAAAAAAAQQAAAAAAAADJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5QDMzMzMzczZAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKVyPwvUoLUAAAAAAAAAoQHsUrkfheihAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABBA4XoUrkdhL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9ihcj8J1K0DsUbgehSs9QIXrUbgehRdAZmZmZmZmJEBcj8L1KFz/P1K4HoXrURBAAAAAAAAAIEB7FK5H4XooQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAAB7FK5H4XoYQAAAAAAAABBAAAAAAAAAEEA9CtejcH04QAAAAAAAACRAXI/C9Shc/z9SuB6F61EgQFyPwvUoXP8/KVyPwvVoNEAAAAAAAAAQQGZmZmZmZiRAAAAAAAAAAABI4XoUrsctQFyPwvUonDNA9ihcj8J1K0AAAAAAAAAAAAAAAAAAADZAAAAAAAAAKEAUrkfhepQsQDMzMzMzU0BAAAAAAAAAAEAAAAAAAAAoQFK4HoXr0TVAAAAAAAAAMEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABmZmZmZmYkQAAAAAAAACxAAAAAAAAAMkAUrkfhepQsQAAAAAAAACBAAAAAAAAAOkBcj8L1KFz/P3sUrkfhOjNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEDhehSuR2EvQHsUrkfhehhAAAAAAAAAAAAAAAAAAAAAAFK4HoXrUSBAZmZmZmamMUAAAAAAAAA0QAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAUrkfhelQwQAAAAAAAACRAAAAAAADAMkAAAAAAAAAAAAAAAAAAABhAAAAAAAAANEAUrkfhelQwQAAAAAAAACxAAAAAAAAAAABSuB6F61EAQFyPwvUonDNAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmZmZmYkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQFyPwvUoXP8/AAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAIXrUbgehRdAAAAAAAAAGEBcj8L1KFz/P3sUrkfhehhAUrgeheuRPEBSuB6F61EQQAAAAAAAAAAAAAAAAAAAAABSuB6F65E1QAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAXI/C9Shc/z9cj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgehetRAECuR+F6FK4QQK5H4XoUrhBAhetRuB6FJ0CuR+F6FK4QQFyPwvUoXB9AUrgehetREEAAAAAAAAAQQFK4HoXrUQBAAAAAAAAAIEBSuB6F61EgQFK4HoXrUQBAAAAAAAAAGECF61G4HoUXQKRwPQrXowBAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAQQFK4HoXrURBArkfhehSuEEBSuB6F61EQQAAAAAAAABBAUrgehetRAEBSuB6F61EAQAAAAAAAAAAAUrgehetREEBcj8L1KFwPQAAAAAAAABhAUrgehetREEAAAAAAAAAQQFK4HoXrURBAAAAAAAAAAABcj8L1KFwfQKRwPQrXowBAAAAAAAAALEAAAAAAAAAYQAAAAAAAAAAAhetRuB6FF0AAAAAAAAAQQD0K16NwPSNAUrgehetREEAAAAAAAABKQHsUrkfhehhAUrgehetRAEAAAAAAAAAQQFK4HoXrUSBAAAAAAAAAGEAAAAAAAAAYQHsUrkfhehhAAAAAAAAAAACamZmZmZkjQAAAAAAAACBAAAAAAAAAEECuR+F6FK4QQFyPwvUoXA9AUrgehetRAEB7FK5H4XoYQFK4HoXrUQBAAAAAAAAAEEAAAAAAAAAAAAAAAAAAABhAUrgehetREECF61G4HoUXQFK4HoXrUQBAUrgehetRAEAAAAAAAAAQQKRwPQrXowBAUrgehetREEBSuB6F61EAQFK4HoXrUSBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHsUrkfheihAj8L1KFzPN0AzMzMzM3M0QEjhehSuxzFAw/UoXI9CN0AAAAAAAEA/QFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7FK5H4ZpSQNejcD0KV1ZAAAAAAAAAWUDD9Shcj4JYQHsUrkfh6lZA9ihcj8LlU0DNzMzMzIxWQAAAAAAAAFlA9ihcj8LlU0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA16NwPQpXVkBSuB6F69FPQAAAAAAAAFlAAAAAAAAAWUBmZmZmZmYoQArXo3A9CgNApHA9CtejAECkcD0K16MAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAFK4HoXrUQBApHA9CtejAEAAAAAAAAAAAAAAAAAAAAAAFK5H4XoUGkAAAAAAAAAAAClcj8L1yE1AAAAAAAAAWUA9CtejcH1IQAAAAAAAACBAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK16NwPQoRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIXrUbgehRdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAACtejcD0KEUBcj8L1KFwBQFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexSuR+F6GEBSuB6F61EgQAAAAAAAABhArkfhehSuEEApXI/C9SgtQEjhehSuRyVAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/XI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAAECkcD0K16MAQAAAAAAAAClAmpmZmZmZI0AAAAAAAAAYQK5H4XoUrhBAKVyPwvUoLUAAAAAAAAAAABSuR+F6lCxAUrgehetRAECamZmZmZkjQFyPwvUoXA9AAAAAAAAAAACkcD0K16MAQArXo3A9CgFAUrgehetRAEAAAAAAAAAAAAAAAAAAACBAAAAAAAAAGUBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQArXo3A9CgFAzczMzMzMDkAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcAUAAAAAAAAAAQAAAAAAAAAAAuB6F61E4JkB7FK5H4XoYQArXo3A9ChFAUrgehetRIEBSuB6F61EQQKRwPQrXowBAAAAAAAAAAECamZmZmZkiQEjhehSuxzFAUrgehetRAEBSuB6F61EgQFK4HoXrURBAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAFK5H4XoUKkAfhetRuB4vQMP1KFyPwhFAAAAAAAAAAAAK16NwPQoBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArkfhehSuGkBSuB6F61EgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmZmZmYRQFK4HoXrUQBAAAAAAAAAAABcj8L1KFwfQAAAAAAAAAAA16NwPQrXJEAAAAAAAAAZQFK4HoXrURBAAAAAAAAAAAAAAAAAAAAAQFK4HoXrUQBAUrgehetRAEAAAAAAAAAAAAAAAAAAAABAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAUrgeheuRNUAAAAAAAAAAAAAAAAAAADZAAAAAAAAAAAAAAAAAAAAAAEjhehSuhzdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFz/P9ejcD0K1yRAAAAAAAAAAEAAAAAAAAAQQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhetRuB6FF0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAABAXI/C9ShcH0AAAAAAAAAAAAAAAAAAACRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z+uR+F6FK4QQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHsUrkfhehhAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAECF61G4HoUXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgehetRAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9CtejcH04QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAA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XI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EAQAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AUrgehetREEBcj8L1KFz/P3sUrkfheihAAAAAAAAAAAAAAAAAAAAgQKRwPQrXowBAzczMzMzMDkAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/P1K4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAUrgehetRAEBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAQQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQFK4HoXrUQBAAAAAAAAAKEBcj8L1KFwfQAAAAAAAACBAAAAAAAAAAABcj8L1KFwPQAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAADNzMzMzMwOQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/P1K4HoXrUQBAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAACF61G4HoUXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEDNzMzMzMwOQAAAAAAAAAAAAAAAAAAAKEAAAAAAAAA0QKRwPQrXowBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAUrgehetRAECkcD0K16MAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEBSuB6F61EQQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAJEAAAAAAAAAAAFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"mpmZmZmZI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMkAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAABSuB6F61EAQFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/XI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAFK4HoXrURBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1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AAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAEhAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7FK5H4apQQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIXrUbgehRdAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/P1yPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAYQIXrUbgehRlAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"exSuR+F6WEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQIXrUbgehVhAAAAAAACAUkAAAAAAAAA4QAAAAAAAAAAAAAAAAAAAAADsUbgehSs9QFyPwvUoXB9AAAAAAAAAAEBSuB6F65FFQAAAAAAAAABAUrgehetREEAAAAAAAAAAAFyPwvUoXB9AAAAAAAAAAACF61G4HoUXQAAAAAAAAAAAAAAAAAAAAEBcj8L1KFwPQAAAAAAAAAAAZmZmZmamMUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAhetRuB6FF0ApXI/C9Wg0QAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF61G4HoUXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXA9AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEAAAAAAAAAAAAAAAAAAAAAAAAAAAADAMkBcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACamZmZmZkjQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexSuR+F6KECuR+F6FK4QQPYoXI/CdStAAAAAAAAAKUDXo3A9CtckQClcj8L16DdAFK5H4XoUKkAAAAAAAAAYQMP1KFyPwh5AAAAAAAAAGEDXo3A9CtckQMP1KFyPwlVA9ihcj8KVV0AK16NwPapAQHsUrkfhehhAAAAAAAAAGEAAAAAAAAAgQAAAAAAAACBAAAAAAAAAIEA9CtejcH1IQClcj8L16DdAexSuR+GqUECamZmZmQlYQFyPwvUonFdAAAAAAAAAWUAAAAAAAABZQClcj8L1OFZA4XoUrkfBVEAfhetRuI5XQAAAAAAAAFlAmpmZmZkJWED2KFyPwpVXQAAAAAAAAFlAH4XrUbiOV0AAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlA7FG4HoXrKkAAAAAAAAAgQAAAAAAAABhAAAAAAAAAGEDsUbgehaswQAAAAAAAABhA7FG4HoVrOkBSuB6F61EgQArXo3A9CiNASOF6FK7HIUCF61G4HgUxQIXrUbgehRlAAAAAAAAAAEBI4XoUrkcrQKRwPQrXowBAAAAAAAAAAABcj8L1KFwBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAFK5H4XoUGkCkcD0K12M4QFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgeheuRM0BSuB6F65EzQOxRuB6FqzBAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAArXo3A9ChFAAAAAAAAAAAAAAAAAAAAZQKRwPQrXYzFArkfhehSuEEAAAAAAAAAAAK5H4XoUDlJAAAAAAAAAWUCkcD0K1xNXQLgehetRKFFASOF6FK7HLUBmZmZmZmYkQEjhehSuhzdAhetRuB4FMUAAAAAAAAAkQClcj8L1qDtAw/UoXI+CSUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUDXo3A9CldTQFyPwvUonFdAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABXQAAAAAAAAFlAAAAAAAAATUBcj8L1KJw+QAAAAAAAABlArkfhehSuGkCuR+F6FK4QQHsUrkfhehhAAAAAAAAAUUDhehSuR6FNQFyPwvUonE5ASOF6FK6HN0DXo3A9CtckQI/C9ShcTzFA4XoUrkdhL0A9CtejcH05QLgehetRWEBAFK5H4XpUMECF61G4HoUZQAAAAAAAwDJArkfhehSuEEAK16NwPTpVQHsUrkfhuk9ApHA9CtdjQ0AfhetRuF4/QAAAAAAAAENAAAAAAAAAQkAAAAAAAKBCQK5H4XoU7jRAj8L1KFxPQUCuR+F6FK4QQNejcD0K1yRAAAAAAAAAGECkcD0K12MxQKRwPQrXowBAhetRuB4FMUAAAAAAAAAAAAAAAAAAAChAAAAAAAAAIEDsUbgehes2QAAAAAAAAAAAAAAAAAAAGUDsUbgehas6QOxRuB6F6zZAPQrXo3C9JUBSuB6F61EQQAAAAAAAACBAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXEtAAAAAAAAAWUAAAAAAAOBVQAAAAAAAAFlAH4XrUbgOWECuR+F6FF5SQAAAAAAAAFlAAAAAAAAAQkA9CtejcH1IQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAACAUkAAAAAAAAAsQAAAAAAAAEdAzczMzMzsQUCkcD0K12MxQLgehetRWEBAhetRuB5FQkDsUbgehSs9QDMzMzMzc0ZA4XoUrkehTUAUrkfhelQwQLgehetRWEBAMzMzMzNzO0AAAAAAAAAyQMP1KFyPwi5AXI/C9SicQ0AAAAAAAABTQAAAAAAAAD5ASOF6FK6HN0DD9Shcj7JVQAAAAAAAgFVAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUDXo3A9ChdYQAAAAAAAgFhAAAAAAAAAWUApXI/C9WhRQFK4HoXrkTxAAAAAAAAAAEAAAAAAAAAAAD0K16NwfTlAuB6F61HoU0D2KFyPwrVBQAAAAAAAADhAFK5H4XpUMEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUC4HoXrUXhXQAAAAAAAAFlAAAAAAAAAWUCF61G4HoVYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQMP1KFyPglhAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAgFhAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAACAWEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAIBYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUA9CtejcH1YQAAAAAAAAFlAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIXrUbgehRdAAAAAAAAAAEBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzczMzMzMDkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZQAAAAAAAAFlAAAAAAAAATEBcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUDD9Shcj4JYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABOQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9AAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAADhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkcD0K16M2QLgehetRmEFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAUrkfhehQnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAACtejcD0KAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAKECkcD0K16MAQAAAAAAAAAAAAAAAAAAAAAApXI/C9eg+QAAAAAAAAAAAAAAAAAAAEEBcj8L1KJxJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAEjhehSuxztAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzMzMzA5AAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z/NzMzMzMwOQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFz/P1yPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAgFhAAAAAAAAAWUA9CtejcH1YQAAAAAAAgFhAw/UoXI+CWEAAAAAAAABZQArXo3A9CldAw/UoXI+CWECamZmZmYlYQAAAAAAAAFlAAAAAAAAAWUCF61G4HoVYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQNejcD0Kh1hAAAAAAAAAWUCkcD0K1xNXQLgehetR2ExAUrgehetREEAAAAAAAAAsQAAAAAAAwFJApHA9CtdTUEAAAAAAAIBUQGZmZmZmRkVAPQrXo3BtVUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUD2KFyPwjVOQMP1KFyPglhAAAAAAAAAWUAAAAAAAABZQAAAAAAAwEJAKVyPwvVoNEB7FK5H4XoYQAAAAAAAAClAAAAAAAAAOUBSuB6F61EAQArXo3A9iilArkfhehSuEEAAAAAAAMAyQHsUrkfhehhAAAAAAAAAAABSuB6F61EQQOxRuB6FqzBAKVyPwvVoNEAAAAAAAAApQBSuR+F6VDBArkfhehSuEEAK16NwPQoBQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAyQHsUrkfheihApHA9CtdjQUBmZmZmZmYhQDMzMzMzc0tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXB9AAAAAAAAAAEB7FK5H4XooQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAH4XrUbheMkBI4XoUroc5QD0K16NwXUJAMzMzMzNTQEBI4XoUrkc1QClcj8L1KC1AAAAAAAAALECkcD0K16MAQFyPwvUoXA9AAAAAAAAAGUBI4XoUroc3QBSuR+F6FCpAAAAAAAAAIEB7FK5H4XooQAAAAAAAABhAUrgehetREEAAAAAAAABBQKRwPQrXowBASOF6FK5HNUAAAAAAAAApQAAAAAAAABBAAAAAAAAAOUAAAAAAAAAsQGZmZmZmZiRAhetRuB4FMUAAAAAAAAAYQFK4HoXrURBAAAAAAAAAEEAfhetRuF4yQAAAAAAAwDJAAAAAAAAAGUAAAAAAAAAkQHsUrkfhehhAAAAAAADAMkBSuB6F61EgQFK4HoXrUSBAAAAAAAAAAECuR+F6FK4QQClcj8L1qCBAKVyPwvUoLUAAAAAAAAAsQFK4HoXrUSBAUrgehetRAECF61G4HgUxQAAAAAAAAChAhetRuB6FF0CuR+F6FK4QQAAAAAAAAAAAZmZmZmYmM0A9CtejcH04QI/C9ShcTzFASOF6FK6HOUAAAAAAAAAQQFK4HoXrURBAAAAAAAAAKECF61G4HoUZQAAAAAAAABhAKVyPwvUoLUAAAAAAAABDQDMzMzMzczZAKVyPwvWoIEAAAAAAAAA5QBSuR+F61DRAhetRuB4FMUAAAAAAAAA2QClcj8L1qCBAAAAAAAAAGUAUrkfhepQsQAAAAAAAADpAAAAAAAAAGEAAAAAAAAAZQAAAAAAAABhASOF6FK6HOkCF61G4HoUXQBSuR+F6VDBAZmZmZmZmJECkcD0K16MAQAAAAAAAABhAAAAAAAAAOEBI4XoUroc6QHsUrkfheihAAAAAAAAAKUBSuB6F61EQQAAAAAAAABhA7FG4HoWrMEBSuB6F61EAQAAAAAAAAD5AKVyPwvVoNEAAAAAAAAA0QKRwPQrXowBAAAAAAAAANkBSuB6F61EQQGZmZmZmZiRAFK5H4XpUMEDXo3A9CtckQNejcD0K1yRAUrgehetRIEAAAAAAAAAAAAAAAAAAAAAAUrgeheuRPEAAAAAAAAAgQIXrUbgeBSFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAAAAAGZmZmZmZiRAAAAAAAAAPkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/P1yPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAexSuR+F6GEDNzMzMzMwOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAABmZmZmZqYxQAAAAAAAABhAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAQFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAEBcj8L1KFz/P1K4HoXrUQBAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAhetRuB6FF0AAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEBcj8L1KFz/P2ZmZmZmZiRAAAAAAAAAAEB7FK5H4XoYQFK4HoXrURBAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAXI/C9ShcH0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDNzMzMzMwOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAQQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAALEAAAAAAAAAAAAAAAAAAABBAAAAAAAAAEEAAAAAAAAAAAFK4HoXrUSBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOxRuB6FqzBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z9SuB6F61EgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHsUrkfhehhArkfhehSuEEBSuB6F61EgQEjhehSuRzVAhetRuB4FIUA9CtejcH05QClcj8L1KC1AFK5H4XqULEAUrkfhelQwQNejcD0K1yRAAAAAAAAAKUAAAAAAAAA5QArXo3A9ykNApHA9CtejAEAAAAAAAAAAAIXrUbgeBSFAAAAAAAAAEEBI4XoUroc6QB+F61G4XjJASOF6FK5HNUBSuB6F61EAQNejcD0K1yRAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAA9CtejcL01QAAAAAAAADRAZmZmZmZmJEDhehSuR2EvQAAAAAAAAAAAAAAAAAAAIEAUrkfhepQsQEjhehSuhzpAAAAAAAAANkBSuB6F61EQQIXrUbgeBTFAhetRuB6FJ0DXo3A9CtckQAAAAAAAAChAAAAAAAAALEDsUbgehaswQK5H4XoUrhBApHA9CtejAEBSuB6F61EAQBSuR+F6lCxAMzMzMzNTQECkcD0K16MAQAAAAAAAADlA7FG4HoXrNkB7FK5H4XoYQAAAAAAAAClAUrgehetREEBI4XoUrkc1QBSuR+F6lCxASOF6FK6HOkAAAAAAAEA/QAAAAAAAAClAhetRuB4FMUBSuB6F61EQQDMzMzMzczZAKVyPwvVoNEAUrkfhehQ7QBSuR+F6lCxAAAAAAAAAKEAAAAAAAAAAAFK4HoXrUSBAhetRuB6FJ0AAAAAAAAAAAFK4HoXrUQBAPQrXo3B9OEDsUbgehaswQIXrUbgehRlAXI/C9SicPkAAAAAAAAAQQEjhehSuxy1AUrgehetRIEAAAAAAAAAAAOxRuB6F6zZASOF6FK7HLUApXI/C9SgtQGZmZmZmpjFAAAAAAAAAMEAUrkfhepQsQIXrUbgehSdAAAAAAAAAKECuR+F6FK4QQFK4HoXrUSBAUrgehetREEBcj8L1KFz/Pylcj8L1qCBAUrgehetRIEAfhetRuF4yQFK4HoXrURBAUrgehetREEAUrkfhelQwQFK4HoXrURBAUrgehetRIECuR+F6FK4QQOF6FK5HYS9AAAAAAAAANEAUrkfhelQwQFK4HoXrUSBAAAAAAADAMkApXI/C9SgtQFyPwvUoXP8/UrgehetREEApXI/C9Wg9QAAAAAAAACBAUrgehetRAECF61G4HoUnQFK4HoXrUQBASOF6FK7HLUAK16NwPQoRQDMzMzMzczZACtejcD2KKUDXo3A9Chc6QAAAAAAAAEJAFK5H4XqULEAAAAAAAAAAAAAAAAAAABhAAAAAAAAAAABSuB6F65E8QAAAAAAAADBAAAAAAAAAAEApXI/C9aggQGZmZmZmZiRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z9mZmZmZmYkQFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"UrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAADNzMzMzMwOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACamZmZmZkjQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAgFNAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABSuB6F61EgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAMzMzMzNTQEAAAAAAAAAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkcD0K16MAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAACAWEAAAAAAAAAAAKRwPQrX40JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAIEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQClcj8L1qCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQD0K16NwPSNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAACRAAAAAAAAAKECamZmZmZkjQD0K16NwPSNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z9cj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFyPwvUoXP8/AAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABSuB6F61EAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAArkfhehSuEEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAUrkfhelQwQHsUrkfhehhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z9SuB6F61EAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/UrgehetRAEBcj8L1KFz/PwAAAAAAAAAAKVyPwvVoNEAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQM3MzMzMzA5AAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEBcj8L1KFwPQFK4HoXrUQBAXI/C9ShcD0AAAAAAAAAQQAAAAAAAABhAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFK4HoXrkUxAUrgehetRIEBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgehetRAEBcj8L1KFwfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7FK5H4XoYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAUrgehetRAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAgQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMzMzczZAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAAA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9ihcj8J1K0AAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAHsUrkfhehhAXI/C9ShcD0AAAAAAAAAAAAAAAAAAADJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAAAAAQAAAAAAAACBAAAAAAAAAAACF61G4HoUXQKRwPQrXowBAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z9cj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"XI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAAAAAAAUrgehetREEAUrkfhehQXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAEBcj8L1KFz/PwAAAAAAAAAAUrgehetRAEAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABcj8L1KFwPQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAOEBcj8L1KFz/PwAAAAAAAAAAUrgehetRIEAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAABSuB6F61EAQFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgehetREEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAYQAAAAAAAADBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgehetRAEBcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAA2QAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfhetRuF4yQAAAAAAAAElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z9cj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgehetRAEAAAAAAAAAAABSuR+F6lCxAAAAAAAAAAECuR+F6FK4QQIXrUbgehRdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACF61G4HoUXQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUrgehetREEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEBSuB6F61EgQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZQMP1KFyPglhAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAgFhAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAw/UoXI+CWEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAw/UoXI+CWEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAw/UoXI+CWEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAw/UoXI+CWEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAIBYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAIBYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUDD9Shcj4JYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUDD9Shcj4JYQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQMP1KFyPglhAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAgFhAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9ShcD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAHsUrkfheihAAAAAAAAAAEDsUbgehaswQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAKEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAA9CtejcH1JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexSuR+F6GEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFwfQAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexSuR+HqVEAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAFlAAAAAAAAAWUAzMzMzM3M7QKRwPQrXowBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChAAAAAAAAAAABcj8L1KFz/PwAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAFK4HoXrUQBAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXP8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8L1KFz/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAAACxAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAOEAAAAAAAAAAAB+F61G4XjJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACtejcD0KEUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAKECkcD0K16MAQAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSuB6F61EAQAAAAAAAAAAAAAAAAAAAAAApXI/C9WhEQAAAAAAAAFlAAAAAAAAAWUAAAAAAAABZQAAAAAAAAENAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXI/C9Shc/z8AAAAAAAAZQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAUrgehetRAEB7FK5H4XooQAAAAAAAABBAAAAAAAAAAABSuB6F61EAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFK4HoXrUQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAUrgehetRAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyPwvUoXA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAIBLQAAAAAAAAAAAAAAAAAAAPUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQUAAAAAAAIBDQAAAAAAAAERAAAAAAAAAREAAAAAAAABDQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgEBAAAAAAAAAREAAAAAAAABCQAAAAAAAAEFAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAEJAAAAAAACAQ0AAAAAAAABEQAAAAAAAgENAAAAAAACAQ0AAAAAAAABDQAAAAAAAAEBAAAAAAAAAPUAAAAAAAIBEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBBQAAAAAAAADtAAAAAAACAQEAAAAAAAIBBQAAAAAAAAEJAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAREAAAAAAAIBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBAQAAAAAAAAEFAAAAAAAAAQ0AAAAAAAABEQAAAAAAAgENAAAAAAAAAQ0AAAAAAAABCQAAAAAAAAD9AAAAAAACAQ0AAAAAAAIBDQAAAAAAAgEJAAAAAAACAQ0AAAAAAAABDQAAAAAAAAERAAAAAAAAAKkAAAAAAAIBDQAAAAAAAgEJAAAAAAAAAQUAAAAAAAABEQAAAAAAAAERAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAAAAQ0AAAAAAAIBCQAAAAAAAAD5AAAAAAAAAQ0AAAAAAAIBBQAAAAAAAgENAAAAAAACAQkAAAAAAAABDQAAAAAAAAENAAAAAAACAQkAAAAAAAIBDQAAAAAAAAD9AAAAAAACAQ0AAAAAAAABCQAAAAAAAgEJAAAAAAAAAAAAAAAAAAIBCQAAAAAAAgEJAAAAAAAAAQkAAAAAAAIBBQAAAAAAAgEBAAAAAAAAAREAAAAAAAAA/QAAAAAAAAEFAAAAAAAAAQUAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQUAAAAAAAABAQAAAAAAAAENAAAAAAACAQ0AAAAAAAABDQAAAAAAAgEBAAAAAAACAQ0AAAAAAAIBCQAAAAAAAgENAAAAAAACAQ0AAAAAAAABCQAAAAAAAgEJAAAAAAACAQ0AAAAAAAAA3QAAAAAAAgENAAAAAAAAAKkAAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAABBQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQ0AAAAAAAABEQAAAAAAAAEFAAAAAAAAAQkAAAAAAAABDQAAAAAAAgENAAAAAAACAQ0AAAAAAAABDQAAAAAAAAENAAAAAAACAQ0AAAAAAAABEQAAAAAAAAENAAAAAAACAQ0AAAAAAAIBCQAAAAAAAABxAAAAAAAAARUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAIBHQAAAAAAAAAAAAAAAAAAAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPkAAAAAAAIBDQAAAAAAAAERAAAAAAACAQ0AAAAAAAABDQAAAAAAAAEBAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBCQAAAAAAAgEBAAAAAAACAQ0AAAAAAAABDQAAAAAAAAENAAAAAAAAAREAAAAAAAABEQAAAAAAAgENAAAAAAAAAREAAAAAAAIBBQAAAAAAAAEJAAAAAAAAAQUAAAAAAAIBCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+QAAAAAAAADVAAAAAAACAQkAAAAAAAABAQAAAAAAAAENAAAAAAACAQ0AAAAAAAABCQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAABCQAAAAAAAAEJAAAAAAAAAQ0AAAAAAAABEQAAAAAAAAERAAAAAAAAAQkAAAAAAAABDQAAAAAAAAEBAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAACAQ0AAAAAAAABBQAAAAAAAgENAAAAAAAAAMkAAAAAAAIBDQAAAAAAAAEJAAAAAAACAQkAAAAAAAIBDQAAAAAAAAERAAAAAAAAAREAAAAAAAIBBQAAAAAAAAENAAAAAAAAAQ0AAAAAAAABCQAAAAAAAgENAAAAAAAAAREAAAAAAAIBCQAAAAAAAAENAAAAAAACAQ0AAAAAAAIBBQAAAAAAAAENAAAAAAACAQ0AAAAAAAIBCQAAAAAAAAEJAAAAAAACAQ0AAAAAAAABDQAAAAAAAAEJAAAAAAAAAAEAAAAAAAIBCQAAAAAAAgEBAAAAAAACAQkAAAAAAAIBCQAAAAAAAAD5AAAAAAAAAREAAAAAAAABBQAAAAAAAgEFAAAAAAAAAQkAAAAAAAABBQAAAAAAAgENAAAAAAAAAQkAAAAAAAABBQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBCQAAAAAAAgEJAAAAAAACAQ0AAAAAAAABDQAAAAAAAgENAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAAD9AAAAAAAAAREAAAAAAAAA5QAAAAAAAgENAAAAAAAAAJkAAAAAAAABEQAAAAAAAAEJAAAAAAAAAQ0AAAAAAAIBBQAAAAAAAAERAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAgEFAAAAAAACAQkAAAAAAAIBDQAAAAAAAgEJAAAAAAAAAQUAAAAAAAIBDQAAAAAAAgENAAAAAAACAQkAAAAAAAIBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAAAAQ0AAAAAAAABBQAAAAAAAABBAAAAAAACAREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAABJQAAAAAAAAAAAAAAAAAAAQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0AAAAAAAABEQAAAAAAAAERAAAAAAAAAREAAAAAAAABCQAAAAAAAAEFAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAACAREAAAAAAAIBCQAAAAAAAgENAAAAAAAAAREAAAAAAAABCQAAAAAAAAEJAAAAAAACAQUAAAAAAAABEQAAAAAAAgENAAAAAAACAQ0AAAAAAAABBQAAAAAAAAENAAAAAAAAAQUAAAAAAAIBCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/QAAAAAAAADhAAAAAAAAAQ0AAAAAAAABBQAAAAAAAAEJAAAAAAACAQ0AAAAAAAABBQAAAAAAAgENAAAAAAAAAREAAAAAAAABEQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBCQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAABBQAAAAAAAgEBAAAAAAAAAREAAAAAAAIBDQAAAAAAAAENAAAAAAAAAREAAAAAAAABBQAAAAAAAgENAAAAAAAAANEAAAAAAAABEQAAAAAAAAEFAAAAAAACAQkAAAAAAAIBCQAAAAAAAAERAAAAAAAAAREAAAAAAAIBAQAAAAAAAgENAAAAAAACAQ0AAAAAAAABBQAAAAAAAAERAAAAAAAAAREAAAAAAAIBDQAAAAAAAAENAAAAAAACAQ0AAAAAAAABCQAAAAAAAgEJAAAAAAACAQ0AAAAAAAIBCQAAAAAAAgEJAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAgEJAAAAAAAAACEAAAAAAAABDQAAAAAAAAEBAAAAAAAAAQkAAAAAAAABDQAAAAAAAAD5AAAAAAAAAREAAAAAAAABCQAAAAAAAgEFAAAAAAAAAQkAAAAAAAABBQAAAAAAAAENAAAAAAACAQkAAAAAAAABCQAAAAAAAgENAAAAAAAAAREAAAAAAAIBCQAAAAAAAAENAAAAAAACAQ0AAAAAAAABCQAAAAAAAAENAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAAD9AAAAAAAAAREAAAAAAAAA6QAAAAAAAAERAAAAAAAAAJEAAAAAAAABEQAAAAAAAgEJAAAAAAAAAQ0AAAAAAAABCQAAAAAAAAERAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAACAQUAAAAAAAABEQAAAAAAAAENAAAAAAACAQUAAAAAAAIBDQAAAAAAAAERAAAAAAACAQkAAAAAAAIBDQAAAAAAAgERAAAAAAACAQ0AAAAAAAABEQAAAAAAAgEJAAAAAAACAQ0AAAAAAAABCQAAAAAAAAPA/AAAAAAAARUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAACEAAAAAAAADwPwAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAABAAAAAAAAA8D8AAAAAAIBMQAAAAAAAAAAAAAAAAAAAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO0AAAAAAAABDQAAAAAAAgENAAAAAAAAAREAAAAAAAIBCQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAEBAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAEFAAAAAAACAQ0AAAAAAAABDQAAAAAAAAEFAAAAAAAAAREAAAAAAAABEQAAAAAAAgENAAAAAAAAAREAAAAAAAIBDQAAAAAAAgEBAAAAAAAAAP0AAAAAAAABGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBBQAAAAAAAADtAAAAAAACAQEAAAAAAAIBCQAAAAAAAgEFAAAAAAACAQ0AAAAAAAABDQAAAAAAAAENAAAAAAAAAREAAAAAAAABEQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBBQAAAAAAAgEFAAAAAAAAAQUAAAAAAAABEQAAAAAAAgENAAAAAAACAQkAAAAAAAABCQAAAAAAAgEJAAAAAAACAQ0AAAAAAAABEQAAAAAAAAEJAAAAAAAAAREAAAAAAAABDQAAAAAAAAEVAAAAAAAAAKkAAAAAAAIBCQAAAAAAAAEFAAAAAAACAQUAAAAAAAABEQAAAAAAAAERAAAAAAACAQ0AAAAAAAABEQAAAAAAAgENAAAAAAACAQ0AAAAAAAABCQAAAAAAAAEBAAAAAAACAQkAAAAAAAABCQAAAAAAAgENAAAAAAACAQkAAAAAAAIBCQAAAAAAAAENAAAAAAACAQUAAAAAAAIBDQAAAAAAAAD9AAAAAAACAQ0AAAAAAAIBBQAAAAAAAgENAAAAAAAAAAAAAAAAAAIBDQAAAAAAAgEJAAAAAAAAAQkAAAAAAAIBBQAAAAAAAgEFAAAAAAACAREAAAAAAAAA/QAAAAAAAgEJAAAAAAACAQEAAAAAAAIBDQAAAAAAAgENAAAAAAAAAQUAAAAAAAABBQAAAAAAAAENAAAAAAAAAQ0AAAAAAAABDQAAAAAAAAEFAAAAAAACAQ0AAAAAAAABDQAAAAAAAgENAAAAAAACAQ0AAAAAAAABDQAAAAAAAgEJAAAAAAAAAREAAAAAAAAA3QAAAAAAAAENAAAAAAAAALEAAAAAAAABDQAAAAAAAgEJAAAAAAAAAQ0AAAAAAAIBBQAAAAAAAgERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQ0AAAAAAAIBDQAAAAAAAgEFAAAAAAACAQkAAAAAAAABDQAAAAAAAgENAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAABEQAAAAAAAAENAAAAAAACAQ0AAAAAAAIBCQAAAAAAAABxAAAAAAAAARUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADwPwAAAAAAAABAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAAAAAAOA/AAAAAAAA4D8AAAAAAAD0PwAAAAAAAABAAAAAAAAA/D8AAAAAAADoPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAA6D8AAAAAAADQPwAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAA4D8AAAAAAAAAAAAAAAAAANA/AAAAAAAA4D8AAAAAAADQPwAAAAAAANA/AAAAAAAA4D8AAAAAAADoPwAAAAAAANA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D8AAAAAAADgPwAAAAAAANA/AAAAAAAA0D8AAAAAAADQPwAAAAAAAPg/AAAAAAAA0D8AAAAAACBKQAAAAAAAAAAAAAAAAABAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPkAAAAAAAIBDQAAAAAAA4ENAAAAAAADgQ0AAAAAAAKBCQAAAAAAAAEJAAAAAAACAQ0AAAAAAAIBDQAAAAAAA4EFAAAAAAADgQ0AAAAAAAKBCQAAAAAAAgEFAAAAAAACgQ0AAAAAAAOBCQAAAAAAAAEJAAAAAAABAQ0AAAAAAAABEQAAAAAAAgENAAAAAAADAQ0AAAAAAAEBCQAAAAAAAYEFAAAAAAAAAQEAAAAAAAOBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBAQAAAAAAAwDhAAAAAAACgQUAAAAAAAEBBQAAAAAAAIEJAAAAAAABgQ0AAAAAAAGBCQAAAAAAAQENAAAAAAADgQ0AAAAAAAMBDQAAAAAAAgENAAAAAAACAQ0AAAAAAAKBBQAAAAAAAAEJAAAAAAACgQkAAAAAAAOBDQAAAAAAAoENAAAAAAADAQkAAAAAAAABCQAAAAAAAoEBAAAAAAACgQ0AAAAAAAKBDQAAAAAAAoEJAAAAAAADAQ0AAAAAAAABCQAAAAAAAAERAAAAAAAAAMEAAAAAAAGBDQAAAAAAAoEFAAAAAAADgQUAAAAAAAIBDQAAAAAAAAERAAAAAAACgQ0AAAAAAAGBCQAAAAAAAYENAAAAAAABAQ0AAAAAAAOBBQAAAAAAAoEFAAAAAAABgQ0AAAAAAAGBCQAAAAAAAQENAAAAAAAAAQ0AAAAAAAEBCQAAAAAAA4EJAAAAAAADAQkAAAAAAAABDQAAAAAAA4EBAAAAAAABgQ0AAAAAAAIBCQAAAAAAAoEJAAAAAAAAA9D8AAAAAAOBCQAAAAAAAYEFAAAAAAAAgQkAAAAAAACBCQAAAAAAAAEBAAAAAAAAgREAAAAAAAIBAQAAAAAAAoEFAAAAAAABgQUAAAAAAAABCQAAAAAAAQENAAAAAAACgQUAAAAAAAABBQAAAAAAAQENAAAAAAACAQ0AAAAAAAMBCQAAAAAAAwEFAAAAAAACAQ0AAAAAAAKBCQAAAAAAAYENAAAAAAABAQ0AAAAAAAABDQAAAAAAAAEFAAAAAAADgQ0AAAAAAAEA4QAAAAAAAgENAAAAAAAAAKEAAAAAAAKBDQAAAAAAAgEJAAAAAAADAQkAAAAAAAIBBQAAAAAAAIERAAAAAAABAQ0AAAAAAAIBDQAAAAAAAwEJAAAAAAACAQkAAAAAAAMBDQAAAAAAAAEJAAAAAAADAQUAAAAAAAEBDQAAAAAAAoENAAAAAAAAAQ0AAAAAAAGBDQAAAAAAAoENAAAAAAACAQ0AAAAAAAOBDQAAAAAAAAENAAAAAAABgQ0AAAAAAAABCQAAAAAAAABNAAAAAAADgREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAADQPwAAAAAAAOA/AAAAAAAA4D8AAAAAAADQPwAAAAAAAAAAAAAAAAAAWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAmQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAIkAAAAAAAAA6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAACxAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACJAAAAAAAAACEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACJAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACJAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAAAAAAAAAAAAgQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACJAAAAAAAAAKEAAAAAAAAAiQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAcQAAAAAAAACJAAAAAAAAAEEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAAABAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7QAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAmQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJEAAAAAAAAA2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAACJAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACJAAAAAAAAAEEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAmQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAA8D8AAAAAAAAiQAAAAAAAACJAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACJAAAAAAAAAKEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAkQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAcQAAAAAAAACJAAAAAAAAACEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAkQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAAPA/AAAAAAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9QAAAAAAAAAAAAAAAAAAAJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAkQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJEAAAAAAAAA2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAkQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAoQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAkQAAAAAAAACJAAAAAAAAAEEAAAAAAAAAoQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAkQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACZAAAAAAAAA8D8AAAAAAAAiQAAAAAAAACJAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAgQAAAAAAAACJAAAAAAAAAAEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAoQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAmQAAAAAAAAChAAAAAAAAAKEAAAAAAAAAoQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAmQAAAAAAAAAAAAAAAAAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAIkAAAAAAAAA8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAAACxAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACJAAAAAAAAAIkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAmQAAAAAAAACRAAAAAAAAACEAAAAAAAAAkQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAmQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACJAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAAAAAAAAAAAAiQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAkQAAAAAAAACRAAAAAAAAAKEAAAAAAAAAiQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJEAAAAAAAAAkQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAYQAAAAAAAACJAAAAAAAAAEEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAkQAAAAAAAAChAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJEAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAoQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAAABAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANA/AAAAAAAA0D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAMA9QAAAAAAAAAAAAAAAAACAI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPQ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAIkAAAAAAAIAmQAAAAAAAgCdAAAAAAACAJ0AAAAAAAAAmQAAAAAAAACVAAAAAAACAJkAAAAAAAIAmQAAAAAAAACVAAAAAAAAAKEAAAAAAAIAlQAAAAAAAACVAAAAAAACAJkAAAAAAAAAmQAAAAAAAgCVAAAAAAAAAJkAAAAAAAIAnQAAAAAAAgCZAAAAAAAAAJ0AAAAAAAAAlQAAAAAAAACVAAAAAAAAAI0AAAAAAAIA4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAChAAAAAAAAAJUAAAAAAAAAkQAAAAAAAACVAAAAAAACAJkAAAAAAAIAlQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAnQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAlQAAAAAAAACVAAAAAAAAAJUAAAAAAAAAnQAAAAAAAACdAAAAAAACAJUAAAAAAAAAlQAAAAAAAACRAAAAAAACAJkAAAAAAAIAmQAAAAAAAgCZAAAAAAAAAJ0AAAAAAAAAlQAAAAAAAgCJAAAAAAAAADEAAAAAAAIAmQAAAAAAAgCRAAAAAAACAJEAAAAAAAAAmQAAAAAAAgCdAAAAAAACAJkAAAAAAAAAlQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAmQAAAAAAAACVAAAAAAAAAJ0AAAAAAAIAmQAAAAAAAACZAAAAAAACAJkAAAAAAAIAlQAAAAAAAACZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAACRAAAAAAAAAJkAAAAAAAAAmQAAAAAAAgCVAAAAAAAAA4D8AAAAAAIAhQAAAAAAAACNAAAAAAAAAJUAAAAAAAAAlQAAAAAAAACNAAAAAAAAAKEAAAAAAAIAjQAAAAAAAgCRAAAAAAAAAJUAAAAAAAIAkQAAAAAAAgCZAAAAAAAAAJUAAAAAAAIAkQAAAAAAAgCZAAAAAAACAJkAAAAAAAIAlQAAAAAAAACVAAAAAAACAJkAAAAAAAIAlQAAAAAAAACZAAAAAAAAAJkAAAAAAAIAmQAAAAAAAACRAAAAAAAAAJ0AAAAAAAAAcQAAAAAAAACJAAAAAAAAACkAAAAAAAIAmQAAAAAAAgCVAAAAAAAAAJkAAAAAAAIAkQAAAAAAAAChAAAAAAACAJkAAAAAAAIAmQAAAAAAAgCVAAAAAAAAAJUAAAAAAAIAnQAAAAAAAACVAAAAAAAAAJEAAAAAAAIAmQAAAAAAAgCZAAAAAAAAAJkAAAAAAAAAmQAAAAAAAgCZAAAAAAACAJkAAAAAAAAAoQAAAAAAAACZAAAAAAACAJkAAAAAAAAAlQAAAAAAAAPQ/AAAAAAAAI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,955]}],\"metric\":[\"CPUUtilization-nodeid:algo-1_cpu23\",\"CPUUtilization-nodeid:algo-1_cpu20\",\"CPUUtilization-nodeid:algo-1_cpu19\",\"CPUUtilization-nodeid:algo-1_cpu26\",\"CPUUtilization-nodeid:algo-1_cpu18\",\"CPUUtilization-nodeid:algo-1_cpu2\",\"CPUUtilization-nodeid:algo-1_cpu8\",\"CPUUtilization-nodeid:algo-1_cpu10\",\"CPUUtilization-nodeid:algo-1_cpu16\",\"CPUUtilization-nodeid:algo-1_cpu17\",\"CPUUtilization-nodeid:algo-1_cpu13\",\"CPUUtilization-nodeid:algo-1_cpu29\",\"CPUUtilization-nodeid:algo-1_cpu3\",\"CPUUtilization-nodeid:algo-1_cpu22\",\"CPUUtilization-nodeid:algo-1_cpu11\",\"CPUUtilization-nodeid:algo-1_cpu12\",\"CPUUtilization-nodeid:algo-1_cpu25\",\"CPUUtilization-nodeid:algo-1_cpu24\",\"CPUUtilization-nodeid:algo-1_cpu1\",\"CPUUtilization-nodeid:algo-1_cpu28\",\"CPUUtilization-nodeid:algo-1_cpu9\",\"CPUUtilization-nodeid:algo-1_cpu21\",\"CPUUtilization-nodeid:algo-1_cpu27\",\"CPUUtilization-nodeid:algo-1_total\",\"CPUUtilization-nodeid:algo-1_cpu5\",\"CPUUtilization-nodeid:algo-1_cpu15\",\"CPUUtilization-nodeid:algo-1_cpu4\",\"CPUUtilization-nodeid:algo-1_cpu30\",\"CPUUtilization-nodeid:algo-1_cpu7\",\"CPUUtilization-nodeid:algo-1_cpu31\",\"CPUUtilization-nodeid:algo-1_cpu14\",\"CPUUtilization-nodeid:algo-1_cpu6\",\"CPUUtilization-nodeid:algo-1_cpu0\",\"GPUUtilization-nodeid:algo-1_gpu3\",\"GPUUtilization-nodeid:algo-1_gpu1\",\"GPUUtilization-nodeid:algo-1_gpu2\",\"GPUUtilization-nodeid:algo-1_gpu0\",\"GPUUtilization-nodeid:algo-1_total\",\"GPUMemoryUtilization-nodeid:algo-1_gpu3\",\"GPUMemoryUtilization-nodeid:algo-1_gpu1\",\"GPUMemoryUtilization-nodeid:algo-1_gpu2\",\"GPUMemoryUtilization-nodeid:algo-1_gpu0\",\"GPUMemoryUtilization-nodeid:algo-1_total\"],\"x\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"y\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43]},\"selected\":{\"id\":\"11972\"},\"selection_policy\":{\"id\":\"11973\"}},\"id\":\"11055\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"formatter\":{\"id\":\"11969\"},\"major_label_overrides\":{\"1\":\"CPUUtilization-nodeid:algo-1_cpu23\",\"10\":\"CPUUtilization-nodeid:algo-1_cpu17\",\"11\":\"CPUUtilization-nodeid:algo-1_cpu13\",\"12\":\"CPUUtilization-nodeid:algo-1_cpu29\",\"13\":\"CPUUtilization-nodeid:algo-1_cpu3\",\"14\":\"CPUUtilization-nodeid:algo-1_cpu22\",\"15\":\"CPUUtilization-nodeid:algo-1_cpu11\",\"16\":\"CPUUtilization-nodeid:algo-1_cpu12\",\"17\":\"CPUUtilization-nodeid:algo-1_cpu25\",\"18\":\"CPUUtilization-nodeid:algo-1_cpu24\",\"19\":\"CPUUtilization-nodeid:algo-1_cpu1\",\"2\":\"CPUUtilization-nodeid:algo-1_cpu20\",\"20\":\"CPUUtilization-nodeid:algo-1_cpu28\",\"21\":\"CPUUtilization-nodeid:algo-1_cpu9\",\"22\":\"CPUUtilization-nodeid:algo-1_cpu21\",\"23\":\"CPUUtilization-nodeid:algo-1_cpu27\",\"24\":\"CPUUtilization-nodeid:algo-1_total\",\"25\":\"CPUUtilization-nodeid:algo-1_cpu5\",\"26\":\"CPUUtilization-nodeid:algo-1_cpu15\",\"27\":\"CPUUtilization-nodeid:algo-1_cpu4\",\"28\":\"CPUUtilization-nodeid:algo-1_cpu30\",\"29\":\"CPUUtilization-nodeid:algo-1_cpu7\",\"3\":\"CPUUtilization-nodeid:algo-1_cpu19\",\"30\":\"CPUUtilization-nodeid:algo-1_cpu31\",\"31\":\"CPUUtilization-nodeid:algo-1_cpu14\",\"32\":\"CPUUtilization-nodeid:algo-1_cpu6\",\"33\":\"CPUUtilization-nodeid:algo-1_cpu0\",\"34\":\"GPUUtilization-nodeid:algo-1_gpu3\",\"35\":\"GPUUtilization-nodeid:algo-1_gpu1\",\"36\":\"GPUUtilization-nodeid:algo-1_gpu2\",\"37\":\"GPUUtilization-nodeid:algo-1_gpu0\",\"38\":\"GPUUtilization-nodeid:algo-1_total\",\"39\":\"GPUMemoryUtilization-nodeid:algo-1_gpu3\",\"4\":\"CPUUtilization-nodeid:algo-1_cpu26\",\"40\":\"GPUMemoryUtilization-nodeid:algo-1_gpu1\",\"41\":\"GPUMemoryUtilization-nodeid:algo-1_gpu2\",\"42\":\"GPUMemoryUtilization-nodeid:algo-1_gpu0\",\"43\":\"GPUMemoryUtilization-nodeid:algo-1_total\",\"44\":\"\",\"5\":\"CPUUtilization-nodeid:algo-1_cpu18\",\"6\":\"CPUUtilization-nodeid:algo-1_cpu2\",\"7\":\"CPUUtilization-nodeid:algo-1_cpu8\",\"8\":\"CPUUtilization-nodeid:algo-1_cpu10\",\"9\":\"CPUUtilization-nodeid:algo-1_cpu16\"},\"major_label_text_font_size\":\"5pt\",\"ticker\":{\"id\":\"11060\"}},\"id\":\"11040\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"11044\"},{\"id\":\"11045\"},{\"id\":\"11046\"},{\"id\":\"11047\"},{\"id\":\"11053\"}]},\"id\":\"11048\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"11971\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis\":{\"id\":\"11040\"},\"dimension\":1,\"ticker\":null,\"visible\":false},\"id\":\"11043\",\"type\":\"Grid\"},{\"attributes\":{\"end\":955},\"id\":\"11028\",\"type\":\"Range1d\"},{\"attributes\":{\"ticks\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43]},\"id\":\"11060\",\"type\":\"FixedTicker\"},{\"attributes\":{\"axis_label\":\"Indices\",\"formatter\":{\"id\":\"11971\"},\"ticker\":{\"id\":\"11037\"}},\"id\":\"11036\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"11044\",\"type\":\"CrosshairTool\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"usage\",\"@image\"],[\"metric\",\"@metric\"],[\"index\",\"$x{10}\"]]},\"id\":\"11053\",\"type\":\"HoverTool\"},{\"attributes\":{\"source\":{\"id\":\"11055\"}},\"id\":\"11058\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"11972\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"11034\",\"type\":\"LinearScale\"},{\"attributes\":{\"empty_value\":null},\"id\":\"11047\",\"type\":\"BoxEditTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"11968\",\"type\":\"Title\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"11046\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"color_mapper\":{\"id\":\"11054\"},\"dh\":{\"field\":\"dh\",\"units\":\"data\"},\"dw\":{\"field\":\"dw\",\"units\":\"data\"},\"image\":{\"field\":\"image\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"11056\",\"type\":\"Image\"},{\"attributes\":{},\"id\":\"11969\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"11037\",\"type\":\"BasicTicker\"},{\"attributes\":{\"high\":100,\"low\":0,\"palette\":[\"#440154\",\"#440357\",\"#45085B\",\"#460B5E\",\"#470F62\",\"#471265\",\"#471669\",\"#481A6C\",\"#481D6F\",\"#482172\",\"#482374\",\"#472777\",\"#472A79\",\"#462D7C\",\"#46317E\",\"#45347F\",\"#443781\",\"#433A83\",\"#423D84\",\"#424085\",\"#404387\",\"#3F4788\",\"#3E4989\",\"#3D4C89\",\"#3C4E8A\",\"#3A528B\",\"#39548B\",\"#38578C\",\"#365A8C\",\"#355C8C\",\"#345F8D\",\"#33618D\",\"#31648D\",\"#30678D\",\"#2F698D\",\"#2E6C8E\",\"#2D6E8E\",\"#2C718E\",\"#2B738E\",\"#2A768E\",\"#29798E\",\"#287A8E\",\"#277D8E\",\"#267F8E\",\"#25828E\",\"#24848D\",\"#23878D\",\"#22898D\",\"#228B8D\",\"#218E8C\",\"#20908C\",\"#1F938B\",\"#1F958B\",\"#1E988A\",\"#1E9A89\",\"#1E9C89\",\"#1E9F88\",\"#1FA187\",\"#20A485\",\"#21A685\",\"#23A883\",\"#25AB81\",\"#27AD80\",\"#2AB07E\",\"#2CB17D\",\"#30B47A\",\"#35B778\",\"#38B976\",\"#3DBB74\",\"#40BD72\",\"#45BF6F\",\"#49C16D\",\"#4FC369\",\"#55C666\",\"#59C764\",\"#60C960\",\"#64CB5D\",\"#6BCD59\",\"#70CE56\",\"#77D052\",\"#7ED24E\",\"#83D34B\",\"#8BD546\",\"#90D643\",\"#97D83E\",\"#9DD93A\",\"#A5DA35\",\"#ADDC30\",\"#B2DD2C\",\"#BADE27\",\"#BFDF24\",\"#C7E01F\",\"#CDE01D\",\"#D4E11A\",\"#DCE218\",\"#E1E318\",\"#E9E419\",\"#EEE51B\",\"#F6E61F\",\"#FDE724\"]},\"id\":\"11054\",\"type\":\"LinearColorMapper\"},{\"attributes\":{\"axis\":{\"id\":\"11036\"},\"ticker\":null,\"visible\":false},\"id\":\"11039\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"11055\"},\"glyph\":{\"id\":\"11056\"},\"hover_glyph\":null,\"muted_glyph\":null,\"view\":{\"id\":\"11058\"}},\"id\":\"11057\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"11045\",\"type\":\"ResetTool\"}],\"root_ids\":[\"11027\"]},\"title\":\"Bokeh Application\",\"version\":\"2.2.3\"}};\n", - " var render_items = [{\"docid\":\"b4a0e15d-9c39-4537-8e81-b2747bae2095\",\"notebook_comms_target\":\"11974\",\"root_ids\":[\"11027\"],\"roots\":{\"11027\":\"1c9cd143-168a-45c5-b29c-c455fc72851c\"}}];\n", - " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", - "\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " } else {\n", - " var attempts = 0;\n", - " var timer = setInterval(function(root) {\n", - " if (root.Bokeh !== undefined) {\n", - " clearInterval(timer);\n", - " embed_document(root);\n", - " } else {\n", - " attempts++;\n", - " if (attempts > 100) {\n", - " clearInterval(timer);\n", - " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", - " }\n", - " }\n", - " }, 10, root)\n", - " }\n", - "})(window);" - ], - "application/vnd.bokehjs_exec.v0+json": "" - }, - "metadata": { - "application/vnd.bokehjs_exec.v0+json": { - "id": "11027" - } - }, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "from smdebug.profiler.analysis.notebook_utils.heatmap import Heatmap\n", "\n", @@ -1735,36 +877,9 @@ }, { "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Thu Apr 29 07:04:12 2021 python_stats/python_stats/81-algo-1/train-979-stepend-1619676567816781.8_posthookclose-*-end-1619676567830144.5/python_stats\n", - "\n", - " 518 function calls (516 primitive calls) in 0.010 seconds\n", - "\n", - " Ordered by: cumulative time\n", - " List reduced from 113 to 10 due to restriction <10>\n", - "\n", - " ncalls tottime percall cumtime percall filename:lineno(function)\n", - " 4 0.000 0.000 0.010 0.002 /usr/local/lib/python3.7/site-packages/tensorflow/python/data/ops/iterator_ops.py:531(__del__)\n", - " 5 0.000 0.000 0.010 0.002 /usr/local/lib/python3.7/contextlib.py:107(__enter__)\n", - " 12/11 0.010 0.001 0.010 0.001 {built-in method builtins.next}\n", - " 13 0.000 0.000 0.000 0.000 {built-in method tensorflow.python._pywrap_tfe.TFE_ContextRemoveFunction}\n", - " 5 0.000 0.000 0.000 0.000 {built-in method tensorflow.python._pywrap_tfe.TFE_Py_FastPathExecute}\n", - " 13 0.000 0.000 0.000 0.000 {built-in method tensorflow.python._pywrap_tf_session.TF_DeleteFunction}\n", - " 7 0.000 0.000 0.000 0.000 {built-in method tensorflow.python._pywrap_utils.IsSequence}\n", - " 1 0.000 0.000 0.000 0.000 {built-in method tensorflow.python._pywrap_utils.IsMutableMapping}\n", - " 1 0.000 0.000 0.000 0.000 {built-in method tensorflow.python._pywrap_utils.Flatten}\n", - " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", - "\n", - "\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "stats = python_analysis.fetch_post_hook_close_profile_stats()\n", "display_python_profile_stats(stats)" diff --git a/sagemaker-debugger/tensorflow_builtin_rule/tf-mnist-builtin-rule.ipynb b/sagemaker-debugger/tensorflow_builtin_rule/tf-mnist-builtin-rule.ipynb index 02e936dc1e..1fe56ec7fd 100644 --- a/sagemaker-debugger/tensorflow_builtin_rule/tf-mnist-builtin-rule.ipynb +++ b/sagemaker-debugger/tensorflow_builtin_rule/tf-mnist-builtin-rule.ipynb @@ -2,38 +2,15 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, - "id": "returning-commodity", + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: smdebug in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (1.0.9)\n", - "Requirement already satisfied: pyinstrument>=3.1.3 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from smdebug) (3.4.2)\n", - "Requirement already satisfied: packaging in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from smdebug) (20.1)\n", - "Requirement already satisfied: numpy>=1.16.0 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from smdebug) (1.18.1)\n", - "Requirement already satisfied: protobuf>=3.6.0 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from smdebug) (3.15.6)\n", - "Requirement already satisfied: boto3>=1.10.32 in /home/ubuntu/.local/lib/python3.6/site-packages (from smdebug) (1.16.36)\n", - "Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from boto3>=1.10.32->smdebug) (0.10.0)\n", - "Requirement already satisfied: s3transfer<0.4.0,>=0.3.0 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from boto3>=1.10.32->smdebug) (0.3.3)\n", - "Requirement already satisfied: botocore<1.20.0,>=1.19.36 in /home/ubuntu/.local/lib/python3.6/site-packages (from boto3>=1.10.32->smdebug) (1.19.36)\n", - "Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from botocore<1.20.0,>=1.19.36->boto3>=1.10.32->smdebug) (2.8.1)\n", - "Requirement already satisfied: urllib3<1.27,>=1.25.4 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from botocore<1.20.0,>=1.19.36->boto3>=1.10.32->smdebug) (1.25.10)\n", - "Requirement already satisfied: six>=1.9 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from protobuf>=3.6.0->smdebug) (1.14.0)\n", - "Requirement already satisfied: pyinstrument-cext>=0.2.2 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from pyinstrument>=3.1.3->smdebug) (0.2.4)\n", - "Requirement already satisfied: pyparsing>=2.0.2 in /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages (from packaging->smdebug) (2.4.6)\n" - ] - } - ], + "outputs": [], "source": [ - "!pip install smdebug" + "!pip install smdebug matplotlib" ] }, { "cell_type": "markdown", - "id": "passing-exclusive", "metadata": { "papermill": { "duration": 0.015745, @@ -50,7 +27,6 @@ }, { "cell_type": "markdown", - "id": "diagnostic-discrimination", "metadata": { "papermill": { "duration": 0.015761, @@ -79,7 +55,6 @@ }, { "cell_type": "markdown", - "id": "aware-proposition", "metadata": { "papermill": { "duration": 0.015708, @@ -97,7 +72,6 @@ }, { "cell_type": "markdown", - "id": "absolute-arabic", "metadata": { "papermill": { "duration": 0.015697, @@ -114,8 +88,7 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "worse-affiliation", + "execution_count": null, "metadata": { "execution": { "iopub.execute_input": "2021-06-01T00:12:47.954649Z", @@ -146,7 +119,6 @@ }, { "cell_type": "markdown", - "id": "academic-mathematics", "metadata": { "papermill": { "duration": 0.015886, @@ -163,8 +135,7 @@ }, { "cell_type": "code", - "execution_count": 3, - "id": "federal-forward", + "execution_count": null, "metadata": { "execution": { "iopub.execute_input": "2021-06-01T00:12:48.024143Z", @@ -181,18 +152,7 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "'2.42.1'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import sagemaker\n", "\n", @@ -201,8 +161,7 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "oriented-texture", + "execution_count": null, "metadata": { "execution": { "iopub.execute_input": "2021-06-01T00:12:48.510517Z", @@ -220,27 +179,7 @@ "scrolled": true, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Extension horovod.torch has not been built: /home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages/horovod/torch/mpi_lib/_mpi_lib.cpython-36m-x86_64-linux-gnu.so not found\n", - "If this is not expected, reinstall Horovod with HOROVOD_WITH_PYTORCH=1 to debug the build error.\n", - "Warning! MPI libs are missing, but python applications are still avaiable.\n" - ] - }, - { - "data": { - "text/plain": [ - "'1.0.9'" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import smdebug\n", "\n", @@ -249,7 +188,6 @@ }, { "cell_type": "markdown", - "id": "lightweight-initial", "metadata": { "papermill": { "duration": null, @@ -267,8 +205,7 @@ }, { "cell_type": "code", - "execution_count": 5, - "id": "noted-tennis", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -286,7 +223,6 @@ }, { "cell_type": "markdown", - "id": "neutral-spanking", "metadata": { "papermill": { "duration": null, @@ -303,8 +239,7 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "crazy-casting", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -325,7 +260,6 @@ }, { "cell_type": "markdown", - "id": "related-dating", "metadata": { "papermill": { "duration": null, @@ -349,8 +283,7 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "prescribed-operations", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -386,7 +319,6 @@ }, { "cell_type": "markdown", - "id": "first-supplier", "metadata": { "papermill": { "duration": null, @@ -405,8 +337,7 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "affiliated-latex", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -424,7 +355,6 @@ }, { "cell_type": "markdown", - "id": "automotive-second", "metadata": { "papermill": { "duration": null, @@ -445,7 +375,6 @@ }, { "cell_type": "markdown", - "id": "fluid-product", "metadata": { "papermill": { "duration": null, @@ -470,7 +399,6 @@ }, { "cell_type": "markdown", - "id": "blank-agriculture", "metadata": { "papermill": { "duration": null, @@ -489,7 +417,6 @@ }, { "cell_type": "markdown", - "id": "tough-refrigerator", "metadata": { "papermill": { "duration": null, @@ -506,8 +433,7 @@ }, { "cell_type": "code", - "execution_count": 9, - "id": "incorporated-estate", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -518,15 +444,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Training job name: tensorflow-training-2021-06-02-19-16-51-791\n" - ] - } - ], + "outputs": [], "source": [ "job_name = estimator.latest_training_job.name\n", "print(\"Training job name: {}\".format(job_name))" @@ -534,7 +452,6 @@ }, { "cell_type": "markdown", - "id": "coastal-olive", "metadata": { "papermill": { "duration": null, @@ -553,8 +470,7 @@ }, { "cell_type": "code", - "execution_count": 10, - "id": "asian-study", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -566,28 +482,7 @@ "scrolled": true, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Starting] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Downloading] | Overfit Rule Evaluation Status: InProgress\n", - "Current job status: [PrimaryStatus: InProgress, SecondaryStatus: Training] | Overfit Rule Evaluation Status: InProgress\n" - ] - } - ], + "outputs": [], "source": [ "import time\n", "\n", @@ -611,107 +506,6 @@ }, { "cell_type": "markdown", - "id": "german-italian", - "metadata": { - "papermill": { - "duration": null, - "end_time": null, - "exception": null, - "start_time": null, - "status": "pending" - }, - "tags": [] - }, - "source": [ - "##### Get a direct Amazon CloudWatch URL to find the current rule processing job log" - ] - }, - { - "cell_type": "markdown", - "id": "unknown-thunder", - "metadata": { - "papermill": { - "duration": null, - "end_time": null, - "exception": null, - "start_time": null, - "status": "pending" - }, - "tags": [] - }, - "source": [ - "If you want do see logs of the Debugger rule evaluations, run the following code cell to get an autogenerated URL to Amazon CloudWatch. Paste the URL into an internet browser to directly open the logs in your CloudWatch console." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "mental-popularity", - "metadata": { - "papermill": { - "duration": null, - "end_time": null, - "exception": null, - "start_time": null, - "status": "pending" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The direct CloudWatch URL to the current rule job: https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=/aws/sagemaker/ProcessingJobs;prefix=tensorflow-training-2021-0-Overfit-4d9a4470;streamFilter=typeLogStreamPrefix\n" - ] - } - ], - "source": [ - "import boto3\n", - "\n", - "\n", - "def _get_rule_job_name(training_job_name, rule_configuration_name, rule_job_arn):\n", - " \"\"\"Helper function to get the rule job name\"\"\"\n", - " return \"{}-{}-{}\".format(\n", - " training_job_name[:26], rule_configuration_name[:26], rule_job_arn[-8:]\n", - " )\n", - "\n", - "\n", - "def _get_cw_url_for_rule_job(rule_job_name, region):\n", - " return \"https://{}.console.aws.amazon.com/cloudwatch/home?region={}#logStream:group=/aws/sagemaker/ProcessingJobs;prefix={};streamFilter=typeLogStreamPrefix\".format(\n", - " region, region, rule_job_name\n", - " )\n", - "\n", - "\n", - "def get_rule_jobs_cw_urls(estimator):\n", - " region = boto3.Session().region_name\n", - " training_job = estimator.latest_training_job\n", - " training_job_name = training_job.describe()[\"TrainingJobName\"]\n", - " rule_eval_statuses = training_job.describe()[\"DebugRuleEvaluationStatuses\"]\n", - "\n", - " result = {}\n", - " for status in rule_eval_statuses:\n", - " if status.get(\"RuleEvaluationJobArn\", None) is not None:\n", - " rule_job_name = _get_rule_job_name(\n", - " training_job_name, status[\"RuleConfigurationName\"], status[\"RuleEvaluationJobArn\"]\n", - " )\n", - " result[status[\"RuleConfigurationName\"]] = _get_cw_url_for_rule_job(\n", - " rule_job_name, region\n", - " )\n", - " return result\n", - "\n", - "\n", - "print(\n", - " \"The direct CloudWatch URL to the current rule job:\",\n", - " get_rule_jobs_cw_urls(estimator)[\n", - " estimator.latest_training_job.rule_job_summary()[0][\"RuleConfigurationName\"]\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "south-contractor", "metadata": { "papermill": { "duration": null, @@ -731,8 +525,7 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "monetary-northwest", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -744,19 +537,7 @@ "scrolled": true, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2021-06-02 19:20:24.477 ip-172-31-33-148:30930 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\n", - "[2021-06-02 19:20:24.498 ip-172-31-33-148:30930 INFO s3_trial.py:42] Loading trial debug-output at path s3://sagemaker-us-west-2-688520471316/tensorflow-training-2021-06-02-19-16-51-791/debug-output\n", - "[2021-06-02 19:20:44.997 ip-172-31-33-148:30930 WARNING trial.py:148] Waiting to read collections files generated by the training job,from s3://sagemaker-us-west-2-688520471316/tensorflow-training-2021-06-02-19-16-51-791/debug-output/. If this has been a while, you might want to check that the trial is pointed at the right path.\n", - "[2021-06-02 19:20:47.035 ip-172-31-33-148:30930 WARNING trial.py:148] Waiting to read collections files generated by the training job,from s3://sagemaker-us-west-2-688520471316/tensorflow-training-2021-06-02-19-16-51-791/debug-output/. If this has been a while, you might want to check that the trial is pointed at the right path.\n", - "[2021-06-02 19:20:49.072 ip-172-31-33-148:30930 WARNING trial.py:148] Waiting to read collections files generated by the training job,from s3://sagemaker-us-west-2-688520471316/tensorflow-training-2021-06-02-19-16-51-791/debug-output/. If this has been a while, you might want to check that the trial is pointed at the right path.\n" - ] - } - ], + "outputs": [], "source": [ "from smdebug.trials import create_trial\n", "\n", @@ -765,7 +546,6 @@ }, { "cell_type": "markdown", - "id": "marine-canon", "metadata": { "papermill": { "duration": null, @@ -782,7 +562,6 @@ }, { "cell_type": "markdown", - "id": "endless-satin", "metadata": { "papermill": { "duration": null, @@ -799,8 +578,7 @@ }, { "cell_type": "code", - "execution_count": 13, - "id": "fixed-barbados", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -811,25 +589,13 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "'s3://sagemaker-us-west-2-688520471316/tensorflow-training-2021-06-02-19-16-51-791/debug-output/'" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tutorial_trial.path" ] }, { "cell_type": "markdown", - "id": "hybrid-corner", "metadata": { "papermill": { "duration": null, @@ -846,8 +612,7 @@ }, { "cell_type": "code", - "execution_count": 14, - "id": "sporting-departure", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -858,25 +623,13 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "['accuracy', 'batch', 'loss']" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tutorial_trial.tensor_names()" ] }, { "cell_type": "markdown", - "id": "external-offset", "metadata": { "papermill": { "duration": null, @@ -893,7 +646,6 @@ }, { "cell_type": "markdown", - "id": "composed-signal", "metadata": { "papermill": { "duration": null, @@ -910,8 +662,7 @@ }, { "cell_type": "code", - "execution_count": 15, - "id": "fluid-source", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -929,8 +680,7 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "expressed-foundation", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -941,26 +691,14 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "[0]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tutorial_trial.steps(mode=ModeKeys.TRAIN)" ] }, { "cell_type": "code", - "execution_count": 17, - "id": "afraid-emperor", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -971,25 +709,13 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tutorial_trial.steps(mode=ModeKeys.EVAL)" ] }, { "cell_type": "markdown", - "id": "modified-budget", "metadata": { "papermill": { "duration": null, @@ -1008,28 +734,7 @@ }, { "cell_type": "code", - "execution_count": 18, - "id": "biblical-leadership", - "metadata": { - "papermill": { - "duration": null, - "end_time": null, - "exception": null, - "start_time": null, - "status": "pending" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "# Uncomment the following line if `matplotlib` is not installed.\n", - "#! pip install -q matplotlib" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "single-thirty", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -1054,8 +759,7 @@ }, { "cell_type": "code", - "execution_count": 20, - "id": "dirty-portland", + "execution_count": null, "metadata": { "papermill": { "duration": null, @@ -1066,32 +770,7 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "from mpl_toolkits.axes_grid1 import host_subplot\n", @@ -1134,7 +813,13 @@ }, { "cell_type": "markdown", - "id": "elementary-crystal", + "metadata": {}, + "source": [ + "> ## Note : Rerun the above cell if you don't see any plots! " + ] + }, + { + "cell_type": "markdown", "metadata": { "papermill": { "duration": null, @@ -1154,7 +839,6 @@ { "cell_type": "code", "execution_count": null, - "id": "amber-defeat", "metadata": { "papermill": { "duration": null, @@ -1172,9 +856,9 @@ "metadata": { "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "Environment (conda_tensorflow2_p36)", + "display_name": "Python 3 (TensorFlow 2.1 Python 3.6 CPU Optimized)", "language": "python", - "name": "conda_tensorflow2_p36" + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/tensorflow-2.1-cpu-py36" }, "language_info": { "codemirror_mode": { @@ -1186,7 +870,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" }, "papermill": { "default_parameters": {}, diff --git a/sagemaker-featurestore/README.md b/sagemaker-featurestore/README.md index 9f64103b1e..4fbaf0b2fb 100644 --- a/sagemaker-featurestore/README.md +++ b/sagemaker-featurestore/README.md @@ -34,7 +34,7 @@ This notebook requires this synthetic data set in `./data/`: In `feature_store_securely_store_images.ipynb` we demonstrate how to securely store a dataset of images into your Feature Store using KMS key. ## Securely store the output of an image or text classification labelling job from Amazon Ground Truth directly into Feature Store using a KMS key -In `feature_store_object_detection_ground_truth.ipynb`, we demonstrate how to pipe the output of an image or text classification labelling job from Amazon Ground Truth directly into Feature Store. +In `feature_store_classification_job_to_ground_truth.ipynb`, we demonstrate how to pipe the output of an image or text classification labelling job from Amazon Ground Truth directly into Feature Store. ## Fraud Detection with Feature Store For an advanced example on how to use Feature Store for a Fraud Detection use-case, see [Fraud Detection with Feature Store](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.html), and it's associated notebook, `sagemaker_featurestore_fraud_detection_python_sdk.ipynb`. diff --git a/sagemaker-featurestore/feature_store_introduction.ipynb b/sagemaker-featurestore/feature_store_introduction.ipynb index 61652a82fb..f5adad9754 100644 --- a/sagemaker-featurestore/feature_store_introduction.ipynb +++ b/sagemaker-featurestore/feature_store_introduction.ipynb @@ -366,6 +366,44 @@ "sample_record" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We use `batch_get_record` to check that all data has been ingested into two feature groups by providing customer ids." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_records = sagemaker_session.boto_session.client(\n", + " \"sagemaker-featurestore-runtime\", region_name=region\n", + ").batch_get_record(\n", + " Identifiers=[\n", + " {\n", + " \"FeatureGroupName\": customers_feature_group_name,\n", + " \"RecordIdentifiersValueAsString\": [\"573291\", \"109382\", \"828400\", \"124013\"],\n", + " },\n", + " {\n", + " \"FeatureGroupName\": orders_feature_group_name,\n", + " \"RecordIdentifiersValueAsString\": [\"573291\", \"109382\", \"828400\", \"124013\"],\n", + " },\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "all_records" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -390,8 +428,11 @@ "metadata": {}, "outputs": [], "source": [ + "%%bash -s \"$original_version\"\n", + "\n", "# preserve original sagemaker version\n", - "%pip install 'sagemaker=={}'.format(original_version)" + "\n", + "pip install sagemaker==$1" ] }, { @@ -436,7 +477,8 @@ "\n", "#### Boto3 API Calls\n", "* `list_feature_groups()`\n", - "* `get_record()`\n" + "* `get_record()`\n", + "* `batch_get_record()`\n" ] } ], diff --git a/sagemaker-featurestore/feature_store_kms_key_encryption.ipynb b/sagemaker-featurestore/feature_store_kms_key_encryption.ipynb index d036b2300c..847e70f26f 100644 --- a/sagemaker-featurestore/feature_store_kms_key_encryption.ipynb +++ b/sagemaker-featurestore/feature_store_kms_key_encryption.ipynb @@ -13,6 +13,10 @@ "source": [ "This notebook demonstrates how to enable encyption for your data in your online or offline Feature Store using KMS key. We start by showing how to programmatically create a KMS key, and how to apply it to the feature store creation process for data encryption. The last portion of this notebook demonstrates how to verify that your KMS key is being used to encerypt your data in your feature store.\n", "\n", + "### Important\n", + "If you **do not** specify a KMS encryption key, by default we encrypt all data at rest using an AWS KMS key. By defining your [bucket-level key](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) for SSE, you can reduce AWS KMS requests costs by up to 99 percent. \n", + "\n", + "\n", "### Overview\n", "1. Create a KMS key.\n", " - How to create a KMS key programmatically using the KMS client from boto3?\n", diff --git a/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.ipynb b/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.ipynb index b3ecd2158b..c2ebe08afc 100644 --- a/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.ipynb +++ b/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.ipynb @@ -431,6 +431,33 @@ ")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also retrieve a record of each feature group from the online store:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "featurestore_runtime.batch_get_record(\n", + " Identifiers=[\n", + " {\n", + " \"FeatureGroupName\": identity_feature_group_name,\n", + " \"RecordIdentifiersValueAsString\": [\"2990130\"],\n", + " },\n", + " {\n", + " \"FeatureGroupName\": transaction_feature_group_name,\n", + " \"RecordIdentifiersValueAsString\": [\"2990130\"],\n", + " },\n", + " ]\n", + ")" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/sagemaker-fundamentals/create-endpoint/create_endpoint.ipynb b/sagemaker-fundamentals/create-endpoint/create_endpoint.ipynb index c2993c0f22..a77fd55987 100644 --- a/sagemaker-fundamentals/create-endpoint/create_endpoint.ipynb +++ b/sagemaker-fundamentals/create-endpoint/create_endpoint.ipynb @@ -815,7 +815,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'EndpointArn': 'arn:aws:sagemaker:us-west-2:688520471316:endpoint/exmaple-endpoint',\n", + "{'EndpointArn': 'arn:aws:sagemaker:us-west-2:688520471316:endpoint/example-endpoint',\n", " 'ResponseMetadata': {'HTTPHeaders': {'content-length': '84',\n", " 'content-type': 'application/x-amz-json-1.1',\n", " 'date': 'Wed, 10 Mar 2021 23:47:37 GMT',\n", @@ -827,7 +827,7 @@ } ], "source": [ - "endpoint_name = \"exmaple-endpoint\"\n", + "endpoint_name = \"example-endpoint\"\n", "ep_res = sm_boto3.create_endpoint(\n", " EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name\n", ")\n", @@ -852,9 +852,9 @@ "output_type": "stream", "text": [ "{'CreationTime': datetime.datetime(2021, 3, 10, 23, 47, 38, 119000, tzinfo=tzlocal()),\n", - " 'EndpointArn': 'arn:aws:sagemaker:us-west-2:688520471316:endpoint/exmaple-endpoint',\n", + " 'EndpointArn': 'arn:aws:sagemaker:us-west-2:688520471316:endpoint/example-endpoint',\n", " 'EndpointConfigName': 'ExampleServeConfig',\n", - " 'EndpointName': 'exmaple-endpoint',\n", + " 'EndpointName': 'example-endpoint',\n", " 'EndpointStatus': 'Creating',\n", " 'LastModifiedTime': datetime.datetime(2021, 3, 10, 23, 47, 38, 119000, tzinfo=tzlocal()),\n", " 'ResponseMetadata': {'HTTPHeaders': {'content-length': '256',\n", @@ -912,9 +912,9 @@ "output_type": "stream", "text": [ "{'CreationTime': datetime.datetime(2021, 3, 10, 23, 47, 38, 119000, tzinfo=tzlocal()),\n", - " 'EndpointArn': 'arn:aws:sagemaker:us-west-2:688520471316:endpoint/exmaple-endpoint',\n", + " 'EndpointArn': 'arn:aws:sagemaker:us-west-2:688520471316:endpoint/example-endpoint',\n", " 'EndpointConfigName': 'ExampleServeConfig',\n", - " 'EndpointName': 'exmaple-endpoint',\n", + " 'EndpointName': 'example-endpoint',\n", " 'EndpointStatus': 'InService',\n", " 'LastModifiedTime': datetime.datetime(2021, 3, 10, 23, 56, 2, 741000, tzinfo=tzlocal()),\n", " 'ProductionVariants': [{'CurrentInstanceCount': 1,\n", diff --git a/sagemaker-pipeline-compare-model-versions/notebook.ipynb b/sagemaker-pipeline-compare-model-versions/notebook.ipynb index 91afe7a214..5343777f87 100644 --- a/sagemaker-pipeline-compare-model-versions/notebook.ipynb +++ b/sagemaker-pipeline-compare-model-versions/notebook.ipynb @@ -86,13 +86,6 @@ "In the last section, the SageMaker pipeline is created and all steps orchestrated before executing the pipeline.\n" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, @@ -219,6 +212,8 @@ "from sagemaker.sklearn.processing import SKLearnProcessor\n", "from sagemaker.processing import ProcessingInput, ProcessingOutput\n", "from sagemaker.workflow.steps import ProcessingStep\n", + "from sagemaker.workflow.functions import Join\n", + "from sagemaker.workflow.execution_variables import ExecutionVariables\n", "\n", "# Create SKlearn processor object,\n", "# The object contains information about what instance type to use, the IAM role to use etc.\n", @@ -239,9 +234,45 @@ " ProcessingInput(source=input_data, destination=\"/opt/ml/processing/input\"),\n", " ],\n", " outputs=[\n", - " ProcessingOutput(output_name=\"train\", source=\"/opt/ml/processing/train\"),\n", - " ProcessingOutput(output_name=\"validation\", source=\"/opt/ml/processing/validation\"),\n", - " ProcessingOutput(output_name=\"test\", source=\"/opt/ml/processing/test\"),\n", + " ProcessingOutput(\n", + " output_name=\"train\",\n", + " source=\"/opt/ml/processing/train\",\n", + " destination=Join(\n", + " on=\"/\",\n", + " values=[\n", + " \"s3://{}\".format(bucket),\n", + " prefix,\n", + " ExecutionVariables.PIPELINE_EXECUTION_ID,\n", + " \"train\",\n", + " ],\n", + " ),\n", + " ),\n", + " ProcessingOutput(\n", + " output_name=\"validation\",\n", + " source=\"/opt/ml/processing/validation\",\n", + " destination=Join(\n", + " on=\"/\",\n", + " values=[\n", + " \"s3://{}\".format(bucket),\n", + " prefix,\n", + " ExecutionVariables.PIPELINE_EXECUTION_ID,\n", + " \"validation\",\n", + " ],\n", + " ),\n", + " ),\n", + " ProcessingOutput(\n", + " output_name=\"test\",\n", + " source=\"/opt/ml/processing/test\",\n", + " destination=Join(\n", + " on=\"/\",\n", + " values=[\n", + " \"s3://{}\".format(bucket),\n", + " prefix,\n", + " ExecutionVariables.PIPELINE_EXECUTION_ID,\n", + " \"test\",\n", + " ],\n", + " ),\n", + " ),\n", " ],\n", " code=\"preprocess.py\",\n", ")" @@ -267,9 +298,6 @@ "from sagemaker.workflow.steps import TrainingStep\n", "from sagemaker.estimator import Estimator\n", "\n", - "# Where to store the trained model\n", - "model_path = f\"s3://{bucket}/{prefix}/churn\"\n", - "\n", "# Fetch container to use for training\n", "image_uri = sagemaker.image_uris.retrieve(\n", " framework=\"xgboost\",\n", @@ -285,7 +313,6 @@ " image_uri=image_uri,\n", " instance_type=training_instance_type,\n", " instance_count=1,\n", - " output_path=model_path,\n", " role=role,\n", " disable_profiler=True,\n", ")\n", @@ -376,7 +403,19 @@ " ),\n", " ],\n", " outputs=[\n", - " ProcessingOutput(output_name=\"evaluation\", source=\"/opt/ml/processing/evaluation\"),\n", + " ProcessingOutput(\n", + " output_name=\"evaluation\",\n", + " source=\"/opt/ml/processing/evaluation\",\n", + " destination=Join(\n", + " on=\"/\",\n", + " values=[\n", + " \"s3://{}\".format(bucket),\n", + " prefix,\n", + " ExecutionVariables.PIPELINE_EXECUTION_ID,\n", + " \"evaluation-report\",\n", + " ],\n", + " ),\n", + " ),\n", " ],\n", " code=\"evaluate.py\",\n", " property_files=[evaluation_report],\n", @@ -406,10 +445,14 @@ "# A ModelMetrics object contains metrics captured from a model.\n", "model_metrics = ModelMetrics(\n", " model_statistics=MetricsSource(\n", - " s3_uri=\"{}/evaluation.json\".format(\n", - " step_evaluate_model.arguments[\"ProcessingOutputConfig\"][\"Outputs\"][0][\"S3Output\"][\n", - " \"S3Uri\"\n", - " ]\n", + " s3_uri=Join(\n", + " on=\"/\",\n", + " values=[\n", + " step_evaluate_model.arguments[\"ProcessingOutputConfig\"][\"Outputs\"][0][\"S3Output\"][\n", + " \"S3Uri\"\n", + " ],\n", + " \"evaluation.json\",\n", + " ],\n", " ),\n", " content_type=\"application/json\",\n", " )\n", diff --git a/sagemaker-pipelines/index.rst b/sagemaker-pipelines/index.rst index 402c1f2b2e..581616a017 100644 --- a/sagemaker-pipelines/index.rst +++ b/sagemaker-pipelines/index.rst @@ -8,3 +8,4 @@ Amazon SageMaker Model Building Pipelines is a tool for building machine learnin tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform tabular/customizing_build_train_deploy_project/modelbuild/sagemaker-pipelines-customized-project + tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint \ No newline at end of file diff --git a/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/code/train.py b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/code/train.py new file mode 100644 index 0000000000..151002db9c --- /dev/null +++ b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/code/train.py @@ -0,0 +1,82 @@ +import argparse +import numpy as np +import os +import tensorflow as tf + +def parse_args(): + + parser = argparse.ArgumentParser() + + # hyperparameters sent by the client are passed as command-line arguments to the script + parser.add_argument('--epochs', type=int, default=1) + parser.add_argument('--batch_size', type=int, default=64) + parser.add_argument('--learning_rate', type=float, default=0.1) + + # data directories + parser.add_argument('--train', type=str, default=os.environ.get('SM_CHANNEL_TRAIN')) + parser.add_argument('--test', type=str, default=os.environ.get('SM_CHANNEL_TEST')) + + # model directory + parser.add_argument('--sm-model-dir', type=str, default=os.environ.get('SM_MODEL_DIR')) + + return parser.parse_known_args() + + +def get_train_data(train_dir): + + x_train = np.load(os.path.join(train_dir, 'x_train.npy')) + y_train = np.load(os.path.join(train_dir, 'y_train.npy')) + print('x train', x_train.shape,'y train', y_train.shape) + + return x_train, y_train + + +def get_test_data(test_dir): + + x_test = np.load(os.path.join(test_dir, 'x_test.npy')) + y_test = np.load(os.path.join(test_dir, 'y_test.npy')) + print('x test', x_test.shape,'y test', y_test.shape) + + return x_test, y_test + + +def get_model(): + + inputs = tf.keras.Input(shape=(8,)) + hidden_1 = tf.keras.layers.Dense(8, activation='tanh')(inputs) + hidden_2 = tf.keras.layers.Dense(4, activation='sigmoid')(hidden_1) + outputs = tf.keras.layers.Dense(1)(hidden_2) + return tf.keras.Model(inputs=inputs, outputs=outputs) + + +if __name__ == "__main__": + + args, _ = parse_args() + + print('Training data location: {}'.format(args.train)) + print('Test data location: {}'.format(args.test)) + x_train, y_train = get_train_data(args.train) + x_test, y_test = get_test_data(args.test) + + batch_size = args.batch_size + epochs = args.epochs + learning_rate = args.learning_rate + print('batch_size = {}, epochs = {}, learning rate = {}'.format(batch_size, epochs, learning_rate)) + + + model = get_model() + optimizer = tf.keras.optimizers.SGD(learning_rate) + model.compile(optimizer=optimizer, loss='mse') + model.fit(x_train, + y_train, + batch_size=batch_size, + epochs=epochs, + validation_data=(x_test, y_test)) + + # evaluate on test set + scores = model.evaluate(x_test, y_test, batch_size, verbose=2) + print("\nTest MSE :", scores) + + # save model + model.save(args.sm_model_dir + '/1') + diff --git a/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/iam_helper.py b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/iam_helper.py new file mode 100644 index 0000000000..5bdb19a4c4 --- /dev/null +++ b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/iam_helper.py @@ -0,0 +1,87 @@ +import boto3 +import time +import json + + +iam = boto3.client('iam') + +def create_s3_lambda_role(role_name): + try: + response = iam.create_role( + RoleName = role_name, + AssumeRolePolicyDocument = json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }), + Description='Role for Lambda to provide S3 read only access' + ) + + role_arn = response['Role']['Arn'] + + response = iam.attach_role_policy( + RoleName=role_name, + PolicyArn='arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole' + ) + + response = iam.attach_role_policy( + PolicyArn='arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess', + RoleName=role_name + ) + + print('Waiting 30 seconds for the IAM role to propagate') + time.sleep(30) + return role_arn + + except iam.exceptions.EntityAlreadyExistsException: + print(f'Using ARN from existing role: {role_name}') + response = iam.get_role(RoleName=role_name) + return response['Role']['Arn'] + + +def create_sagemaker_lambda_role(role_name): + try: + response = iam.create_role( + RoleName = role_name, + AssumeRolePolicyDocument = json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }), + Description='Role for Lambda to call SageMaker functions' + ) + + role_arn = response['Role']['Arn'] + + response = iam.attach_role_policy( + RoleName=role_name, + PolicyArn='arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole' + ) + + response = iam.attach_role_policy( + PolicyArn='arn:aws:iam::aws:policy/AmazonSageMakerFullAccess', + RoleName=role_name + ) + + print('Waiting 30 seconds for the IAM role to propagate') + time.sleep(30) + return role_arn + + except iam.exceptions.EntityAlreadyExistsException: + print(f'Using ARN from existing role: {role_name}') + response = iam.get_role(RoleName=role_name) + return response['Role']['Arn'] \ No newline at end of file diff --git a/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/images/pipeline_run_1_mse_higher_than_threshold.png b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/images/pipeline_run_1_mse_higher_than_threshold.png new file mode 100644 index 0000000000..2c35b1e56c Binary files /dev/null and b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/images/pipeline_run_1_mse_higher_than_threshold.png differ diff --git a/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/images/pipeline_run_1_mse_lower_than_threshold.png b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/images/pipeline_run_1_mse_lower_than_threshold.png new file mode 100644 index 0000000000..3fc0972f0b Binary files /dev/null and b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/images/pipeline_run_1_mse_lower_than_threshold.png differ diff --git a/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint.ipynb b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint.ipynb new file mode 100644 index 0000000000..3d6389f3ca --- /dev/null +++ b/sagemaker-pipelines/tabular/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint/tensorflow2-california-housing-sagemaker-pipelines-deploy-endpoint.ipynb @@ -0,0 +1,1302 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "19215575", + "metadata": {}, + "source": [ + "# SageMaker Pipelines California Housing - Taking different steps based on model performance" + ] + }, + { + "cell_type": "markdown", + "id": "30bd1bfa", + "metadata": {}, + "source": [ + "This notebook illustrates how to take different actions based on model performance in a SageMaker Pipeline.\n", + "\n", + "The steps in this pipeline include:\n", + "* Preprocessing the California Housing dataset.\n", + "* Train a TensorFlow2 Artificial Neural Network (ANN) Model.\n", + "* Evaluate the model performance - mean square error (MSE).\n", + "* If MSE is higher than threshold, use a Lambda step to send an E-Mail to the Data Science team.\n", + "* If MSE is lower than threshold, register the model into the Model Registry, and use a Lambda step to deploy the model to SageMaker Endpoint." + ] + }, + { + "cell_type": "markdown", + "id": "75907ff2", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "\n", + "#### Add `AmazonSageMakerPipelinesIntegrations` policy\n", + "\n", + "The notebook execution role should have policies which enable the notebook to create a Lambda function. The Amazon managed policy `AmazonSageMakerPipelinesIntegrations` can be added to the notebook execution role. \n", + "\n", + "The policy description is:\n", + "\n", + "```\n", + "\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"lambda:CreateFunction\",\n", + " \"lambda:DeleteFunction\",\n", + " \"lambda:InvokeFunction\",\n", + " \"lambda:UpdateFunctionCode\"\n", + " ],\n", + " \"Resource\": [\n", + " \"arn:aws:lambda:*:*:function:*sagemaker*\",\n", + " \"arn:aws:lambda:*:*:function:*sageMaker*\",\n", + " \"arn:aws:lambda:*:*:function:*SageMaker*\"\n", + " ]\n", + " },\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"sqs:CreateQueue\",\n", + " \"sqs:SendMessage\"\n", + " ],\n", + " \"Resource\": [\n", + " \"arn:aws:sqs:*:*:*sagemaker*\",\n", + " \"arn:aws:sqs:*:*:*sageMaker*\",\n", + " \"arn:aws:sqs:*:*:*SageMaker*\"\n", + " ]\n", + " },\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"iam:PassRole\"\n", + " ],\n", + " \"Resource\": \"arn:aws:iam::*:role/*\",\n", + " \"Condition\": {\n", + " \"StringEquals\": {\n", + " \"iam:PassedToService\": [\n", + " \"lambda.amazonaws.com\"\n", + " ]\n", + " }\n", + " }\n", + " }\n", + " ]\n", + "}\n", + " \n", + "```\n", + "\n", + "#### Add inline policy to enable creation of IAM role required for the Lambda Function\n", + "\n", + "The notebook execution role should have an inline policy which enable the notebook to create the IAM role required for the Lambda function. An inline policy can be added to the notebook execution role. \n", + "\n", + "The policy description is:\n", + "\n", + "```\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"iam:GetRole\",\n", + " \"iam:CreateRole\",\n", + " \"iam:AttachRolePolicy\"\n", + " ],\n", + " \"Resource\": \"*\"\n", + " }\n", + " ]\n", + "}\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "85d9d259", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "!{sys.executable} -m pip install \"sagemaker>=2.51.0\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ee837d6", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import time\n", + "import boto3\n", + "import numpy as np\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "import sagemaker\n", + "from sagemaker import get_execution_role" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fb2e9cec", + "metadata": {}, + "outputs": [], + "source": [ + "sess = boto3.Session()\n", + "sm = sess.client(\"sagemaker\")\n", + "role = get_execution_role()\n", + "sagemaker_session = sagemaker.Session(boto_session=sess)\n", + "bucket = sagemaker_session.default_bucket()\n", + "region = boto3.Session().region_name\n", + "model_package_group_name = \"TF2-California-Housing\" # Model name in model registry\n", + "prefix = \"tf2-california-housing-pipelines\"\n", + "pipeline_name = \"TF2CaliforniaHousingPipeline\" # SageMaker Pipeline name\n", + "current_time = time.strftime(\"%m-%d-%H-%M-%S\", time.localtime())" + ] + }, + { + "cell_type": "markdown", + "id": "1040cc38", + "metadata": {}, + "source": [ + "## Download California Housing dataset and upload to Amazon S3\n", + "\n", + "We use the California housing dataset.\n", + "\n", + "More info on the dataset:\n", + "\n", + "This dataset was obtained from the `StatLib` repository. http://lib.stat.cmu.edu/datasets/\n", + "\n", + "The target variable is the median house value for California districts.\n", + "\n", + "This dataset was derived from the 1990 U.S. census, using one row per census block group. A block group is the smallest geographical unit for which the U.S. Census Bureau publishes sample data (a block group typically has a population of 600 to 3,000 people)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "abf6e279", + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = os.path.join(os.getcwd(), \"data\")\n", + "os.makedirs(data_dir, exist_ok=True)\n", + "\n", + "raw_dir = os.path.join(os.getcwd(), \"data/raw\")\n", + "os.makedirs(raw_dir, exist_ok=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc4c1053", + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp s3://sagemaker-sample-files/datasets/tabular/california_housing/cal_housing.tgz ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6744929", + "metadata": {}, + "outputs": [], + "source": [ + "!tar -zxf cal_housing.tgz" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6e28a11", + "metadata": {}, + "outputs": [], + "source": [ + "columns = [\n", + " \"longitude\",\n", + " \"latitude\",\n", + " \"housingMedianAge\",\n", + " \"totalRooms\",\n", + " \"totalBedrooms\",\n", + " \"population\",\n", + " \"households\",\n", + " \"medianIncome\",\n", + " \"medianHouseValue\",\n", + "]\n", + "cal_housing_df = pd.read_csv(\"CaliforniaHousing/cal_housing.data\", names=columns, header=None)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "550568f1", + "metadata": {}, + "outputs": [], + "source": [ + "cal_housing_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c29f19ea", + "metadata": {}, + "outputs": [], + "source": [ + "X = cal_housing_df[\n", + " [\n", + " \"longitude\",\n", + " \"latitude\",\n", + " \"housingMedianAge\",\n", + " \"totalRooms\",\n", + " \"totalBedrooms\",\n", + " \"population\",\n", + " \"households\",\n", + " \"medianIncome\",\n", + " ]\n", + "]\n", + "Y = cal_housing_df[[\"medianHouseValue\"]] / 100000\n", + "\n", + "x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.33)\n", + "\n", + "np.save(os.path.join(raw_dir, \"x_train.npy\"), x_train)\n", + "np.save(os.path.join(raw_dir, \"x_test.npy\"), x_test)\n", + "np.save(os.path.join(raw_dir, \"y_train.npy\"), y_train)\n", + "np.save(os.path.join(raw_dir, \"y_test.npy\"), y_test)\n", + "rawdata_s3_prefix = \"{}/data/raw\".format(prefix)\n", + "raw_s3 = sagemaker_session.upload_data(path=\"./data/raw/\", key_prefix=rawdata_s3_prefix)\n", + "print(raw_s3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "65a0d944", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.parameters import ParameterInteger, ParameterString, ParameterFloat\n", + "\n", + "# raw input data\n", + "input_data = ParameterString(name=\"InputData\", default_value=raw_s3)\n", + "\n", + "# processing step parameters\n", + "processing_instance_type = ParameterString(\n", + " name=\"ProcessingInstanceType\", default_value=\"ml.m5.large\"\n", + ")\n", + "\n", + "# training step parameters\n", + "training_instance_type = ParameterString(name=\"TrainingInstanceType\", default_value=\"ml.m5.large\")\n", + "training_epochs = ParameterString(name=\"TrainingEpochs\", default_value=\"100\")\n", + "\n", + "# model performance step parameters\n", + "accuracy_mse_threshold = ParameterFloat(name=\"AccuracyMseThreshold\", default_value=0.75)\n", + "\n", + "# Inference step parameters\n", + "endpoint_instance_type = ParameterString(name=\"EndpointInstanceType\", default_value=\"ml.m5.large\")" + ] + }, + { + "cell_type": "markdown", + "id": "23fa5dd8", + "metadata": {}, + "source": [ + "## Processing Step \n", + "\n", + "The first step in the pipeline will preprocess the data to prepare it for training. We create a `SKLearnProcessor` object similar to the one above, but now parameterized, so we can separately track and change the job configuration as needed, for example to increase the instance type size and count to accommodate a growing dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "599ec436", + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile preprocess.py\n", + "\n", + "import glob\n", + "import numpy as np\n", + "import os\n", + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "if __name__ == \"__main__\":\n", + "\n", + " input_files = glob.glob(\"{}/*.npy\".format(\"/opt/ml/processing/input\"))\n", + " print(\"\\nINPUT FILE LIST: \\n{}\\n\".format(input_files))\n", + " scaler = StandardScaler()\n", + " x_train = np.load(os.path.join(\"/opt/ml/processing/input\", \"x_train.npy\"))\n", + " scaler.fit(x_train)\n", + " for file in input_files:\n", + " raw = np.load(file)\n", + " # only transform feature columns\n", + " if \"y_\" not in file:\n", + " transformed = scaler.transform(raw)\n", + " if \"train\" in file:\n", + " if \"y_\" in file:\n", + " output_path = os.path.join(\"/opt/ml/processing/train\", \"y_train.npy\")\n", + " np.save(output_path, raw)\n", + " print(\"SAVED LABEL TRAINING DATA FILE\\n\")\n", + " else:\n", + " output_path = os.path.join(\"/opt/ml/processing/train\", \"x_train.npy\")\n", + " np.save(output_path, transformed)\n", + " print(\"SAVED TRANSFORMED TRAINING DATA FILE\\n\")\n", + " else:\n", + " if \"y_\" in file:\n", + " output_path = os.path.join(\"/opt/ml/processing/test\", \"y_test.npy\")\n", + " np.save(output_path, raw)\n", + " print(\"SAVED LABEL TEST DATA FILE\\n\")\n", + " else:\n", + " output_path = os.path.join(\"/opt/ml/processing/test\", \"x_test.npy\")\n", + " np.save(output_path, transformed)\n", + " print(\"SAVED TRANSFORMED TEST DATA FILE\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43e25edd", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.sklearn.processing import SKLearnProcessor\n", + "from sagemaker.processing import ProcessingInput, ProcessingOutput\n", + "from sagemaker.workflow.steps import ProcessingStep\n", + "\n", + "framework_version = \"0.23-1\"\n", + "\n", + "# Create SKlearn processor object,\n", + "# The object contains information about what instance type to use, the IAM role to use etc.\n", + "# A managed processor comes with a preconfigured container, so only specifying version is required.\n", + "sklearn_processor = SKLearnProcessor(\n", + " framework_version=framework_version,\n", + " role=role,\n", + " instance_type=processing_instance_type,\n", + " instance_count=1,\n", + " base_job_name=\"tf2-california-housing-processing-job\",\n", + ")\n", + "\n", + "# Use the sklearn_processor in a Sagemaker pipelines ProcessingStep\n", + "step_preprocess_data = ProcessingStep(\n", + " name=\"Preprocess-California-Housing-Data\",\n", + " processor=sklearn_processor,\n", + " inputs=[\n", + " ProcessingInput(source=input_data, destination=\"/opt/ml/processing/input\"),\n", + " ],\n", + " outputs=[\n", + " ProcessingOutput(output_name=\"train\", source=\"/opt/ml/processing/train\"),\n", + " ProcessingOutput(output_name=\"test\", source=\"/opt/ml/processing/test\"),\n", + " ],\n", + " code=\"preprocess.py\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "32f6536d", + "metadata": {}, + "source": [ + "## Train model step\n", + "In the second step, the train and validation output from the precious processing step are used to train a model. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b86f819", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.tensorflow import TensorFlow\n", + "from sagemaker.inputs import TrainingInput\n", + "from sagemaker.workflow.steps import TrainingStep\n", + "from sagemaker.workflow.step_collections import RegisterModel\n", + "import time\n", + "\n", + "# Where to store the trained model\n", + "model_path = f\"s3://{bucket}/{prefix}/model/\"\n", + "\n", + "hyperparameters = {\"epochs\": training_epochs}\n", + "tensorflow_version = \"2.4.1\"\n", + "python_version = \"py37\"\n", + "\n", + "tf2_estimator = TensorFlow(\n", + " source_dir=\"code\",\n", + " entry_point=\"train.py\",\n", + " instance_type=training_instance_type,\n", + " instance_count=1,\n", + " framework_version=tensorflow_version,\n", + " role=role,\n", + " base_job_name=\"tf2-california-housing-train\",\n", + " output_path=model_path,\n", + " hyperparameters=hyperparameters,\n", + " py_version=python_version,\n", + ")\n", + "\n", + "# Use the tf2_estimator in a Sagemaker pipelines ProcessingStep.\n", + "# NOTE how the input to the training job directly references the output of the previous step.\n", + "step_train_model = TrainingStep(\n", + " name=\"Train-California-Housing-Model\",\n", + " estimator=tf2_estimator,\n", + " inputs={\n", + " \"train\": TrainingInput(\n", + " s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[\n", + " \"train\"\n", + " ].S3Output.S3Uri,\n", + " content_type=\"text/csv\",\n", + " ),\n", + " \"test\": TrainingInput(\n", + " s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[\n", + " \"test\"\n", + " ].S3Output.S3Uri,\n", + " content_type=\"text/csv\",\n", + " ),\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "064c282c", + "metadata": {}, + "source": [ + "## Evaluate model step\n", + "When a model is trained, it's common to evaluate the model on unseen data before registering it with the model registry. This ensures the model registry isn't cluttered with poorly performing model versions. To evaluate the model, create a ScriptProcessor object and use it in a ProcessingStep.\n", + "\n", + "**Note** that a separate preprocessed test dataset is used to evaluate the model, and not the output of the processing step. This is only for demo purposes, to ensure the second run of the pipeline creates a model with better performance. In a real-world scenario, the test output of the processing step would be used." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "afe9f0d5", + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile evaluate.py\n", + "\n", + "import os\n", + "import json\n", + "import subprocess\n", + "import sys\n", + "import numpy as np\n", + "import pathlib\n", + "import tarfile\n", + "\n", + "\n", + "def install(package):\n", + " subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", package])\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + "\n", + " install(\"tensorflow==2.4.1\")\n", + " model_path = f\"/opt/ml/processing/model/model.tar.gz\"\n", + " with tarfile.open(model_path, \"r:gz\") as tar:\n", + " tar.extractall(\"./model\")\n", + " import tensorflow as tf\n", + "\n", + " model = tf.keras.models.load_model(\"./model/1\")\n", + " test_path = \"/opt/ml/processing/test/\"\n", + " x_test = np.load(os.path.join(test_path, \"x_test.npy\"))\n", + " y_test = np.load(os.path.join(test_path, \"y_test.npy\"))\n", + " scores = model.evaluate(x_test, y_test, verbose=2)\n", + " print(\"\\nTest MSE :\", scores)\n", + "\n", + " # Available metrics to add to model: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-metrics.html\n", + " report_dict = {\n", + " \"regression_metrics\": {\n", + " \"mse\": {\"value\": scores, \"standard_deviation\": \"NaN\"},\n", + " },\n", + " }\n", + "\n", + " output_dir = \"/opt/ml/processing/evaluation\"\n", + " pathlib.Path(output_dir).mkdir(parents=True, exist_ok=True)\n", + "\n", + " evaluation_path = f\"{output_dir}/evaluation.json\"\n", + " with open(evaluation_path, \"w\") as f:\n", + " f.write(json.dumps(report_dict))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6328380", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.properties import PropertyFile\n", + "\n", + "# Create SKLearnProcessor object.\n", + "# The object contains information about what container to use, what instance type etc.\n", + "evaluate_model_processor = SKLearnProcessor(\n", + " framework_version=framework_version,\n", + " instance_type=processing_instance_type,\n", + " instance_count=1,\n", + " base_job_name=\"tf2-california-housing-evaluate\",\n", + " role=role,\n", + ")\n", + "\n", + "# Create a PropertyFile\n", + "# A PropertyFile is used to be able to reference outputs from a processing step, for instance to use in a condition step.\n", + "# For more information, visit https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html\n", + "evaluation_report = PropertyFile(\n", + " name=\"EvaluationReport\", output_name=\"evaluation\", path=\"evaluation.json\"\n", + ")\n", + "\n", + "# Use the evaluate_model_processor in a Sagemaker pipelines ProcessingStep.\n", + "step_evaluate_model = ProcessingStep(\n", + " name=\"Evaluate-California-Housing-Model\",\n", + " processor=evaluate_model_processor,\n", + " inputs=[\n", + " ProcessingInput(\n", + " source=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,\n", + " destination=\"/opt/ml/processing/model\",\n", + " ),\n", + " ProcessingInput(\n", + " source=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[\n", + " \"test\"\n", + " ].S3Output.S3Uri,\n", + " destination=\"/opt/ml/processing/test\",\n", + " ),\n", + " ],\n", + " outputs=[\n", + " ProcessingOutput(output_name=\"evaluation\", source=\"/opt/ml/processing/evaluation\"),\n", + " ],\n", + " code=\"evaluate.py\",\n", + " property_files=[evaluation_report],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4a3b941b", + "metadata": {}, + "source": [ + "## Send E-Mail Lambda Step\n", + "\n", + "When defining the `LambdaStep`, the SageMaker Lambda helper class provides helper functions for creating the Lambda function. Users can either use the `lambda_func` argument to provide the function ARN to an already deployed Lambda function OR use the `Lambda` class to create a Lambda function by providing a script, function name and role for the Lambda function.\n", + "\n", + "When passing inputs to the Lambda, the `inputs` argument can be used and within the Lambda function's handler, the `event` argument can be used to retrieve the inputs.\n", + "\n", + "The dictionary response from the Lambda function is parsed through the `LambdaOutput` objects provided to the `outputs` argument. The `output_name` in `LambdaOutput` corresponds to the dictionary key in the Lambda's return dictionary." + ] + }, + { + "cell_type": "markdown", + "id": "bc99b6b7", + "metadata": {}, + "source": [ + "#### Define the Lambda function\n", + "\n", + "Users can choose the leverage the Lambda helper class to create a Lambda function and provide that function object to the `LambdaStep`. Alternatively, users can use a pre-deployed Lambda function and provide the function ARN to the `Lambda` helper class in the lambda step.\n", + "\n", + "Here, If the MSE is lower than threshold, an E-Mail will be sent to Data Science team.\n", + "\n", + "Note that the E-Mail sending part is left for you to implement by the framework you choose." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4305f405", + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile send_email_lambda.py\n", + "\n", + "\"\"\"\n", + "This Lambda function sends an E-Mail to the Data Science team with the MSE from model evaluation step. \n", + "The evaluation.json location in S3 is provided via the `event` argument\n", + "\"\"\"\n", + "\n", + "import json\n", + "import boto3\n", + "\n", + "\n", + "s3_client = client = boto3.client(\"s3\")\n", + "\n", + "\n", + "def lambda_handler(event, context):\n", + "\n", + " print(f\"Received Event: {event}\")\n", + "\n", + " evaluation_s3_uri = event[\"evaluation_s3_uri\"]\n", + " path_parts = evaluation_s3_uri.replace(\"s3://\", \"\").split(\"/\")\n", + " bucket = path_parts.pop(0)\n", + " key = \"/\".join(path_parts)\n", + "\n", + " content = s3_client.get_object(Bucket=bucket, Key=key)\n", + " text = content[\"Body\"].read().decode()\n", + " evaluation_json = json.loads(text)\n", + " mse = evaluation_json[\"regression_metrics\"][\"mse\"][\"value\"]\n", + "\n", + " subject_line = \"Please check high MSE ({}) detected on model evaluation\".format(mse)\n", + " print(f\"Sending E-Mail to Data Science Team with subject line: {subject_line}\")\n", + "\n", + " # TODO - ADD YOUR CODE TO SEND EMAIL...\n", + "\n", + " return {\"statusCode\": 200, \"body\": json.dumps(\"E-Mail Sent Successfully\")}" + ] + }, + { + "cell_type": "markdown", + "id": "2dabb9f4", + "metadata": {}, + "source": [ + "#### IAM Role\n", + "\n", + "The Lambda function needs an IAM role that will allow it to read the `evaluation.json` from S3. The role ARN must be provided in the `LambdaStep`.\n", + "\n", + "A helper function in `iam_helper.py` is available to create the Lambda function role. Please note that the role uses the Amazon managed policy - `AmazonS3ReadOnlyAccess`. This should be replaced with an IAM policy with the least privileges as per AWS IAM best practices." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25598115", + "metadata": {}, + "outputs": [], + "source": [ + "from iam_helper import create_s3_lambda_role\n", + "\n", + "lambda_role = create_s3_lambda_role(\"send-email-to-ds-team-lambda-role\")" + ] + }, + { + "cell_type": "markdown", + "id": "edcfb5a3", + "metadata": {}, + "source": [ + "#### Create the Lambda Function step" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eeb988d9", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.lambda_step import LambdaStep\n", + "from sagemaker.lambda_helper import Lambda\n", + "\n", + "evaluation_s3_uri = \"{}/evaluation.json\".format(\n", + " step_evaluate_model.arguments[\"ProcessingOutputConfig\"][\"Outputs\"][0][\"S3Output\"][\"S3Uri\"]\n", + ")\n", + "\n", + "send_email_lambda_function_name = \"sagemaker-send-email-to-ds-team-lambda-\" + current_time\n", + "\n", + "send_email_lambda_function = Lambda(\n", + " function_name=send_email_lambda_function_name,\n", + " execution_role_arn=lambda_role,\n", + " script=\"send_email_lambda.py\",\n", + " handler=\"send_email_lambda.lambda_handler\",\n", + ")\n", + "\n", + "step_higher_mse_send_email_lambda = LambdaStep(\n", + " name=\"Send-Email-To-DS-Team\",\n", + " lambda_func=send_email_lambda_function,\n", + " inputs={\"evaluation_s3_uri\": evaluation_s3_uri},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "0d5935ba", + "metadata": {}, + "source": [ + "## Register model step\n", + "If the trained model meets the model performance requirements a new model version is registered with the model registry for further analysis. To attach model metrics to the model version, create a [`ModelMetrics`](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-metrics.html) object using the evaluation report created in the evaluation step. Then, create the RegisterModel step." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68bb7f5d", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.model_metrics import MetricsSource, ModelMetrics\n", + "from sagemaker.workflow.step_collections import RegisterModel\n", + "\n", + "# Create ModelMetrics object using the evaluation report from the evaluation step\n", + "# A ModelMetrics object contains metrics captured from a model.\n", + "model_metrics = ModelMetrics(\n", + " model_statistics=MetricsSource(\n", + " s3_uri=evaluation_s3_uri,\n", + " content_type=\"application/json\",\n", + " )\n", + ")\n", + "\n", + "# Create a RegisterModel step, which registers the model with Sagemaker Model Registry.\n", + "step_register_model = RegisterModel(\n", + " name=\"Register-California-Housing-Model\",\n", + " estimator=tf2_estimator,\n", + " model_data=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,\n", + " content_types=[\"text/csv\"],\n", + " response_types=[\"text/csv\"],\n", + " inference_instances=[\"ml.m5.large\", \"ml.m5.xlarge\"],\n", + " transform_instances=[\"ml.m5.xlarge\"],\n", + " model_package_group_name=model_package_group_name,\n", + " model_metrics=model_metrics,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "1f8e48d8", + "metadata": {}, + "source": [ + "## Create the model\n", + "\n", + "The model is created and the name of the model is provided to the Lambda function for deployment. The `CreateModelStep` dynamically assigns a name to the model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5988ca19", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.step_collections import CreateModelStep\n", + "from sagemaker.tensorflow.model import TensorFlowModel\n", + "\n", + "model = TensorFlowModel(\n", + " role=role,\n", + " model_data=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,\n", + " framework_version=tensorflow_version,\n", + " sagemaker_session=sagemaker_session,\n", + ")\n", + "\n", + "step_create_model = CreateModelStep(\n", + " name=\"Create-California-Housing-Model\",\n", + " model=model,\n", + " inputs=sagemaker.inputs.CreateModelInput(instance_type=endpoint_instance_type),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "430c26ff", + "metadata": {}, + "source": [ + "## Deploy model to SageMaker Endpoint Lambda Step\n", + "\n", + "When defining the `LambdaStep`, the SageMaker Lambda helper class provides helper functions for creating the Lambda function. Users can either use the `lambda_func` argument to provide the function ARN to an already deployed Lambda function OR use the `Lambda` class to create a Lambda function by providing a script, function name and role for the Lambda function.\n", + "\n", + "When passing inputs to the Lambda, the `inputs` argument can be used and within the Lambda function's handler, the `event` argument can be used to retrieve the inputs.\n", + "\n", + "The dictionary response from the Lambda function is parsed through the `LambdaOutput` objects provided to the `outputs` argument. The `output_name` in `LambdaOutput` corresponds to the dictionary key in the Lambda's return dictionary." + ] + }, + { + "cell_type": "markdown", + "id": "85e25e59", + "metadata": {}, + "source": [ + "### Define the Lambda function\n", + "\n", + "Here, the Lambda Function will deploy the model to SageMaker Endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d56cf4b4", + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile deploy_model_lambda.py\n", + "\n", + "\n", + "\"\"\"\n", + "This Lambda function deploys the model to SageMaker Endpoint. \n", + "If Endpoint exists, then Endpoint will be updated with new Endpoint Config.\n", + "\"\"\"\n", + "\n", + "import json\n", + "import boto3\n", + "import time\n", + "\n", + "\n", + "sm_client = boto3.client(\"sagemaker\")\n", + "\n", + "\n", + "def lambda_handler(event, context):\n", + "\n", + " print(f\"Received Event: {event}\")\n", + "\n", + " current_time = time.strftime(\"%m-%d-%H-%M-%S\", time.localtime())\n", + " endpoint_instance_type = event[\"endpoint_instance_type\"]\n", + " model_name = event[\"model_name\"]\n", + " endpoint_config_name = \"{}-{}\".format(event[\"endpoint_config_name\"], current_time)\n", + " endpoint_name = event[\"endpoint_name\"]\n", + "\n", + " # Create Endpoint Configuration\n", + " create_endpoint_config_response = sm_client.create_endpoint_config(\n", + " EndpointConfigName=endpoint_config_name,\n", + " ProductionVariants=[\n", + " {\n", + " \"InstanceType\": endpoint_instance_type,\n", + " \"InitialVariantWeight\": 1,\n", + " \"InitialInstanceCount\": 1,\n", + " \"ModelName\": model_name,\n", + " \"VariantName\": \"AllTraffic\",\n", + " }\n", + " ],\n", + " )\n", + " print(f\"create_endpoint_config_response: {create_endpoint_config_response}\")\n", + "\n", + " # Check if an endpoint exists. If no - Create new endpoint, if yes - Update existing endpoint\n", + " list_endpoints_response = sm_client.list_endpoints(\n", + " SortBy=\"CreationTime\",\n", + " SortOrder=\"Descending\",\n", + " NameContains=endpoint_name,\n", + " )\n", + " print(f\"list_endpoints_response: {list_endpoints_response}\")\n", + "\n", + " if len(list_endpoints_response[\"Endpoints\"]) > 0:\n", + " print(\"Updating Endpoint with new Endpoint Configuration\")\n", + " update_endpoint_response = sm_client.update_endpoint(\n", + " EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name\n", + " )\n", + " print(f\"update_endpoint_response: {update_endpoint_response}\")\n", + " else:\n", + " print(\"Creating Endpoint\")\n", + " create_endpoint_response = sm_client.create_endpoint(\n", + " EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name\n", + " )\n", + " print(f\"create_endpoint_response: {create_endpoint_response}\")\n", + "\n", + " return {\"statusCode\": 200, \"body\": json.dumps(\"Endpoint Created Successfully\")}" + ] + }, + { + "cell_type": "markdown", + "id": "d58d4485", + "metadata": {}, + "source": [ + "#### IAM Role\n", + "\n", + "The Lambda function needs an IAM role that will allow it to deploy a SageMaker Endpoint. The role ARN must be provided in the `LambdaStep`.\n", + "\n", + "A helper function in `iam_helper.py` is available to create the Lambda function role. Please note that the role uses the Amazon managed policy - `AmazonSageMakerFullAccess`. This should be replaced with an IAM policy with the least privileges as per AWS IAM best practices." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8e1f2a35", + "metadata": {}, + "outputs": [], + "source": [ + "from iam_helper import create_sagemaker_lambda_role\n", + "\n", + "lambda_role = create_sagemaker_lambda_role(\"deploy-model-lambda-role\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37a56740", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.lambda_step import LambdaStep\n", + "from sagemaker.lambda_helper import Lambda\n", + "\n", + "endpoint_config_name = \"tf2-california-housing-endpoint-config\"\n", + "endpoint_name = \"tf2-california-housing-endpoint-\" + current_time\n", + "\n", + "deploy_model_lambda_function_name = \"sagemaker-deploy-model-lambda-\" + current_time\n", + "\n", + "deploy_model_lambda_function = Lambda(\n", + " function_name=deploy_model_lambda_function_name,\n", + " execution_role_arn=lambda_role,\n", + " script=\"deploy_model_lambda.py\",\n", + " handler=\"deploy_model_lambda.lambda_handler\",\n", + ")\n", + "\n", + "step_lower_mse_deploy_model_lambda = LambdaStep(\n", + " name=\"Deploy-California-Housing-Model-To-Endpoint\",\n", + " lambda_func=deploy_model_lambda_function,\n", + " inputs={\n", + " \"model_name\": step_create_model.properties.ModelName,\n", + " \"endpoint_config_name\": endpoint_config_name,\n", + " \"endpoint_name\": endpoint_name,\n", + " \"endpoint_instance_type\": endpoint_instance_type,\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "787921fb", + "metadata": {}, + "source": [ + "## Accuracy condition step\n", + "Adding conditions to the pipeline is done with a ConditionStep.\n", + "In this case, we only want to register the new model version with the model registry if the new model meets an accuracy condition." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b27277dd", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo\n", + "from sagemaker.workflow.condition_step import (\n", + " ConditionStep,\n", + " JsonGet,\n", + ")\n", + "\n", + "# Create accuracy condition to ensure the model meets performance requirements.\n", + "# Models with a test accuracy lower than the condition will not be registered with the model registry.\n", + "cond_lte = ConditionLessThanOrEqualTo(\n", + " left=JsonGet(\n", + " step=step_evaluate_model,\n", + " property_file=evaluation_report,\n", + " json_path=\"regression_metrics.mse.value\",\n", + " ),\n", + " right=accuracy_mse_threshold,\n", + ")\n", + "\n", + "# Create a Sagemaker Pipelines ConditionStep, using the condition above.\n", + "# Enter the steps to perform if the condition returns True / False.\n", + "step_cond = ConditionStep(\n", + " name=\"MSE-Lower-Than-Threshold-Condition\",\n", + " conditions=[cond_lte],\n", + " if_steps=[step_register_model, step_create_model, step_lower_mse_deploy_model_lambda],\n", + " else_steps=[step_higher_mse_send_email_lambda],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "3d243e6e", + "metadata": {}, + "source": [ + "## Pipeline Creation: Orchestrate all steps\n", + "\n", + "Now that all pipeline steps are created, a pipeline is created." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e6bd9d5e", + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.pipeline import Pipeline\n", + "\n", + "# Create a Sagemaker Pipeline.\n", + "# Each parameter for the pipeline must be set as a parameter explicitly when the pipeline is created.\n", + "# Also pass in each of the steps created above.\n", + "# Note that the order of execution is determined from each step's dependencies on other steps,\n", + "# not on the order they are passed in below.\n", + "pipeline = Pipeline(\n", + " name=pipeline_name,\n", + " parameters=[\n", + " processing_instance_type,\n", + " training_instance_type,\n", + " input_data,\n", + " training_epochs,\n", + " accuracy_mse_threshold,\n", + " endpoint_instance_type,\n", + " ],\n", + " steps=[step_preprocess_data, step_train_model, step_evaluate_model, step_cond],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ca4af181", + "metadata": {}, + "source": [ + "## Execute the Pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "86f6cb54", + "metadata": {}, + "source": [ + "### List the execution steps to check out the status and artifacts:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "198c583a", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "definition = json.loads(pipeline.definition())\n", + "definition" + ] + }, + { + "cell_type": "markdown", + "id": "079623b1", + "metadata": {}, + "source": [ + "### Submit pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "438e8401", + "metadata": {}, + "outputs": [], + "source": [ + "pipeline.upsert(role_arn=role)" + ] + }, + { + "cell_type": "markdown", + "id": "fb6a7e29", + "metadata": {}, + "source": [ + "### Execute pipeline using the default parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11c27cd7", + "metadata": {}, + "outputs": [], + "source": [ + "execution = pipeline.start()" + ] + }, + { + "cell_type": "markdown", + "id": "72eb39b1", + "metadata": {}, + "source": [ + "### Wait for pipeline to complete" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95e32f80", + "metadata": {}, + "outputs": [], + "source": [ + "execution.wait()" + ] + }, + { + "cell_type": "markdown", + "id": "e93d8920", + "metadata": {}, + "source": [ + "## Visualize SageMaker Pipeline - MSE lower than the threshold\n", + "In SageMaker Studio, choose `SageMaker Components and registries` in the left pane and under `Pipelines`, click the pipeline that was created. Then all pipeline executions are shown, and the one just created should have a status of `Succeded`. Selecting that execution, the different pipeline steps can be tracked as they execute.\n", + "\n", + "You can see that the `Register-California-Housing-Model` step was executed.\n", + "\n", + "![](images/pipeline_run_1_mse_lower_than_threshold.png \"Pipeline - MSE lower than the threshold\")" + ] + }, + { + "cell_type": "markdown", + "id": "60731a94", + "metadata": {}, + "source": [ + "## Start a pipeline with 2 epochs to trigger the `send-email-to-ds-team-lambda` Lambda Function\n", + "\n", + "\n", + "Run the pipeline again, but this time, with only 2 epochs and a lower MSE Threshold of 0.2. This will result in a higher MSE value on model evaluation, and will cause the `send-email-to-ds-team-lambda` Lambda Function to be triggered. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e15ba8ba", + "metadata": {}, + "outputs": [], + "source": [ + "# Execute pipeline with explicit parameters\n", + "execution = pipeline.start(parameters=dict(TrainingEpochs=2, AccuracyMseThreshold=0.2))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1d274be", + "metadata": {}, + "outputs": [], + "source": [ + "execution.wait()" + ] + }, + { + "cell_type": "markdown", + "id": "26176917", + "metadata": {}, + "source": [ + "## Visualize SageMaker Pipeline - MSE higher than the threshold\n", + "In SageMaker Studio, choose `SageMaker Components and registries` in the left pane and under `Pipelines`, click the pipeline that was created. Then all pipeline executions are shown, and the one just created should have a status of `Succeded`. Selecting that execution, the different pipeline steps can be tracked as they execute.\n", + "\n", + "You can see that the `Send-Email-To-DS-Team` step was executed.\n", + "\n", + "![](images/pipeline_run_1_mse_higher_than_threshold.png \"Pipeline - MSE higher than the threshold\")" + ] + }, + { + "cell_type": "markdown", + "id": "9d042db6", + "metadata": {}, + "source": [ + "## Clean up (optional)" + ] + }, + { + "cell_type": "markdown", + "id": "76beb434", + "metadata": {}, + "source": [ + "#### Stop / Close the Endpoint\n", + "You should delete the endpoint before you close the notebook if you don't need to keep the endpoint running for serving real-time predictions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e7fd2ea6", + "metadata": {}, + "outputs": [], + "source": [ + "import boto3\n", + "\n", + "client = boto3.client(\"sagemaker\")\n", + "client.delete_endpoint(EndpointName=endpoint_name)" + ] + }, + { + "cell_type": "markdown", + "id": "530a3c09", + "metadata": {}, + "source": [ + "#### Delete the model registry and the pipeline to keep the studio environment tidy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "00f02f22", + "metadata": {}, + "outputs": [], + "source": [ + "def delete_model_package_group(sm_client, package_group_name):\n", + " try:\n", + " model_versions = sm_client.list_model_packages(ModelPackageGroupName=package_group_name)\n", + "\n", + " except Exception as e:\n", + " print(\"{} \\n\".format(e))\n", + " return\n", + "\n", + " for model_version in model_versions[\"ModelPackageSummaryList\"]:\n", + " try:\n", + " sm_client.delete_model_package(ModelPackageName=model_version[\"ModelPackageArn\"])\n", + " except Exception as e:\n", + " print(\"{} \\n\".format(e))\n", + " time.sleep(0.5) # Ensure requests aren't throttled\n", + "\n", + " try:\n", + " sm_client.delete_model_package_group(ModelPackageGroupName=package_group_name)\n", + " print(\"{} model package group deleted\".format(package_group_name))\n", + " except Exception as e:\n", + " print(\"{} \\n\".format(e))\n", + " return\n", + "\n", + "\n", + "def delete_sagemaker_pipeline(sm_client, pipeline_name):\n", + " try:\n", + " sm_client.delete_pipeline(\n", + " PipelineName=pipeline_name,\n", + " )\n", + " print(\"{} pipeline deleted\".format(pipeline_name))\n", + " except Exception as e:\n", + " print(\"{} \\n\".format(e))\n", + " return" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66fc04ba", + "metadata": {}, + "outputs": [], + "source": [ + "delete_model_package_group(client, model_package_group_name)\n", + "delete_sagemaker_pipeline(client, pipeline_name)" + ] + }, + { + "cell_type": "markdown", + "id": "fba7e83e", + "metadata": {}, + "source": [ + "#### Delete the Lambda functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e12be1f1", + "metadata": {}, + "outputs": [], + "source": [ + "send_email_lambda_function.delete()\n", + "deploy_model_lambda_function.delete()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ef56efc7", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (Data Science)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/datascience-1.0" + }, + "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.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/sagemaker-pipelines/tabular/train-register-deploy-pipeline-model/train register and deploy a pipeline model.ipynb b/sagemaker-pipelines/tabular/train-register-deploy-pipeline-model/train register and deploy a pipeline model.ipynb new file mode 100644 index 0000000000..8a6083dca4 --- /dev/null +++ b/sagemaker-pipelines/tabular/train-register-deploy-pipeline-model/train register and deploy a pipeline model.ipynb @@ -0,0 +1,1115 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SageMaker Pipelines\n", + "\n", + "The following notebook shows how to create an Amazon SageMaker Pipeline that builds and trains a **PipelineModel** consisting of a preprocessing SKLearn script followed by a TensorFlow model. The pipeline model is then registered to the Model Registry and deployed from there into a real-time endpoint. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import time\n", + "import boto3\n", + "import numpy as np\n", + "import pandas as pd\n", + "import sagemaker\n", + "from sagemaker import get_execution_role" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sess = boto3.Session()\n", + "sm = sess.client(\"sagemaker\")\n", + "role = get_execution_role()\n", + "sagemaker_session = sagemaker.Session(boto_session=sess)\n", + "bucket = sagemaker_session.default_bucket()\n", + "region = boto3.Session().region_name\n", + "\n", + "model_package_group_name = \"PipelineModelPackageGroup\"\n", + "prefix = \"pipeline-model-example\"\n", + "pipeline_name = \"TrainingPipelineForModel\" # SageMaker Pipeline name\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download California Housing dataset and upload to Amazon S3\n", + "\n", + "We use the California housing dataset.\n", + "\n", + "More info on the dataset:\n", + "\n", + "This dataset was obtained from the StatLib repository. http://lib.stat.cmu.edu/datasets/\n", + "\n", + "The target variable is the median house value for California districts.\n", + "\n", + "This dataset was derived from the 1990 U.S. census, using one row per census block group. A block group is the smallest geographical unit for which the U.S. Census Bureau publishes sample data (a block group typically has a population of 600 to 3,000 people)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = os.path.join(os.getcwd(), \"data\")\n", + "os.makedirs(data_dir, exist_ok=True)\n", + "\n", + "raw_dir = os.path.join(os.getcwd(), \"data/raw\")\n", + "os.makedirs(raw_dir, exist_ok=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!aws s3 cp s3://sagemaker-sample-files/datasets/tabular/california_housing/cal_housing.tgz .\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!tar -zxf cal_housing.tgz\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "columns = [\n", + " \"longitude\",\n", + " \"latitude\",\n", + " \"housingMedianAge\",\n", + " \"totalRooms\",\n", + " \"totalBedrooms\",\n", + " \"population\",\n", + " \"households\",\n", + " \"medianIncome\",\n", + " \"medianHouseValue\",\n", + "]\n", + "cal_housing_df = pd.read_csv(\"CaliforniaHousing/cal_housing.data\", names=columns, header=None)\n", + "cal_housing_df['medianHouseValue'] /= 500000 # Scaling target down to avoid overcomplicating the example\n", + "cal_housing_df.to_csv(f\"./data/raw/raw_data_all.csv\", header=True, index=False)\n", + "rawdata_s3_prefix = \"{}/data/raw\".format(prefix)\n", + "raw_s3 = sagemaker_session.upload_data(path=\"./data/raw/\", key_prefix=rawdata_s3_prefix)\n", + "print(raw_s3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Parameters to Parametrize Pipeline Execution\n", + "\n", + "Define Pipeline parameters that you can use to parametrize the pipeline. Parameters enable custom pipeline executions and schedules without having to modify the Pipeline definition.\n", + "\n", + "The supported parameter types include:\n", + "\n", + "- ParameterString - represents a str Python type\n", + "- ParameterInteger - represents an int Python type\n", + "- ParameterFloat - represents a float Python type" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.parameters import ParameterInteger, ParameterString, ParameterFloat\n", + "\n", + "# raw input data\n", + "input_data = ParameterString(name=\"InputData\", default_value=raw_s3)\n", + "\n", + "# status of newly trained model in registry\n", + "model_approval_status = ParameterString(name=\"ModelApprovalStatus\", default_value=\"Approved\") # PendingManualApproval | Rejected\n", + "\n", + "# processing step parameters\n", + "processing_instance_count = ParameterInteger(name=\"ProcessingInstanceCount\", default_value=1)\n", + "processing_instance_type = ParameterString(\n", + " name=\"ProcessingInstanceType\", default_value=\"ml.m5.large\"\n", + ")\n", + "\n", + "# training step parameters\n", + "training_instance_type = ParameterString(name=\"TrainingInstanceType\", default_value=\"ml.m5.xlarge\")\n", + "training_epochs = ParameterString(name=\"TrainingEpochs\", default_value=\"100\")\n", + "\n", + "# model performance step parameters\n", + "accuracy_mse_threshold = ParameterFloat(name=\"AccuracyMseThreshold\", default_value=0.75)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define a Processing Step for Feature Engineering\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The below preprocessing script, in addition to creating a scaler, contains the necessary functions for it to be deployed as part of a pipeline model. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!mkdir -p code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile code/preprocess.py\n", + "\n", + "import glob\n", + "import numpy as np\n", + "import pandas as pd\n", + "import os\n", + "import json\n", + "import joblib\n", + "from io import StringIO\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.model_selection import train_test_split\n", + "import tarfile\n", + "try:\n", + " from sagemaker_containers.beta.framework import (\n", + " content_types, encoders, env, modules, transformer, worker, server)\n", + "except ImportError:\n", + " pass\n", + "\n", + "feature_columns = [\n", + " \"longitude\",\n", + " \"latitude\",\n", + " \"housingMedianAge\",\n", + " \"totalRooms\",\n", + " \"totalBedrooms\",\n", + " \"population\",\n", + " \"households\",\n", + " \"medianIncome\",\n", + " ]\n", + "label_column = 'medianHouseValue'\n", + "\n", + "base_dir = \"/opt/ml/processing\"\n", + "base_output_dir = \"/opt/ml/output/\"\n", + " \n", + "if __name__ == \"__main__\": \n", + " df = pd.read_csv(f\"{base_dir}/input/raw_data_all.csv\")\n", + " feature_data = df.drop(label_column, axis=1, inplace=False)\n", + " label_data = df[label_column]\n", + " x_train, x_test, y_train, y_test = train_test_split(feature_data, label_data, test_size=0.33)\n", + " \n", + " scaler = StandardScaler()\n", + "\n", + " scaler.fit(x_train)\n", + " x_train = scaler.transform(x_train)\n", + " x_test = scaler.transform(x_test)\n", + " \n", + " train_dataset = pd.concat([pd.DataFrame(x_train), y_train.reset_index(drop=True)], axis=1)\n", + " test_dataset = pd.concat([pd.DataFrame(x_test), y_test.reset_index(drop=True)], axis=1)\n", + "\n", + " train_dataset.columns=feature_columns+[label_column]\n", + " test_dataset.columns=feature_columns+[label_column]\n", + " \n", + " train_dataset.to_csv(f\"{base_dir}/train/train.csv\", header=True, index=False)\n", + " test_dataset.to_csv(f\"{base_dir}/test/test.csv\", header=True, index=False)\n", + " joblib.dump(scaler, \"model.joblib\")\n", + " with tarfile.open(f\"{base_dir}/scaler_model/model.tar.gz\", \"w:gz\") as tar_handle:\n", + " tar_handle.add(f\"model.joblib\")\n", + " \n", + "\n", + "def input_fn(input_data, content_type):\n", + " \"\"\"Parse input data payload\n", + "\n", + " We currently only take csv input. Since we need to process both labelled\n", + " and unlabelled data we first determine whether the label column is present\n", + " by looking at how many columns were provided.\n", + " \"\"\"\n", + " if content_type == 'text/csv':\n", + " # Read the raw input data as CSV.\n", + " df = pd.read_csv(StringIO(input_data), header=None)\n", + "\n", + " if len(df.columns) == len(feature_columns) + 1:\n", + " # This is a labelled example, includes the ring label\n", + " df.columns = feature_columns + [label_column]\n", + " elif len(df.columns) == len(feature_columns):\n", + " # This is an unlabelled example.\n", + " df.columns = feature_columns\n", + "\n", + " return df\n", + " else:\n", + " raise ValueError(\"{} not supported by script!\".format(content_type))\n", + "\n", + "\n", + "def output_fn(prediction, accept):\n", + " \"\"\"Format prediction output\n", + "\n", + " The default accept/content-type between containers for serial inference is JSON.\n", + " We also want to set the ContentType or mimetype as the same value as accept so the next\n", + " container can read the response payload correctly.\n", + " \"\"\"\n", + " if accept == \"application/json\":\n", + " instances = []\n", + " for row in prediction.tolist():\n", + " instances.append(row)\n", + " json_output = {\"instances\": instances}\n", + "\n", + " return worker.Response(json.dumps(json_output), mimetype=accept)\n", + " elif accept == 'text/csv':\n", + " return worker.Response(encoders.encode(prediction, accept), mimetype=accept)\n", + " else:\n", + " raise RuntimeException(\"{} accept type is not supported by this script.\".format(accept))\n", + "\n", + "\n", + "def predict_fn(input_data, model):\n", + " \"\"\"Preprocess input data\n", + "\n", + " We implement this because the default predict_fn uses .predict(), but our model is a preprocessor\n", + " so we want to use .transform().\n", + "\n", + " The output is returned in the following order:\n", + "\n", + " rest of features either one hot encoded or standardized\n", + " \"\"\"\n", + " features = model.transform(input_data)\n", + "\n", + " if label_column in input_data:\n", + " # Return the label (as the first column) and the set of features.\n", + " return np.insert(features, 0, input_data[label_column], axis=1)\n", + " else:\n", + " # Return only the set of features\n", + " return features\n", + "\n", + "\n", + "def model_fn(model_dir):\n", + " \"\"\"Deserialize fitted model\n", + " \"\"\"\n", + " preprocessor = joblib.load(os.path.join(model_dir, \"model.joblib\"))\n", + " return preprocessor\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.sklearn.processing import SKLearnProcessor\n", + "\n", + "\n", + "sklearn_framework_version = \"0.23-1\"\n", + "\n", + "sklearn_processor = SKLearnProcessor(\n", + " framework_version=sklearn_framework_version,\n", + " instance_type=processing_instance_type,\n", + " instance_count=processing_instance_count,\n", + " base_job_name=\"sklearn-housing-data-process\",\n", + " role=role,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.processing import ProcessingInput, ProcessingOutput\n", + "from sagemaker.workflow.steps import ProcessingStep\n", + "\n", + "\n", + "step_process = ProcessingStep(\n", + " name=\"PreprocessData\",\n", + " processor=sklearn_processor,\n", + " inputs=[\n", + " ProcessingInput(source=input_data, destination=\"/opt/ml/processing/input\"),\n", + " ],\n", + " outputs=[\n", + " ProcessingOutput(output_name=\"scaler_model\", source=\"/opt/ml/processing/scaler_model\"),\n", + " ProcessingOutput(output_name=\"train\", source=\"/opt/ml/processing/train\"),\n", + " ProcessingOutput(output_name=\"test\", source=\"/opt/ml/processing/test\"),\n", + " ],\n", + " code=\"code/preprocess.py\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define a Training Step to Train a Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile code/train.py\n", + "\n", + "import argparse\n", + "import numpy as np\n", + "import os\n", + "import tensorflow as tf\n", + "import pandas as pd\n", + "\n", + "feature_columns = [\n", + " \"longitude\",\n", + " \"latitude\",\n", + " \"housingMedianAge\",\n", + " \"totalRooms\",\n", + " \"totalBedrooms\",\n", + " \"population\",\n", + " \"households\",\n", + " \"medianIncome\",\n", + " ]\n", + "label_column = 'medianHouseValue'\n", + "\n", + "\n", + "def parse_args():\n", + "\n", + " parser = argparse.ArgumentParser()\n", + "\n", + " # hyperparameters sent by the client are passed as command-line arguments to the script\n", + " parser.add_argument('--epochs', type=int, default=1)\n", + " parser.add_argument('--batch_size', type=int, default=64)\n", + " parser.add_argument('--learning_rate', type=float, default=0.1)\n", + "\n", + " # data directories\n", + " parser.add_argument('--train', type=str, default=os.environ.get('SM_CHANNEL_TRAIN'))\n", + " parser.add_argument('--test', type=str, default=os.environ.get('SM_CHANNEL_TEST'))\n", + "\n", + " # model directory\n", + " parser.add_argument('--sm-model-dir', type=str, default=os.environ.get('SM_MODEL_DIR'))\n", + "\n", + " return parser.parse_known_args()\n", + "\n", + "\n", + "def get_train_data(train_dir):\n", + " train_data = pd.read_csv(os.path.join(train_dir, 'train.csv'))\n", + " x_train = train_data[feature_columns].to_numpy()\n", + " y_train = train_data[label_column].to_numpy()\n", + " print('x train', x_train.shape,'y train', y_train.shape)\n", + "\n", + " return x_train, y_train\n", + "\n", + "\n", + "def get_test_data(test_dir):\n", + "\n", + " test_data = pd.read_csv(os.path.join(test_dir, 'test.csv'))\n", + " x_test = test_data[feature_columns].to_numpy()\n", + " y_test = test_data[label_column].to_numpy()\n", + " print('x test', x_test.shape,'y test', y_test.shape)\n", + "\n", + " return x_test, y_test\n", + "\n", + "\n", + "def get_model():\n", + "\n", + " inputs = tf.keras.Input(shape=(8,))\n", + " hidden_1 = tf.keras.layers.Dense(8, activation='tanh')(inputs)\n", + " hidden_2 = tf.keras.layers.Dense(4, activation='sigmoid')(hidden_1)\n", + " outputs = tf.keras.layers.Dense(1)(hidden_2)\n", + " return tf.keras.Model(inputs=inputs, outputs=outputs)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + "\n", + " args, _ = parse_args()\n", + "\n", + " print('Training data location: {}'.format(args.train))\n", + " print('Test data location: {}'.format(args.test))\n", + " x_train, y_train = get_train_data(args.train)\n", + " x_test, y_test = get_test_data(args.test)\n", + "\n", + " batch_size = args.batch_size\n", + " epochs = args.epochs\n", + " learning_rate = args.learning_rate\n", + " print('batch_size = {}, epochs = {}, learning rate = {}'.format(batch_size, epochs, learning_rate))\n", + "\n", + "\n", + " model = get_model()\n", + " optimizer = tf.keras.optimizers.SGD(learning_rate)\n", + " model.compile(optimizer=optimizer, loss='mse')\n", + " model.fit(x_train,\n", + " y_train,\n", + " batch_size=batch_size,\n", + " epochs=epochs,\n", + " validation_data=(x_test, y_test))\n", + "\n", + " # evaluate on test set\n", + " scores = model.evaluate(x_test, y_test, batch_size, verbose=2)\n", + " print(\"\\nTest MSE :\", scores)\n", + "\n", + " # save model\n", + " model.save(args.sm_model_dir + '/1')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.tensorflow import TensorFlow\n", + "from sagemaker.inputs import TrainingInput\n", + "from sagemaker.workflow.steps import TrainingStep\n", + "from sagemaker.workflow.step_collections import RegisterModel\n", + "import time\n", + "\n", + "# Where to store the trained model\n", + "model_path = f\"s3://{bucket}/{prefix}/model/\"\n", + "\n", + "hyperparameters = {\"epochs\": training_epochs}\n", + "tensorflow_version = \"2.4.1\"\n", + "python_version = \"py37\"\n", + "\n", + "tf2_estimator = TensorFlow(\n", + " source_dir=\"code\",\n", + " entry_point=\"train.py\",\n", + " instance_type=training_instance_type,\n", + " instance_count=1,\n", + " framework_version=tensorflow_version,\n", + " role=role,\n", + " base_job_name=\"tensorflow-train-model\",\n", + " output_path=model_path,\n", + " hyperparameters=hyperparameters,\n", + " py_version=python_version,\n", + ")\n", + "\n", + "# Use the tf2_estimator in a Sagemaker pipelines ProcessingStep.\n", + "# NOTE how the input to the training job directly references the output of the previous step.\n", + "step_train_model = TrainingStep(\n", + " name=\"TrainTensorflowModel\",\n", + " estimator=tf2_estimator,\n", + " inputs={\n", + " \"train\": TrainingInput(\n", + " s3_data=step_process.properties.ProcessingOutputConfig.Outputs[\n", + " \"train\"\n", + " ].S3Output.S3Uri,\n", + " content_type=\"text/csv\",\n", + " ),\n", + " \"test\": TrainingInput(\n", + " s3_data=step_process.properties.ProcessingOutputConfig.Outputs[\n", + " \"test\"\n", + " ].S3Output.S3Uri,\n", + " content_type=\"text/csv\",\n", + " ),\n", + " },\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define a Model Evaluation Step to Evaluate the Trained Model\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile code/evaluate.py\n", + "\n", + "import os\n", + "import json\n", + "import sys\n", + "import numpy as np\n", + "import pandas as pd\n", + "import pathlib\n", + "import tarfile\n", + "\n", + "\n", + "feature_columns = [\n", + " \"longitude\",\n", + " \"latitude\",\n", + " \"housingMedianAge\",\n", + " \"totalRooms\",\n", + " \"totalBedrooms\",\n", + " \"population\",\n", + " \"households\",\n", + " \"medianIncome\",\n", + " ]\n", + "label_column = 'medianHouseValue'\n", + "\n", + "if __name__ == \"__main__\":\n", + "\n", + " model_path = f\"/opt/ml/processing/model/model.tar.gz\"\n", + " with tarfile.open(model_path, \"r:gz\") as tar:\n", + " tar.extractall(\"./model\")\n", + " import tensorflow as tf\n", + "\n", + " model = tf.keras.models.load_model(\"./model/1\")\n", + " test_path = \"/opt/ml/processing/test/\"\n", + " df = pd.read_csv(test_path+\"/test.csv\")\n", + " x_test = df[feature_columns].to_numpy()\n", + " y_test = df[label_column].to_numpy()\n", + " scores = model.evaluate(x_test, y_test, verbose=2)\n", + " print(\"\\nTest MSE :\", scores)\n", + "\n", + " # Available metrics to add to model: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-metrics.html\n", + " report_dict = {\n", + " \"regression_metrics\": {\n", + " \"mse\": {\"value\": scores, \"standard_deviation\": \"NaN\"},\n", + " },\n", + " }\n", + "\n", + " output_dir = \"/opt/ml/processing/evaluation\"\n", + " pathlib.Path(output_dir).mkdir(parents=True, exist_ok=True)\n", + "\n", + " evaluation_path = f\"{output_dir}/evaluation.json\"\n", + " with open(evaluation_path, \"w\") as f:\n", + " f.write(json.dumps(report_dict))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.properties import PropertyFile\n", + "from sagemaker.sklearn.processing import ScriptProcessor\n", + "\n", + "tf_eval_image_uri = sagemaker.image_uris.retrieve(\n", + " framework=\"tensorflow\",\n", + " region=region,\n", + " version=tensorflow_version,\n", + " image_scope=\"training\",\n", + " py_version=\"py37\",\n", + " instance_type=training_instance_type,\n", + ")\n", + "\n", + "evaluate_model_processor = ScriptProcessor(\n", + " role=role, \n", + " image_uri=tf_eval_image_uri, \n", + " command=['python3'], \n", + " instance_count=1, \n", + " instance_type=training_instance_type, \n", + ")\n", + "\n", + "# Create a PropertyFile\n", + "# A PropertyFile is used to be able to reference outputs from a processing step, for instance to use in a condition step.\n", + "# For more information, visit https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html\n", + "evaluation_report = PropertyFile(\n", + " name=\"EvaluationReport\", output_name=\"evaluation\", path=\"evaluation.json\"\n", + ")\n", + "\n", + "# Use the evaluate_model_processor in a Sagemaker pipelines ProcessingStep.\n", + "step_evaluate_model = ProcessingStep(\n", + " name=\"EvaluateModelPerformance\",\n", + " processor=evaluate_model_processor,\n", + " inputs=[\n", + " ProcessingInput(\n", + " source=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,\n", + " destination=\"/opt/ml/processing/model\",\n", + " ),\n", + " ProcessingInput(\n", + " source=step_process.properties.ProcessingOutputConfig.Outputs[\n", + " \"test\"\n", + " ].S3Output.S3Uri,\n", + " destination=\"/opt/ml/processing/test\",\n", + " ),\n", + " ],\n", + " outputs=[\n", + " ProcessingOutput(output_name=\"evaluation\", source=\"/opt/ml/processing/evaluation\"),\n", + " ],\n", + " code=\"code/evaluate.py\",\n", + " property_files=[evaluation_report],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define a Register Model Step to Create a Model Package for the PipelineModel\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.model import Model\n", + "from sagemaker.sklearn.model import SKLearnModel\n", + "from sagemaker import PipelineModel\n", + "\n", + "\n", + "scaler_model_s3 = \"{}/model.tar.gz\".format(\n", + " step_process.arguments[\"ProcessingOutputConfig\"][\"Outputs\"][0][\"S3Output\"][\"S3Uri\"]\n", + ")\n", + "\n", + "scaler_model = SKLearnModel(model_data=scaler_model_s3,\n", + " role=role,\n", + " sagemaker_session=sagemaker_session,\n", + " entry_point=\"code/preprocess.py\",\n", + " framework_version=sklearn_framework_version)\n", + "\n", + "\n", + "tf_model_image_uri = sagemaker.image_uris.retrieve(\n", + " framework=\"tensorflow\",\n", + " region=region,\n", + " version=tensorflow_version,\n", + " image_scope=\"inference\",\n", + " py_version=\"py37\",\n", + " instance_type=training_instance_type,\n", + ")\n", + "\n", + "tf_model = Model(\n", + " image_uri=tf_model_image_uri,\n", + " model_data=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,\n", + " sagemaker_session=sagemaker_session,\n", + " role=role,\n", + ")\n", + "\n", + "pipeline_model = PipelineModel(\n", + " models=[scaler_model, tf_model],\n", + " role=role,\n", + " sagemaker_session=sagemaker_session\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.model_metrics import MetricsSource, ModelMetrics\n", + "from sagemaker.workflow.step_collections import RegisterModel\n", + "\n", + "\n", + "evaluation_s3_uri = \"{}/evaluation.json\".format(\n", + " step_evaluate_model.arguments[\"ProcessingOutputConfig\"][\"Outputs\"][0][\"S3Output\"][\"S3Uri\"]\n", + ")\n", + "\n", + "model_metrics = ModelMetrics(\n", + " model_statistics=MetricsSource(\n", + " s3_uri=evaluation_s3_uri,\n", + " content_type=\"application/json\",\n", + " )\n", + ")\n", + "\n", + "step_register_pipeline_model = RegisterModel(\n", + " name=\"PipelineModel\",\n", + " model=pipeline_model,\n", + " content_types=[\"text/csv\"],\n", + " response_types=[\"text/csv\"],\n", + " inference_instances=[\"ml.m5.large\", \"ml.m5.xlarge\"],\n", + " transform_instances=[\"ml.m5.xlarge\"],\n", + " model_package_group_name=model_package_group_name,\n", + " model_metrics=model_metrics,\n", + " approval_status=model_approval_status,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define a Condition Step to Check Accuracy and Conditionally Register a Model in the Model Registry" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo\n", + "from sagemaker.workflow.condition_step import (\n", + " ConditionStep,\n", + " JsonGet,\n", + ")\n", + "\n", + "# Create accuracy condition to ensure the model meets performance requirements.\n", + "# Models with a test accuracy lower than the condition will not be registered with the model registry.\n", + "cond_lte = ConditionLessThanOrEqualTo(\n", + " left=JsonGet(\n", + " step=step_evaluate_model,\n", + " property_file=evaluation_report,\n", + " json_path=\"regression_metrics.mse.value\",\n", + " ),\n", + " right=accuracy_mse_threshold,\n", + ")\n", + "\n", + "# Create a Sagemaker Pipelines ConditionStep, using the condition above.\n", + "# Enter the steps to perform if the condition returns True / False.\n", + "step_cond = ConditionStep(\n", + " name=\"MSE-Lower-Than-Threshold-Condition\",\n", + " conditions=[cond_lte],\n", + " if_steps=[step_register_pipeline_model], #step_register_model, step_register_scaler,\n", + " else_steps=[],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define a Pipeline of Parameters, Steps, and Conditions\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.pipeline import Pipeline\n", + "\n", + "# Create a Sagemaker Pipeline.\n", + "# Each parameter for the pipeline must be set as a parameter explicitly when the pipeline is created.\n", + "# Also pass in each of the steps created above.\n", + "# Note that the order of execution is determined from each step's dependencies on other steps,\n", + "# not on the order they are passed in below.\n", + "pipeline = Pipeline(\n", + " name=pipeline_name,\n", + " parameters=[\n", + " processing_instance_type,\n", + " processing_instance_count,\n", + " training_instance_type,\n", + " input_data,\n", + " model_approval_status,\n", + " training_epochs,\n", + " accuracy_mse_threshold,\n", + " ],\n", + " steps=[step_process, step_train_model, step_evaluate_model, step_cond],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "definition = json.loads(pipeline.definition())\n", + "definition" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Submit the pipeline to SageMaker and start execution¶\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline.upsert(role_arn=role)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "execution = pipeline.start()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "execution.wait()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy latest approved model to a real-time endpoint" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile utils.py\n", + "import argparse\n", + "import boto3\n", + "import logging\n", + "import os\n", + "from botocore.exceptions import ClientError\n", + "import tarfile\n", + "import zipfile\n", + "\n", + "logger = logging.getLogger(__name__)\n", + "sm_client = boto3.client(\"sagemaker\")\n", + "\n", + "\n", + "def get_approved_package(model_package_group_name):\n", + " \"\"\"Gets the latest approved model package for a model package group.\n", + "\n", + " Args:\n", + " model_package_group_name: The model package group name.\n", + "\n", + " Returns:\n", + " The SageMaker Model Package ARN.\n", + " \"\"\"\n", + " try:\n", + " # Get the latest approved model package\n", + " response = sm_client.list_model_packages(\n", + " ModelPackageGroupName=model_package_group_name,\n", + " ModelApprovalStatus=\"Approved\",\n", + " SortBy=\"CreationTime\",\n", + " MaxResults=100,\n", + " )\n", + " approved_packages = response[\"ModelPackageSummaryList\"]\n", + "\n", + " # Fetch more packages if none returned with continuation token\n", + " while len(approved_packages) == 0 and \"NextToken\" in response:\n", + " logger.debug(\"Getting more packages for token: {}\".format(response[\"NextToken\"]))\n", + " response = sm_client.list_model_packages(\n", + " ModelPackageGroupName=model_package_group_name,\n", + " ModelApprovalStatus=\"Approved\",\n", + " SortBy=\"CreationTime\",\n", + " MaxResults=100,\n", + " NextToken=response[\"NextToken\"],\n", + " )\n", + " approved_packages.extend(response[\"ModelPackageSummaryList\"])\n", + "\n", + " # Return error if no packages found\n", + " if len(approved_packages) == 0:\n", + " error_message = (\n", + " f\"No approved ModelPackage found for ModelPackageGroup: {model_package_group_name}\"\n", + " )\n", + " logger.error(error_message)\n", + " raise Exception(error_message)\n", + "\n", + " # Return the pmodel package arn\n", + " model_package_arn = approved_packages[0][\"ModelPackageArn\"]\n", + " logger.info(f\"Identified the latest approved model package: {model_package_arn}\")\n", + " return approved_packages[0]\n", + " # return model_package_arn\n", + " except ClientError as e:\n", + " error_message = e.response[\"Error\"][\"Message\"]\n", + " logger.error(error_message)\n", + " raise Exception(error_message)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from utils import get_approved_package\n", + "sm_client = boto3.client(\"sagemaker\")\n", + "\n", + "pck = get_approved_package(model_package_group_name) # Reminder: model_package_group_name was defined as \"NominetAbaloneModelPackageGroupName\" at the beginning of the pipeline definition\n", + "model_description = sm_client.describe_model_package(ModelPackageName=pck['ModelPackageArn'])\n", + "\n", + "model_description" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker import ModelPackage\n", + "\n", + "model_package_arn = model_description['ModelPackageArn']\n", + "model = ModelPackage(role=role, \n", + " model_package_arn=model_package_arn, \n", + " sagemaker_session=sagemaker_session)\n", + "\n", + "endpoint_name = 'DEMO-endpoint-' + time.strftime(\"%Y-%m-%d-%H-%M-%S\", time.gmtime())\n", + "print(\"EndpointName= {}\".format(endpoint_name))\n", + "model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge', endpoint_name=endpoint_name)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.predictor import Predictor\n", + "predictor = Predictor(endpoint_name=endpoint_name)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.read_csv('data/raw/raw_data_all.csv')\n", + "house_values = data['medianHouseValue']\n", + "data = data.drop('medianHouseValue', axis=1)\n", + "\n", + "pred_count = 10\n", + "payload = data.iloc[:pred_count].to_string(header=False, index=False).replace(' ',',')\n", + "p = predictor.predict(payload, initial_args = {\"ContentType\": \"text/csv\"})\n", + "print(p.decode(\"utf-8\") )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "blue, stop = '\\033[94m', '\\033[0m'\n", + "predictions = json.loads(p.decode(\"utf-8\"))['predictions']\n", + "for i in range(pred_count):\n", + " print(f\"Predicted: {blue}{predictions[i][0]}{stop} and Actual is: {blue}{house_values.iloc[i]}{stop}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clean-up\n", + "Delete the resources created for this example to avoid any unintended charges" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sm_client = boto3.client(\"sagemaker\")\n", + "\n", + "for d in sm_client.list_model_packages(ModelPackageGroupName=model_package_group_name)['ModelPackageSummaryList']:\n", + " print(d['ModelPackageArn'])\n", + " sm_client.delete_model_package(ModelPackageName=d['ModelPackageArn'])\n", + " \n", + "sm_client.delete_model_package_group(ModelPackageGroupName=model_package_group_name)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "predictor.delete_endpoint()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline.delete()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "kernelspec": { + "display_name": "Python 3 (Data Science)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:eu-west-1:470317259841:image/datascience-1.0" + }, + "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.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/sagemaker-pipelines/tabular/tuning-step/sagemaker-pipelines-tuning-step.ipynb b/sagemaker-pipelines/tabular/tuning-step/sagemaker-pipelines-tuning-step.ipynb index d97fc11ede..fac31fa81b 100644 --- a/sagemaker-pipelines/tabular/tuning-step/sagemaker-pipelines-tuning-step.ipynb +++ b/sagemaker-pipelines/tabular/tuning-step/sagemaker-pipelines-tuning-step.ipynb @@ -41,7 +41,12 @@ "from sagemaker.estimator import Estimator\n", "from sagemaker.inputs import TrainingInput\n", "\n", - "from sagemaker.processing import ProcessingInput, ProcessingOutput, Processor, ScriptProcessor\n", + "from sagemaker.processing import (\n", + " ProcessingInput,\n", + " ProcessingOutput,\n", + " Processor,\n", + " ScriptProcessor,\n", + ")\n", "\n", "from sagemaker import Model\n", "from sagemaker.xgboost import XGBoostPredictor\n", @@ -56,16 +61,22 @@ ")\n", "from sagemaker.workflow.pipeline import Pipeline\n", "from sagemaker.workflow.properties import PropertyFile\n", - "from sagemaker.workflow.steps import ProcessingStep, TrainingStep, CacheConfig, TuningStep\n", + "from sagemaker.workflow.steps import (\n", + " ProcessingStep,\n", + " CacheConfig,\n", + " TuningStep,\n", + ")\n", "from sagemaker.workflow.step_collections import RegisterModel, CreateModelStep\n", "from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo\n", "from sagemaker.workflow.condition_step import (\n", " ConditionStep,\n", " JsonGet,\n", ")\n", + "\n", + "from sagemaker.workflow.functions import Join\n", + "from sagemaker.workflow.execution_variables import ExecutionVariables\n", + "\n", "from sagemaker.tuner import (\n", - " IntegerParameter,\n", - " CategoricalParameter,\n", " ContinuousParameter,\n", " HyperparameterTuner,\n", " WarmStartConfig,\n", @@ -84,7 +95,9 @@ "region = sagemaker.Session().boto_region_name\n", "sm_client = boto3.client(\"sagemaker\")\n", "boto_session = boto3.Session(region_name=region)\n", - "sagemaker_session = sagemaker.session.Session(boto_session=boto_session, sagemaker_client=sm_client)" + "sagemaker_session = sagemaker.session.Session(\n", + " boto_session=boto_session, sagemaker_client=sm_client\n", + ")" ] }, { @@ -100,11 +113,15 @@ "base_job_prefix = \"tuning-step-example\"\n", "model_package_group_name = \"tuning-job-model-packages\"\n", "\n", - "processing_instance_count = ParameterInteger(name=\"ProcessingInstanceCount\", default_value=1)\n", + "processing_instance_count = ParameterInteger(\n", + " name=\"ProcessingInstanceCount\", default_value=1\n", + ")\n", "processing_instance_type = ParameterString(\n", " name=\"ProcessingInstanceType\", default_value=\"ml.m5.xlarge\"\n", ")\n", - "training_instance_type = ParameterString(name=\"TrainingInstanceType\", default_value=\"ml.m5.xlarge\")\n", + "training_instance_type = ParameterString(\n", + " name=\"TrainingInstanceType\", default_value=\"ml.m5.xlarge\"\n", + ")\n", "model_approval_status = ParameterString(\n", " name=\"ModelApprovalStatus\", default_value=\"PendingManualApproval\"\n", ")\n", @@ -224,7 +241,10 @@ " numeric_features = list(feature_columns_names)\n", " numeric_features.remove(\"sex\")\n", " numeric_transformer = Pipeline(\n", - " steps=[(\"imputer\", SimpleImputer(strategy=\"median\")), (\"scaler\", StandardScaler())]\n", + " steps=[\n", + " (\"imputer\", SimpleImputer(strategy=\"median\")),\n", + " (\"scaler\", StandardScaler()),\n", + " ]\n", " )\n", "\n", " categorical_features = [\"sex\"]\n", @@ -249,7 +269,9 @@ "\n", " X = np.concatenate((y_pre, X_pre), axis=1)\n", "\n", - " logger.info(\"Splitting %d rows of data into train, validation, test datasets.\", len(X))\n", + " logger.info(\n", + " \"Splitting %d rows of data into train, validation, test datasets.\", len(X)\n", + " )\n", " np.random.shuffle(X)\n", " train, validation, test = np.split(X, [int(0.7 * len(X)), int(0.85 * len(X))])\n", "\n", @@ -269,6 +291,10 @@ "source": [ "# Process the training data step using a python script.\n", "# Split the training data set into train, test, and validation datasets\n", + "# When defining the ProcessingOutput destination as a dynamic value using the \n", + "# Pipeline Execution ID, caching will not be in effect as each time the step runs, \n", + "# the step definition changes resulting in new execution. If caching is required, \n", + "# the ProcessingOutput definition should be status\n", "\n", "sklearn_processor = SKLearnProcessor(\n", " framework_version=\"0.23-1\",\n", @@ -282,13 +308,51 @@ " name=\"PreprocessAbaloneDataForHPO\",\n", " processor=sklearn_processor,\n", " outputs=[\n", - " ProcessingOutput(output_name=\"train\", source=\"/opt/ml/processing/train\"),\n", - " ProcessingOutput(output_name=\"validation\", source=\"/opt/ml/processing/validation\"),\n", - " ProcessingOutput(output_name=\"test\", source=\"/opt/ml/processing/test\"),\n", + " ProcessingOutput(\n", + " output_name=\"train\",\n", + " source=\"/opt/ml/processing/train\",\n", + " destination=Join(\n", + " on=\"/\",\n", + " values=[\n", + " \"s3:/\",\n", + " default_bucket,\n", + " base_job_prefix,\n", + " ExecutionVariables.PIPELINE_EXECUTION_ID,\n", + " \"PreprocessAbaloneDataForHPO\",\n", + " ],\n", + " ),\n", + " ),\n", + " ProcessingOutput(\n", + " output_name=\"validation\",\n", + " source=\"/opt/ml/processing/validation\",\n", + " destination=Join(\n", + " on=\"/\",\n", + " values=[\n", + " \"s3:/\",\n", + " default_bucket,\n", + " base_job_prefix,\n", + " ExecutionVariables.PIPELINE_EXECUTION_ID,\n", + " \"PreprocessAbaloneDataForHPO\",\n", + " ],\n", + " ),\n", + " ),\n", + " ProcessingOutput(\n", + " output_name=\"test\",\n", + " source=\"/opt/ml/processing/test\",\n", + " destination=Join(\n", + " on=\"/\",\n", + " values=[\n", + " \"s3:/\",\n", + " default_bucket,\n", + " base_job_prefix,\n", + " ExecutionVariables.PIPELINE_EXECUTION_ID,\n", + " \"PreprocessAbaloneDataForHPO\",\n", + " ],\n", + " ),\n", + " ),\n", " ],\n", " code=\"preprocess.py\",\n", " job_arguments=[\"--input-data\", input_data],\n", - " cache_config=cache_config,\n", ")" ] }, @@ -366,7 +430,9 @@ " tuner=tuner_log,\n", " inputs={\n", " \"train\": TrainingInput(\n", - " s3_data=step_process.properties.ProcessingOutputConfig.Outputs[\"train\"].S3Output.S3Uri,\n", + " s3_data=step_process.properties.ProcessingOutputConfig.Outputs[\n", + " \"train\"\n", + " ].S3Output.S3Uri,\n", " content_type=\"text/csv\",\n", " ),\n", " \"validation\": TrainingInput(\n", @@ -429,7 +495,9 @@ " tuner=tuner_log_warm_start,\n", " inputs={\n", " \"train\": TrainingInput(\n", - " s3_data=step_process.properties.ProcessingOutputConfig.Outputs[\"train\"].S3Output.S3Uri,\n", + " s3_data=step_process.properties.ProcessingOutputConfig.Outputs[\n", + " \"train\"\n", + " ].S3Output.S3Uri,\n", " content_type=\"text/csv\",\n", " ),\n", " \"validation\": TrainingInput(\n", @@ -601,16 +669,22 @@ " processor=script_eval,\n", " inputs=[\n", " ProcessingInput(\n", - " source=step_tuning.get_top_model_s3_uri(top_k=0, s3_bucket=model_bucket_key),\n", + " source=step_tuning.get_top_model_s3_uri(\n", + " top_k=0, s3_bucket=model_bucket_key\n", + " ),\n", " destination=\"/opt/ml/processing/model\",\n", " ),\n", " ProcessingInput(\n", - " source=step_process.properties.ProcessingOutputConfig.Outputs[\"test\"].S3Output.S3Uri,\n", + " source=step_process.properties.ProcessingOutputConfig.Outputs[\n", + " \"test\"\n", + " ].S3Output.S3Uri,\n", " destination=\"/opt/ml/processing/test\",\n", " ),\n", " ],\n", " outputs=[\n", - " ProcessingOutput(output_name=\"evaluation\", source=\"/opt/ml/processing/evaluation\"),\n", + " ProcessingOutput(\n", + " output_name=\"evaluation\", source=\"/opt/ml/processing/evaluation\"\n", + " ),\n", " ],\n", " code=\"evaluate.py\",\n", " property_files=[evaluation_report],\n", @@ -620,7 +694,9 @@ "model_metrics = ModelMetrics(\n", " model_statistics=MetricsSource(\n", " s3_uri=\"{}/evaluation.json\".format(\n", - " step_eval.arguments[\"ProcessingOutputConfig\"][\"Outputs\"][0][\"S3Output\"][\"S3Uri\"]\n", + " step_eval.arguments[\"ProcessingOutputConfig\"][\"Outputs\"][0][\"S3Output\"][\n", + " \"S3Uri\"\n", + " ]\n", " ),\n", " content_type=\"application/json\",\n", " )\n", @@ -660,7 +736,9 @@ "\n", "cond_lte = ConditionLessThanOrEqualTo(\n", " left=JsonGet(\n", - " step=step_eval, property_file=evaluation_report, json_path=\"regression_metrics.mse.value\"\n", + " step=step_eval,\n", + " property_file=evaluation_report,\n", + " json_path=\"regression_metrics.mse.value\",\n", " ),\n", " right=6.0,\n", ")\n", @@ -687,7 +765,14 @@ " input_data,\n", " model_approval_status,\n", " ],\n", - " steps=[step_process, step_tuning, step_create_first, step_create_second, step_eval, step_cond],\n", + " steps=[\n", + " step_process,\n", + " step_tuning,\n", + " step_create_first,\n", + " step_create_second,\n", + " step_eval,\n", + " step_cond,\n", + " ],\n", " sagemaker_session=sagemaker_session,\n", ")" ] @@ -764,21 +849,12 @@ "metadata": { "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "Python 3 (Data Science)", - "language": "python", - "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-2:429704687514:image/datascience-1.0" + "display_name": "Python 3.9.4 64-bit ('python@3.9')", + "name": "python394jvsc74a57bd0ac2eaa0ea0ebeafcc7822e65e46aa9d4f966f30b695406963e145ea4a91cd4fc" }, "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.10" + "version": "" }, "metadata": { "interpreter": { @@ -788,4 +864,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/sagemaker-python-sdk/1P_kmeans_highlevel/kmeans_mnist.ipynb b/sagemaker-python-sdk/1P_kmeans_highlevel/kmeans_mnist.ipynb index 3accd5f49c..953a43d555 100644 --- a/sagemaker-python-sdk/1P_kmeans_highlevel/kmeans_mnist.ipynb +++ b/sagemaker-python-sdk/1P_kmeans_highlevel/kmeans_mnist.ipynb @@ -242,18 +242,24 @@ "source": [ "for cluster in range(10):\n", " print(f\"\\n\\n\\nCluster {int(cluster)}:\")\n", - " digits = [img for l, img in zip(clusters, valid_set[0]) if int(l) == cluster]\n", - " height = ((len(digits) - 1) // 5) + 1\n", - " width = 5\n", - " plt.rcParams[\"figure.figsize\"] = (width, height)\n", - " _, subplots = plt.subplots(height, width)\n", - " subplots = numpy.ndarray.flatten(subplots)\n", - " for subplot, image in zip(subplots, digits):\n", - " show_digit(image, subplot=subplot)\n", - " for subplot in subplots[len(digits) :]:\n", - " subplot.axis(\"off\")\n", - "\n", - " plt.show()" + " digits = [img for l, img in zip(clusters, valid_set[0]) if int(l) == cluster] \n", + " '''\n", + " The KMeans algorithm as an optimization problem is an NP Complete problem, and internal implementations\n", + " can produce different results for each run, depending upon the locations of the initial cluster centroid.\n", + " In some cases, there might be no data points in a cluster. We plot below the data points for clusters which\n", + " have datapoints.\n", + " '''\n", + " if digits: \n", + " height = ((len(digits) - 1) // 5) + 1\n", + " width = 5\n", + " plt.rcParams[\"figure.figsize\"] = (width, height)\n", + " _, subplots = plt.subplots(height, width)\n", + " subplots = numpy.ndarray.flatten(subplots)\n", + " for subplot, image in zip(subplots, digits):\n", + " show_digit(image, subplot=subplot)\n", + " for subplot in subplots[len(digits) :]:\n", + " subplot.axis(\"off\")\n", + " plt.show()" ] }, { diff --git a/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon.ipynb b/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon.ipynb index 066f4705dd..6fdd89259e 100644 --- a/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon.ipynb +++ b/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon.ipynb @@ -41,8 +41,34 @@ "metadata": {}, "outputs": [], "source": [ - "gluon.data.vision.MNIST(\"./data/train\", train=True)\n", - "gluon.data.vision.MNIST(\"./data/test\", train=False)" + "import os\n", + "\n", + "for inner_dir in [\"train\", \"test\"]:\n", + " data_dir = \"./data/{}/\".format(inner_dir)\n", + " if not os.path.exists(data_dir):\n", + " os.makedirs(data_dir)\n", + "\n", + "s3 = boto3.client(\"s3\")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/train/train-images-idx3-ubyte.gz\",\n", + " \"./data/train/train-images-idx3-ubyte.gz\",\n", + ")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/train/train-labels-idx1-ubyte.gz\",\n", + " \"./data/train/train-labels-idx1-ubyte.gz\",\n", + ")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/test/t10k-images-idx3-ubyte.gz\",\n", + " \"./data/test/t10k-images-idx3-ubyte.gz\",\n", + ")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/test/t10k-labels-idx1-ubyte.gz\",\n", + " \"./data/test/t10k-labels-idx1-ubyte.gz\",\n", + ")" ] }, { @@ -157,7 +183,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can now use this predictor to classify hand-written digits. Drawing into the image box loads the pixel data into a 'data' variable in this notebook, which we can then pass to the mxnet predictor. " + "We can now use this predictor to classify hand-written digits. Manually drawing into the image box loads the pixel data into a 'data' variable in this notebook, which we can then pass to the MXNet predictor. " ] }, { @@ -171,6 +197,37 @@ "HTML(open(\"input.html\").read())" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fetch the first image from the test dataset and display it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import gzip\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "f = gzip.open(\"data/train/train-images-idx3-ubyte.gz\", \"r\")\n", + "\n", + "image_size = 28\n", + "\n", + "f.read(16)\n", + "buf = f.read(image_size * image_size)\n", + "data = np.frombuffer(buf, dtype=np.uint8).astype(np.float32)\n", + "data = data.reshape(1, image_size, image_size, 1)\n", + "\n", + "image = np.asarray(data).squeeze()\n", + "plt.imshow(image)\n", + "plt.show()" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -225,7 +282,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.13" }, "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." }, diff --git a/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon_local_mode.ipynb b/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon_local_mode.ipynb index 5390a4f984..99ca279469 100644 --- a/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon_local_mode.ipynb +++ b/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon_local_mode.ipynb @@ -8,7 +8,7 @@ "\n", "### Pre-requisites\n", "\n", - "This notebook shows how to use the SageMaker Python SDK to run your code in a local container before deploying to SageMaker's managed training or hosting environments. This can speed up iterative testing and debugging while using the same familiar Python SDK interface. Just change your estimator's `train_instance_type` to `local`. You could also use `local_gpu` if you're using an ml.p2 or ml.p3 notebook instance, but then you'll need to set `train_instance_count=1` since distributed, local, GPU training is not yet supported.\n", + "This notebook shows how to use the SageMaker Python SDK to run your code in a local container before deploying to SageMaker's managed training or hosting environments. This can speed up iterative testing and debugging while using the same familiar Python SDK interface. Just change your estimator's `instance_type` to `local`. You could also use `local_gpu` if you're using an ml.p2 or ml.p3 notebook instance, but then you'll need to set `instance_count=1` since distributed, local, GPU training is not yet supported.\n", "\n", "In order to use this feature you'll need to install docker-compose (and nvidia-docker if training with a GPU). Running the setup.sh script below will handle this for you.\n", "\n", @@ -73,8 +73,34 @@ "metadata": {}, "outputs": [], "source": [ - "gluon.data.vision.MNIST(\"./data/train\", train=True)\n", - "gluon.data.vision.MNIST(\"./data/test\", train=False)" + "import os\n", + "\n", + "for inner_dir in [\"train\", \"test\"]:\n", + " data_dir = \"./data/{}/\".format(inner_dir)\n", + " if not os.path.exists(data_dir):\n", + " os.makedirs(data_dir)\n", + "\n", + "s3 = boto3.client(\"s3\")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/train/train-images-idx3-ubyte.gz\",\n", + " \"./data/train/train-images-idx3-ubyte.gz\",\n", + ")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/train/train-labels-idx1-ubyte.gz\",\n", + " \"./data/train/train-labels-idx1-ubyte.gz\",\n", + ")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/test/t10k-images-idx3-ubyte.gz\",\n", + " \"./data/test/t10k-images-idx3-ubyte.gz\",\n", + ")\n", + "s3.download_file(\n", + " \"sagemaker-sample-files\",\n", + " \"datasets/image/MNIST/test/t10k-labels-idx1-ubyte.gz\",\n", + " \"./data/test/t10k-labels-idx1-ubyte.gz\",\n", + ")" ] }, { @@ -121,7 +147,7 @@ "source": [ "## Run the training script on SageMaker\n", "\n", - "The ```MXNet``` class allows us to run our training function on SageMaker local mode. We need to configure it with our training script, an IAM role, the number of training instances, and the training instance type. This is the the only difference from [mnist_with_gluon.ipynb](./mnist_with_gluon.ipynb). Instead of ``train_instance_type='ml.c4.xlarge'``, we set it to ``train_instance_type='local'``. For local training with GPU, we could set this to \"local_gpu\". In this case, `instance_type` was set above based on your whether you're running a GPU instance." + "The ```MXNet``` class allows us to run our training function on SageMaker local mode. We need to configure it with our training script, an IAM role, the number of training instances, and the training instance type. This is the only difference from [mxnet_mnist_with_gluon.ipynb](./mxnet_mnist_with_gluon.ipynb). Instead of ``instance_type='ml.c4.xlarge'``, we set it to ``instance_type='local'``. For local training with GPU, we could set this to \"local_gpu\". In this case, `instance_type` was set above based on your whether you're running a GPU instance." ] }, { @@ -189,7 +215,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can now use this predictor to classify hand-written digits. Drawing into the image box loads the pixel data into a 'data' variable in this notebook, which we can then pass to the mxnet predictor." + "We can now use this predictor to classify hand-written digits. Manually drawing into the image box loads the pixel data into a 'data' variable in this notebook, which we can then pass to the MXNet predictor." ] }, { @@ -203,6 +229,37 @@ "HTML(open(\"input.html\").read())" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fetch the first image from the test dataset and display it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import gzip\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "f = gzip.open(\"data/train/train-images-idx3-ubyte.gz\", \"r\")\n", + "\n", + "image_size = 28\n", + "\n", + "f.read(16)\n", + "buf = f.read(image_size * image_size)\n", + "data = np.frombuffer(buf, dtype=np.uint8).astype(np.float32)\n", + "data = data.reshape(1, image_size, image_size, 1)\n", + "\n", + "image = np.asarray(data).squeeze()\n", + "plt.imshow(image)\n", + "plt.show()" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -257,7 +314,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.13" }, "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." }, diff --git a/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb b/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb index db69b82d12..ee665386b3 100644 --- a/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb +++ b/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb @@ -10,21 +10,9 @@ "* SDK https://sagemaker.readthedocs.io/en/stable/sagemaker.sklearn.html\n", "* boto3 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#client\n", "\n", - "In this notebook we show how to use Amazon SageMaker to develop, train, tune and deploy a Scikit-Learn based ML model (Random Forest). More info on Scikit-Learn can be found here https://scikit-learn.org/stable/index.html. We use the Boston Housing dataset, present in Scikit-Learn: https://scikit-learn.org/stable/datasets/index.html#boston-dataset\n", + "In this notebook we show how to use Amazon SageMaker to develop, train, tune and deploy a Scikit-Learn based ML model (Random Forest). More info on Scikit-Learn can be found here https://scikit-learn.org/stable/index.html. We use the California Housing dataset, present in Scikit-Learn: https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html. The California Housing dataset was originally published in:\n", "\n", - "\n", - "More info on the dataset:\n", - "\n", - "The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic prices and the demand for clean air', J. Environ. Economics & Management, vol.5, 81-102, 1978. Used in Belsley, Kuh & Welsch, 'Regression diagnostics ...', Wiley, 1980. N.B. Various transformations are used in the table on pages 244-261 of the latter.\n", - "\n", - "The Boston house-price data has been used in many machine learning papers that address regression problems.\n", - "References\n", - "\n", - " * Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n", - " * Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n", - " \n", - " \n", - " \n", + "> Pace, R. Kelley, and Ronald Barry. \"Sparse spatial autoregressions.\" Statistics & Probability Letters 33.3 (1997): 291-297.\n", " \n", "**This sample is provided for demonstration purposes, make sure to conduct appropriate testing if derivating this code for your own use-cases!**" ] @@ -45,7 +33,7 @@ "from sagemaker import get_execution_role\n", "import sagemaker\n", "from sklearn.model_selection import train_test_split\n", - "from sklearn.datasets import load_boston\n", + "from sklearn.datasets import fetch_california_housing\n", "\n", "\n", "sm_boto3 = boto3.client(\"sagemaker\")\n", @@ -73,8 +61,8 @@ "metadata": {}, "outputs": [], "source": [ - "# we use the Boston housing dataset\n", - "data = load_boston()" + "# we use the California housing dataset\n", + "data = fetch_california_housing()" ] }, { @@ -109,8 +97,8 @@ "metadata": {}, "outputs": [], "source": [ - "trainX.to_csv(\"boston_train.csv\")\n", - "testX.to_csv(\"boston_test.csv\")" + "trainX.to_csv(\"california_housing_train.csv\")\n", + "testX.to_csv(\"california_housing_test.csv\")" ] }, { @@ -121,11 +109,11 @@ "source": [ "# send data to S3. SageMaker will take training data from s3\n", "trainpath = sess.upload_data(\n", - " path=\"boston_train.csv\", bucket=bucket, key_prefix=\"sagemaker/sklearncontainer\"\n", + " path=\"california_housing_train.csv\", bucket=bucket, key_prefix=\"sagemaker/sklearncontainer\"\n", ")\n", "\n", "testpath = sess.upload_data(\n", - " path=\"boston_test.csv\", bucket=bucket, key_prefix=\"sagemaker/sklearncontainer\"\n", + " path=\"california_housing_test.csv\", bucket=bucket, key_prefix=\"sagemaker/sklearncontainer\"\n", ")" ] }, @@ -174,8 +162,8 @@ " parser.add_argument(\"--model-dir\", type=str, default=os.environ.get(\"SM_MODEL_DIR\"))\n", " parser.add_argument(\"--train\", type=str, default=os.environ.get(\"SM_CHANNEL_TRAIN\"))\n", " parser.add_argument(\"--test\", type=str, default=os.environ.get(\"SM_CHANNEL_TEST\"))\n", - " parser.add_argument(\"--train-file\", type=str, default=\"boston_train.csv\")\n", - " parser.add_argument(\"--test-file\", type=str, default=\"boston_test.csv\")\n", + " parser.add_argument(\"--train-file\", type=str, default=\"california_housing_train.csv\")\n", + " parser.add_argument(\"--test-file\", type=str, default=\"california_housing_test.csv\")\n", " parser.add_argument(\n", " \"--features\", type=str\n", " ) # in this script we ask user to explicitly name features\n", @@ -237,7 +225,7 @@ " --model-dir ./ \\\n", " --train ./ \\\n", " --test ./ \\\n", - " --features 'CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT' \\\n", + " --features 'MedInc HouseAge AveRooms AveBedrms Population AveOccup Latitude Longitude' \\\n", " --target target" ] }, @@ -277,7 +265,7 @@ " hyperparameters={\n", " \"n-estimators\": 100,\n", " \"min-samples-leaf\": 3,\n", - " \"features\": \"CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT\",\n", + " \"features\": \"MedInc HouseAge AveRooms AveBedrms Population AveOccup Latitude Longitude\",\n", " \"target\": \"target\",\n", " },\n", ")" @@ -360,7 +348,7 @@ " \"n_estimators\": \"300\",\n", " \"min_samples_leaf\": \"3\",\n", " \"sagemaker_program\": \"script.py\",\n", - " \"features\": \"CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT\",\n", + " \"features\": \"MedInc HouseAge AveRooms AveBedrms Population AveOccup Latitude Longitude\",\n", " \"target\": \"target\",\n", " \"sagemaker_submit_directory\": \"s3://\" + bucket + \"/\" + project + \"/\" + source,\n", " },\n", @@ -641,7 +629,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/sagemaker-python-sdk/tensorboard_keras/tensorboard_keras.ipynb b/sagemaker-python-sdk/tensorboard_keras/tensorboard_keras.ipynb index fa18d7d1a8..aff842f707 100644 --- a/sagemaker-python-sdk/tensorboard_keras/tensorboard_keras.ipynb +++ b/sagemaker-python-sdk/tensorboard_keras/tensorboard_keras.ipynb @@ -134,45 +134,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Create a training job using the sagemaker.TensorFlow estimator, running locally\n", - "To test that the code will work in SageMaker, we'll first use SageMaker local mode." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from sagemaker.tensorflow import TensorFlow\n", - "\n", - "hyperparameters = {\"epochs\": 2, \"batch-size\": 128, \"tf-logs-path\": tensorflow_logs_path}\n", - "\n", - "inputs = {\n", - " \"train\": \"file://\" + os.getcwd() + \"/data/train\",\n", - " \"validation\": \"file://\" + os.getcwd() + \"/data/validation\",\n", - "}\n", - "\n", - "estimator = TensorFlow(\n", - " base_job_name=\"tensorboard-example-local\",\n", - " entry_point=\"tensorboard_keras_cifar10.py\",\n", - " source_dir=\"source_dir\",\n", - " role=role,\n", - " framework_version=\"2.2.0\",\n", - " py_version=\"py37\",\n", - " hyperparameters=hyperparameters,\n", - " instance_count=1,\n", - " instance_type=\"local\",\n", - ")\n", - "\n", - "estimator.fit(inputs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Run on SageMaker cloud" + "## Run on SageMaker Training on the cloud" ] }, { @@ -242,9 +204,13 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [], "source": [ + "from sagemaker.tensorflow import TensorFlow\n", + "\n", "hyperparameters = {\"epochs\": 2, \"batch-size\": 256, \"tf-logs-path\": tensorflow_logs_path}\n", "\n", "inputs = {\"train\": dataset_location + \"/train\", \"validation\": dataset_location + \"/validation\"}\n", @@ -326,7 +292,7 @@ "\n", "hyperparameter_ranges = {\n", " \"learning-rate\": ContinuousParameter(0.00001, 0.001),\n", - " \"batch-size\": CategoricalParameter([64, 128, 256, 512]),\n", + " \"batch-size\": CategoricalParameter([64, 128]),\n", " \"optimizer\": CategoricalParameter([\"sgd\", \"adam\", \"rmsprop\"]),\n", "}\n", "\n", @@ -340,7 +306,7 @@ " hyperparameter_ranges,\n", " metric_definitions=keras_metric_definition,\n", " objective_type=\"Maximize\",\n", - " max_jobs=10,\n", + " max_jobs=4,\n", " max_parallel_jobs=2,\n", " early_stopping_type=\"Auto\",\n", " base_tuning_job_name=\"remote-hpo\",\n", @@ -360,46 +326,68 @@ "Now we can use TensorBoard to compare all training jobs, including local, cloud, tuning training. The following cell will run TensorBoard inside of the SageMaker Notebook Instance." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Start Tensorboard from the System terminal and view the Tensorboard UI. To do this, follow steps 1-3 below:\n", + "\n", + "1. From SageMaker Studio's Jupyter Server, launch the System terminal (under Utilities and files) (see image below)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![](https://github.com/anoop-ml/smstudio_tensorboard_sample/blob/main/images/launch_system_terminal.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Run the following command to install tensorboard onto the system terminal\n", + "\n", + "```pip install tensorboard```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Paste the command that is the output of the next cell to start your tensorboard instance on Studio:\n", + "\n" + ] + }, { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": true - }, + "metadata": {}, "outputs": [], "source": [ "aws_region = sagemaker_session.boto_region_name\n", - "\n", - "!AWS_REGION={aws_region} tensorboard --logdir {tensorflow_logs_path}" + "!AWS_REGION={aws_region}\n", + "!echo tensorboard --logdir {tensorflow_logs_path}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "[**Click here to access TensorBoard instance**](/proxy/6006/)\n", - "\n", - "Instance of TensorBoard will be available at `https:///proxy/6006/`.\n", - "By default TensorBoard assigns port 6006, but if it's already in use TensorBoard will increase the port by 1, so 6007, 6008 and so on until it finds an avilable port.\n", - "\n", - "You should something similar to this:\n", - "![TensorBoard screenshot](data:image/png;base64,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ik+fpQMRIOlx+umnp+tGR40alc684MrRESNGdGBUuzYCRqA9EeDv7jHHHNOeLu3LCBgBI2AEjIARMAJGYPoQaA/+21n8G15ejv9XXLGyGBUNsg7IvTIc1BGCKRlAm34lDqirX2Mp0clOCYeoSjr5pS2RH/nAv+y02Dwm9vSnREnhIA/5ctmBCHBF6O9///sOjGDXRsAIdCQC//znP8PTTz8djjzyyI4MY99GwAgYASNgBIyAETAClRGAzyJFTluok1SA/+oLePiubNEl/htL8WX6qMO52cGA5HX1N/X83yd6YvPIP3WE+PjUHChlQ128PFbLixyV723SKogmqAURANFZD/Tntpo0QORj8gnKB35KFyJdz0Kf/OS+sKkan9cfLEbACBgBI2AEjIARMAJGwAgYASNgBBoZgcKX523iv3F94s3w8dIEQXvzb2KIx4unV4W4nh0QShjgXEkGSD9CEB4WCdNnQbRVx542Qp14uU7j6Mc/Ip/4oh+hD5+0OduB+FosJXp8C1BlHb72DoiIisUIGIFuh8Cdd94ZbrnllnSd78477xzWWWedtIYbbrghfPbZZ6Fnz57pNhxu3PnRj34UllxyyeIan3vuuXDjjTeGN998M6y++urhhz/8YbKXATsdbr311sCBtMOHDw9rrrlms9uCiE2cxRZbLHz/+99PpcZWKseMGROuu+668N5774XNN988DBs2LL2SJftqMZkn8biumGuFGTvbbLOFTz75JHDtMOsbNGhQcgUmb7zxRvjpT3+axnAzEInm+++/P5x55pkp5mWXXRYeffTRMHDgwLDtttuGZZddVtNIa+Zg3Icffjite4cddghcUXzyySenQ3R33333ZPvFF1+EkSNHhi222CKst956xfGuGAEjYASMgBEwAkagoxAofHkOX4bXwmnZuQDfnRYf6XP+jQ7BljpPzr/FodGJX+MPO/Fo8e98vOKLr8O/0clWesXDF/20qwqGtURBcChhHIuhj1KCDZNB6EM0TgvSJOVXbY3DH2PkV3byg8+64+dXRTLQYgSMgBFodATOOuusdK3uW2+9FR588MF0fS5JAYRyzz33DL/73e/C1KlT07W3q6yySrp9hv6HHnoorLjiiuHSSy8NH3/8cdh///0Toec2HuS2225LxPsvf/lLeP/998Paa68djjvuuNTHB8R9xIgRyfepp56a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)\n" + "4. Finally click the link below!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Run TensorBoard locally\n", + "[**Click here to access TensorBoard instance**](/jupyter/default/proxy/6006/)\n", "\n", - "The same command can be used to run TensorBoard in any environment:\n", - "- install TensorFlow locally using `pip install tensorflow`\n", - "- profiling the model also requires Profiler plugin `pip install tensorboard_plugin_profile`\n", - "- configure AWS CLI and make sure you have read access to S3 bucket containing TensorFlow log files\n", - "- configure default AWS region. You can do this by setting an environment variable named `AWS_REGION` with region name where the S3 bucket is located, e.g. `export AWS_REGION=eu-west-1`\n", - "- start TensorBoard with a following command `tensorboard --logdir `\n", + "Instance of TensorBoard will be available at `https:///proxy/6006/`.\n", + "By default TensorBoard assigns port 6006, but if it's already in use TensorBoard will increase the port by 1, so 6007, 6008 and so on until it finds an available port.\n", "\n", - "Now you can access the local instance of TensorBoard at http://localhost:6006" + "You should see something similar to this:\n", + "![TensorBoard screenshot](data:image/png;base64,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ik+fpQMRIOlx+umnp+tGR40alc684MrRESNGdGBUuzYCRqA9EeDv7jHHHNOeLu3LCBgBI2AEjIARMAJGYPoQaA/+21n8G15ejv9XXLGyGBUNsg7IvTIc1BGCKRlAm34lDqirX2Mp0clOCYeoSjr5pS2RH/nAv+y02Dwm9vSnREnhIA/5ctmBCHBF6O9///sOjGDXRsAIdCQC//znP8PTTz8djjzyyI4MY99GwAgYASNgBIyAETAClRGAzyJFTluok1SA/+oLePiubNEl/htL8WX6qMO52cGA5HX1N/X83yd6YvPIP3WE+PjUHChlQ128PFbLixyV723SKogmqAURANFZD/Tntpo0QORj8gnKB35KFyJdz0Kf/OS+sKkan9cfLEbACBgBI2AEjIARMAJGwAgYASNgBBoZgcKX523iv3F94s3w8dIEQXvzb2KIx4unV4W4nh0QShjgXEkGSD9CEB4WCdNnQbRVx542Qp14uU7j6Mc/Ip/4oh+hD5+0OduB+FosJXp8C1BlHb72DoiIisUIGIFuh8Cdd94ZbrnllnSd78477xzWWWedtIYbbrghfPbZZ6Fnz57pNhxu3PnRj34UllxyyeIan3vuuXDjjTeGN998M6y++urhhz/8YbKXATsdbr311sCBtMOHDw9rrrlms9uCiE2cxRZbLHz/+99PpcZWKseMGROuu+668N5774XNN988DBs2LL2SJftqMZkn8biumGuFGTvbbLOFTz75JHDtMOsbNGhQcgUmb7zxRvjpT3+axnAzEInm+++/P5x55pkp5mWXXRYeffTRMHDgwLDtttuGZZddVtNIa+Zg3Icffjite4cddghcUXzyySenQ3R33333ZPvFF1+EkSNHhi222CKst956xfGuGAEjYASMgBEwAkagoxAofHkOX4bXwmnZuQDfnRYf6XP+jQ7BljpPzr/FodGJX+MPO/Fo8e98vOKLr8O/0clWesXDF/20qwqGtURBcChhHIuhj1KCDZNB6EM0TgvSJOVXbY3DH2PkV3byg8+64+dXRTLQYgSMgBFodATOOuusdK3uW2+9FR588MF0fS5JAYRyzz33DL/73e/C1KlT07W3q6yySrp9hv6HHnoorLjiiuHSSy8NH3/8cdh///0Toec2HuS2225LxPsvf/lLeP/998Paa68djjvuuNTHB8R9xIgRyfepp56a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)\n" ] }, { @@ -412,10 +400,11 @@ } ], "metadata": { + "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "conda_tensorflow2_p36", + "display_name": "Python 3 (TensorFlow 2.1 Python 3.6 CPU Optimized)", "language": "python", - "name": "conda_tensorflow2_p36" + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/tensorflow-2.1-cpu-py36" }, "language_info": { "codemirror_mode": { @@ -427,7 +416,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" }, "notice": "Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at http://aws.amazon.com/apache2.0/ or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.", "pycharm": { @@ -441,5 +430,5 @@ } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/sagemaker-python-sdk/tensorflow_script_mode_training_and_serving/tensorflow_script_mode_training_and_serving.ipynb b/sagemaker-python-sdk/tensorflow_script_mode_training_and_serving/tensorflow_script_mode_training_and_serving.ipynb index 537e96760b..f28600f687 100644 --- a/sagemaker-python-sdk/tensorflow_script_mode_training_and_serving/tensorflow_script_mode_training_and_serving.ipynb +++ b/sagemaker-python-sdk/tensorflow_script_mode_training_and_serving/tensorflow_script_mode_training_and_serving.ipynb @@ -64,7 +64,7 @@ "source": [ "# Construct a script for distributed training\n", "\n", - "This tutorial's training script was adapted from TensorFlow's official [CNN MNIST example](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/layers/cnn_mnist.py). We have modified it to handle the ``model_dir`` parameter passed in by SageMaker. This is an S3 path which can be used for data sharing during distributed training and checkpointing and/or model persistence. We have also added an argument-parsing function to handle processing training-related variables.\n", + "This tutorial's training script was adapted from an earlier version of TensorFlow's official [CNN MNIST example](https://github.com/tensorflow/tensorflow/blob/95e808ba44075dfe0b7db57bb49d2e64a1977a95/tensorflow/examples/tutorials/layers/cnn_mnist.py). An updated version is available at [Convolutional Neural Network (CNN)](https://github.com/tensorflow/docs/blob/master/site/en/tutorials/images/cnn.ipynb). We have modified the example to handle the ``model_dir`` parameter passed in by SageMaker. This is an S3 path which can be used for data sharing during distributed training and checkpointing and/or model persistence. We have also added an argument-parsing function to handle processing training-related variables.\n", "\n", "At the end of the training job we have added a step to export the trained model to the path stored in the environment variable ``SM_MODEL_DIR``, which always points to ``/opt/ml/model``. This is critical because SageMaker uploads all the model artifacts in this folder to S3 at end of training.\n", "\n", diff --git a/sagemaker-python-sdk/tensorflow_serving_container/sample_utils.py b/sagemaker-python-sdk/tensorflow_serving_container/sample_utils.py index d13d9db8d2..be527331c6 100644 --- a/sagemaker-python-sdk/tensorflow_serving_container/sample_utils.py +++ b/sagemaker-python-sdk/tensorflow_serving_container/sample_utils.py @@ -29,14 +29,14 @@ def tfhub_to_savedmodel( model_path = "{}/{}/00000001".format(export_path, model_name) tfhub_uri = uri_pattern.format(model_name) - with tf.Session(graph=tf.Graph()) as sess: + with tf.compat.v1.Session(graph=tf.Graph()) as sess: module = hub.Module(tfhub_uri) input_params = module.get_input_info_dict() dtype = input_params["images"].dtype shape = input_params["images"].get_shape() # define the model inputs - inputs = {"images": tf.placeholder(dtype, shape, "images")} + inputs = {"images": tf.compat.v1.placeholder(dtype, shape, "images")} # define the model outputs # we want the class ids and probabilities for the top 3 classes @@ -46,8 +46,8 @@ def tfhub_to_savedmodel( outputs = {"classes": classes, "probabilities": probs} # export the model - sess.run([tf.global_variables_initializer(), tf.tables_initializer()]) - tf.saved_model.simple_save(sess, model_path, inputs=inputs, outputs=outputs) + sess.run([tf.compat.v1.global_variables_initializer(), tf.compat.v1.tables_initializer()]) + tf.compat.v1.saved_model.simple_save(sess, model_path, inputs=inputs, outputs=outputs) return model_path diff --git a/sagemaker-python-sdk/tensorflow_serving_container/tensorflow_serving_container.ipynb b/sagemaker-python-sdk/tensorflow_serving_container/tensorflow_serving_container.ipynb index 673f5698a7..984f819cb0 100644 --- a/sagemaker-python-sdk/tensorflow_serving_container/tensorflow_serving_container.ipynb +++ b/sagemaker-python-sdk/tensorflow_serving_container/tensorflow_serving_container.ipynb @@ -10,6 +10,7 @@ "# install dependencies\n", "!pip install opencv-python\n", "!pip install tensorflow-hub\n", + "!apt-get update\n", "!apt-get install ffmpeg libsm6 libxext6 -y" ] }, @@ -352,7 +353,7 @@ }, "outputs": [], "source": [ - "from sagemaker.tensorflow.serving import Model\n", + "from sagemaker.tensorflow.model import TensorFlowModel\n", "\n", "# Use an env argument to set the name of the default model.\n", "# This is optional, but recommended when you deploy multiple models\n", @@ -360,7 +361,7 @@ "# predictable model.\n", "env = {\"SAGEMAKER_TFS_DEFAULT_MODEL_NAME\": \"mobilenet_v2_140_224\"}\n", "\n", - "model = Model(model_data=model_data, role=sagemaker_role, framework_version=\"1.15.2\", env=env)\n", + "model = TensorFlowModel(model_data=model_data, role=sagemaker_role, framework_version=\"1.15.2\", env=env)\n", "predictor = model.deploy(initial_instance_count=1, instance_type=\"ml.c5.xlarge\")" ] }, @@ -479,7 +480,7 @@ "Note: if you are using local mode (by changing the instance type to `local` or `local_gpu`), you'll need to create the new predictor this way instead:\n", "\n", "```\n", - "predictor2 = Predictor(predictor.endpoint, model_name='mobilenet_v2_035_224', \n", + "predictor2 = TensorFlowPredictor(predictor.endpoint_name, model_name='mobilenet_v2_035_224', \n", " sagemaker_session=predictor.sagemaker_session)\n", "```" ] @@ -500,10 +501,10 @@ }, "outputs": [], "source": [ - "from sagemaker.tensorflow.serving import Predictor\n", + "from sagemaker.tensorflow.model import TensorFlowPredictor\n", "\n", "# use values from the default predictor to set up the new one\n", - "predictor2 = Predictor(predictor.endpoint, model_name=\"mobilenet_v2_035_224\")\n", + "predictor2 = TensorFlowPredictor(predictor.endpoint_name, model_name=\"mobilenet_v2_035_224\")\n", "\n", "# make a new prediction\n", "bee_image = sample_utils.image_file_to_tensor(\"bee.jpg\")\n", diff --git a/sagemaker-script-mode/sagemaker-script-mode.ipynb b/sagemaker-script-mode/sagemaker-script-mode.ipynb index ea42d2ec7e..1f906523a2 100644 --- a/sagemaker-script-mode/sagemaker-script-mode.ipynb +++ b/sagemaker-script-mode/sagemaker-script-mode.ipynb @@ -65,7 +65,6 @@ "import os\n", "import boto3\n", "import numpy as np\n", - "from sklearn.datasets import load_boston\n", "from sklearn.preprocessing import StandardScaler\n", "from sagemaker.pytorch import PyTorch\n", "from sagemaker.xgboost import XGBoost\n", diff --git a/sagemaker_edge_manager/README.md b/sagemaker_edge_manager/README.md index 93bfe947ca..74fd368f5f 100644 --- a/sagemaker_edge_manager/README.md +++ b/sagemaker_edge_manager/README.md @@ -2,9 +2,9 @@ SageMaker Edge Manager is a new service from Amazon SageMaker that lets you: -+ prepares custom models for edge device hardware -+ includes a runtime for running machine learning inference efficiently on edge devices -+ enables the device to send samples of data from each model securely to SageMaker for relabeling and retraining. ++ prepare custom models for edge device hardware ++ include a runtime for running machine learning inference efficiently on edge devices ++ enable the device to send samples of data from each model securely to SageMaker for relabeling and retraining. There are two main components to this service: @@ -12,6 +12,7 @@ There are two main components to this service: + SageMaker Edge Agent on the Edge device -This notebook walks the user through steps for compiling a pre-trained model using AWS SageMaker Neo service. We show how to package this compiled model and then load it to the Agent on the Edge Device to make predictions with. Finally, we show how to capture model's input and output to S3 via the Agent. +These notebooks walks the user through steps for compiling a pre-trained model using AWS SageMaker Neo service. We show how to package this compiled model and then how to use it on devices. In the first notebool we show you how to manually install the agent on the device, load the model and make predictions with. In the second notebook we show you how to use the provided SageMaker EdgeManager Greengrass component for an automatic installation. Finally, we show how to capture model's input and output to S3 via the Agent. -- [SageMaker Edge Example](sagemaker_edge_example) +- [SageMaker Edge Example](sagemaker_edge_example/sagemaker_edge_example.ipynb) +- [SageMaker Edge Manager Greengrass Example](sagemaker_edge_example/sagemaker_edge_greengrass_example.ipynb) diff --git a/sagemaker_edge_manager/sagemaker_edge_example/darknet.bmp b/sagemaker_edge_manager/sagemaker_edge_example/darknet.bmp deleted file mode 100644 index 2ee279cefd..0000000000 Binary files a/sagemaker_edge_manager/sagemaker_edge_example/darknet.bmp and /dev/null differ diff --git a/sagemaker_edge_manager/sagemaker_edge_example/inference.py b/sagemaker_edge_manager/sagemaker_edge_example/inference.py new file mode 100644 index 0000000000..deaeb5b7a4 --- /dev/null +++ b/sagemaker_edge_manager/sagemaker_edge_example/inference.py @@ -0,0 +1,123 @@ +import grpc +from PIL import Image +import agent_pb2 +import agent_pb2_grpc +import os +import numpy as np +import json + + +model_path = os.environ['MODEL_PATH'] +ml_model = os.environ['ML_MODEL'] +image_path = os.environ['IMAGE_PATH'] +capture_data = os.environ['CAPTURE_DATA'].lower() == "true" + +agent_socket = 'unix:///tmp/aws.greengrass.SageMakerEdgeManager.sock' + +agent_channel = grpc.insecure_channel(agent_socket, options=(('grpc.enable_http_proxy', 0),)) + +agent_client = agent_pb2_grpc.AgentStub(agent_channel) + + +def list_models(): + return agent_client.ListModels(agent_pb2.ListModelsRequest()) + + +def list_model_tensors(models): + return { + model.name: { + 'inputs': model.input_tensor_metadatas, + 'outputs': model.output_tensor_metadatas + } + for model in list_models().models + } + + +def load_model(model_name, model_path): + load_request = agent_pb2.LoadModelRequest() + load_request.url = model_path + load_request.name = model_name + return agent_client.LoadModel(load_request) + + +def unload_model(name): + unload_request = agent_pb2.UnLoadModelRequest() + unload_request.name = name + return agent_client.UnLoadModel(unload_request) + + +def predict_image(model_name, image_path): + image_tensor = agent_pb2.Tensor() + im = Image.open(image_path) + img = np.asarray(im) + # Neo compiled model requires the array to be of shape (3, 244, 244) + img = img.transpose(2,0,1) + # normalization according to https://github.com/tensorflow/tensorflow/blob/a4dfb8d1a71385bd6d122e4f27f86dcebb96712d/tensorflow/python/keras/applications/imagenet_utils.py#L259 + img = (img/127.5).astype(np.float32) + img -= 1. + image_tensor.byte_data = img.tobytes() + image_tensor_metadata = list_model_tensors(list_models())[model_name]['inputs'][0] + image_tensor.tensor_metadata.name = image_tensor_metadata.name + image_tensor.tensor_metadata.data_type = image_tensor_metadata.data_type + for shape in image_tensor_metadata.shape: + image_tensor.tensor_metadata.shape.append(shape) + predict_request = agent_pb2.PredictRequest() + predict_request.name = model_name + predict_request.tensors.append(image_tensor) + predict_response = agent_client.Predict(predict_request) + return predict_response + +def main(): + try: + unload_model(ml_model) + except: + pass + + print('LoadModel...', end='') + try: + load_model(ml_model, model_path=model_path) + print('done.') + except Exception as e: + print() + print(e) + print('Model already loaded!') + + print('ListModels...', end='') + try: + print(list_models()) + print('done.') + + except Exception as e: + print() + print(e) + print('List model failed!') + + print('Predict') + try: + prediction = predict_image(ml_model, image_path=image_path) + #print(prediction) # uncomment to print the predictio object + pred = np.frombuffer(prediction.tensors[0].byte_data, dtype = np.float32) + # the returned array has shape (1000,), while mobilenet v2 returns a shape (1, 1000) + # decoding results https://github.com/tensorflow/tensorflow/blob/a4dfb8d1a71385bd6d122e4f27f86dcebb96712d/tensorflow/python/keras/applications/imagenet_utils.py#L159 + + top_indexes = pred.argsort()[-5:][::-1] + with open(os.environ["IMAGENET_CLASS_INDEX_PATH"]) as f: + classes = json.load(f) + result = [tuple(classes[str(i)]) + (pred[i],) for i in top_indexes] + print(result) + except Exception as e: + print() + print(e) + print('Predict failed!') + + print('Unload model...', end='') + try: + unload_model(ml_model) + print('done.') + except Exception as e: + print() + print(e) + print('unload model failed!') + +if __name__ == '__main__': + main() diff --git a/sagemaker_edge_manager/sagemaker_edge_example/sagemaker_edge_example.ipynb b/sagemaker_edge_manager/sagemaker_edge_example/sagemaker_edge_example.ipynb index a411fbf3c3..906ca2d126 100644 --- a/sagemaker_edge_manager/sagemaker_edge_example/sagemaker_edge_example.ipynb +++ b/sagemaker_edge_manager/sagemaker_edge_example/sagemaker_edge_example.ipynb @@ -4,28 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# SageMaker Edge Manager Example\n", - "\n", - "1. [Introduction](#Introduction)\n", - "2. [Demo Setup](#Demo-Setup)\n", - " 1. [Launch EC2 Instance](#Launch-EC2-Instance)\n", - "3. [Compile Model using SageMaker Neo](#Compile-Model-using-SageMaker-Neo)\n", - " 1. [Load pretrained model](#Load-pretrained-model)\n", - "6. [Deploy Model using Sagemaker Edge Manager](#Deploy-Model-using-Sagemaker-Edge-Manager)\n", - " 1. [Package Model](#Package-Model)\n", - " 2. [Create AWS IoT thing](#Create-AWS-IoT-thing)\n", - " 3. [Create Device Fleet](#Create-Device-Fleet)\n", - " 4. [Create and register client certificate with AWS IoT](#Create-and-register-client-certificate-with-AWS-IoT)\n", - "7. [Inference on Edge](#Inference-on-Edge)\n", - " 1. [Setup Sagemaker Edge Manager Agent](#Setup-Sagemaker-Edge-Manager-Agent) \n", - " 2. [Load Model](#Load-Model)\n", - " 3. [List Models](#List-Models)\n", - " 4. [Run Predict](#Run-Predict)\n", - " 5. [Capture Data](#Capture-Data)\n", - " 6. [Unload Model](#Unload-Model)\n", - "8. [Clean Up](#Clean-Up)\n", - "9. [Appendix](#Appendix)\n", - " 1. [(Optional)Install CloudWatch Agent](#(Optional)Install-CloudWatch-Agent )" + "# SageMaker Edge Manager Example" ] }, { @@ -36,9 +15,9 @@ "\n", "SageMaker Edge Manager is a service from Amazon SageMaker that lets you:\n", "\n", - "+ prepares custom models for edge device hardware\n", - "+ includes a runtime for running machine learning inference efficiently on edge devices\n", - "+ enables devices to send samples of data from each model securely to SageMaker for relabeling and retraining.\n", + "+ prepare custom models for edge device hardware\n", + "+ include a runtime for running machine learning inference efficiently on edge devices\n", + "+ enable the device to send samples of data from each model securely to SageMaker for relabeling and retraining.\n", "\n", "There are two main components to this service:\n", "+ SageMaker Edge Manager in the Cloud \n", @@ -55,7 +34,7 @@ "**Note**:\n", "Typically, the SageMaker Edge Agent is run on an edge device. For the sake of this notebook, we will run the Agent on an EC2 instance. We show how to package the compiled model and then load it to the Agent on the edge Device to make predictions with. Finally, we show how to capture model's input and output to S3 via the Agent.\n", "\n", - "This notebook is intented only for notebook instances. When you run this notebook, choose the kernel: `conda_tensorflow_p36`" + "This notebook is intended only for notebook instances. When you run this notebook, choose the kernel: `conda_tensorflow_p36`" ] }, { @@ -81,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -113,6 +92,7 @@ "\n", "- AmazonEC2FullAccess \n", "- AmazonEC2RoleforSSM \n", + "- AmazonS3FullAccess \n", "- AmazonSSMManagedInstanceCore \n", "- AmazonSSMFullAccess \n", "- AWSIoTFullAccess \n", @@ -150,7 +130,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Finally we upload the test image to S3 bucket. This image will be used in inference later." + "Finally, we upload the test image to S3 bucket. This image will be used in inference later." ] }, { @@ -159,7 +139,6 @@ "metadata": {}, "outputs": [], "source": [ - "darknet_img_path = sess.upload_data(\"darknet.bmp\", bucket, iot_folder)\n", "keras_img_path = sess.upload_data(\"keras.bmp\", bucket, iot_folder)" ] }, @@ -179,18 +158,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "ec2_client = boto3.client(\"ec2\", region_name=region)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Copyright 2021 Amazon.com.\n", + "# SPDX-License-Identifier: MIT\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Generate a key pair for the EC2 instance, and save the key pem file. We can use this key with SSH to connect to the instance. But in this notebook example, we will not use SSH, instead, we will use AWS Systems Manager to send commands to the instance instead." + "Generate a key pair for the EC2 instance, and save the key PEM file. We can use this key with SSH to connect to the instance. But in this notebook example, we will not use SSH, instead, we will use AWS Systems Manager to send commands to the instance instead." ] }, { @@ -254,18 +244,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'ami-006ff58f5247c50eb'" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "ami_map = {\n", - " \"us-east-1\": \"ami-063585f0e06d22308\",\n", - " \"us-east-2\": \"ami-01bd6a1621a6968d7\",\n", - " \"us-west-2\": \"ami-0bc87a16c757a7f07\",\n", - " \"eu-central-1\": \"ami-01227276a4e5a4a31\",\n", - " \"ap-northeast-1\": \"ami-03b8cfea5460e4881\",\n", - " \"eu-west-1\": \"ami-006ff58f5247c50eb\",\n", - "}" + "ami = ec2_client.describe_images(Filters=[{'Name': 'name', 'Values': ['Deep Learning AMI (Ubuntu 18.04) Version 36.0']}])['Images'][0]['ImageId']\n", + "ami" ] }, { @@ -277,7 +272,7 @@ "ec2_profile_name = \"\" # the name of the role created for EC2\n", "\n", "ec2_instance = ec2_client.run_instances(\n", - " ImageId=ami_map[region],\n", + " ImageId=ami,\n", " MinCount=1,\n", " MaxCount=1,\n", " InstanceType=\"c5.large\",\n", @@ -322,180 +317,6 @@ "sagemaker_client = boto3.client(\"sagemaker\", region_name=region)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Download pretrained Darknet model" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!wget -O yolov3-tiny.cfg https://github.com/pjreddie/darknet/blob/master/cfg/yolov3-tiny.cfg?raw=true\n", - "!wget https://pjreddie.com/media/files/yolov3-tiny.weights" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import tarfile\n", - "\n", - "with tarfile.open(\"yolov3-tiny.tar.gz\", mode=\"w:gz\") as archive:\n", - " archive.add(\"yolov3-tiny.cfg\")\n", - " archive.add(\"yolov3-tiny.weights\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "darknet_model_path = sess.upload_data(\"yolov3-tiny.tar.gz\", bucket, folder)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Note**: When calling ``create_compilation_job()`` the user is expected to provide all the correct input shapes required by the model for successful compilation. If using a different model, you will need to specify the framework and data shape correctly." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "darknet_model_data_shape = '{\"data\":[1,3,416,416]}'\n", - "darknet_model_framework = \"darknet\"\n", - "target_os = \"LINUX\"\n", - "target_arch = \"X86_64\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import time\n", - "\n", - "darknet_compilation_job_name = \"Sagemaker-Edge-\" + str(time.time()).split(\".\")[0]\n", - "print(\"Compilation job for %s started\" % darknet_compilation_job_name)\n", - "\n", - "response = sagemaker_client.create_compilation_job(\n", - " CompilationJobName=darknet_compilation_job_name,\n", - " RoleArn=role,\n", - " InputConfig={\n", - " \"S3Uri\": darknet_model_path,\n", - " \"DataInputConfig\": darknet_model_data_shape,\n", - " \"Framework\": darknet_model_framework.upper(),\n", - " },\n", - " OutputConfig={\n", - " \"S3OutputLocation\": s3_compilation_output_location,\n", - " \"TargetPlatform\": {\"Arch\": target_arch, \"Os\": target_os},\n", - " },\n", - " StoppingCondition={\"MaxRuntimeInSeconds\": 900},\n", - ")\n", - "\n", - "print(response)\n", - "\n", - "# Poll every 30 sec\n", - "while True:\n", - " response = sagemaker_client.describe_compilation_job(\n", - " CompilationJobName=darknet_compilation_job_name\n", - " )\n", - " if response[\"CompilationJobStatus\"] == \"COMPLETED\":\n", - " break\n", - " elif response[\"CompilationJobStatus\"] == \"FAILED\":\n", - " print(response)\n", - " raise RuntimeError(\"Compilation failed\")\n", - " print(\"Compiling ...\")\n", - " time.sleep(30)\n", - "print(\"Done!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Package Model using Sagemaker Edge Manager\n", - "\n", - "In this section, we will walk through packaging two models that achieve different goals. One is a Keras based Image Classification model and the other is a Darknet based Object Detection Model. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Package Darknet Model\n", - "\n", - "Before we can deploy the compiled model to edge devices, we need to package the model using SageMaker Edge Manager cloud service." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "darknet_packaged_model_name = \"darknet-model\"\n", - "darknet_model_version = \"1.0\"\n", - "darknet_model_package = \"{}-{}.tar.gz\".format(darknet_packaged_model_name, darknet_model_version)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "darknet_packaging_job_name = darknet_compilation_job_name + \"-packaging\"\n", - "response = sagemaker_client.create_edge_packaging_job(\n", - " RoleArn=role,\n", - " OutputConfig={\n", - " \"S3OutputLocation\": s3_compilation_output_location,\n", - " },\n", - " ModelName=darknet_packaged_model_name,\n", - " ModelVersion=darknet_model_version,\n", - " EdgePackagingJobName=darknet_packaging_job_name,\n", - " CompilationJobName=darknet_compilation_job_name,\n", - ")\n", - "\n", - "print(response)\n", - "\n", - "# Poll every 30 sec\n", - "while True:\n", - " job_status = sagemaker_client.describe_edge_packaging_job(\n", - " EdgePackagingJobName=darknet_packaging_job_name\n", - " )\n", - " if job_status[\"EdgePackagingJobStatus\"] == \"COMPLETED\":\n", - " break\n", - " elif job_status[\"EdgePackagingJobStatus\"] == \"FAILED\":\n", - " print(job_status)\n", - " raise RuntimeError(\"Edge Packaging failed\")\n", - " print(\"Packaging ...\")\n", - " time.sleep(30)\n", - "print(\"Done!\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "darknet_model_data = job_status[\"ModelArtifact\"]" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -666,7 +487,7 @@ "source": [ "### Create AWS IoT thing\n", "\n", - "SageMaker Edge Manager uses AWS IoT Core to authenticate the device so we can make calls to SageMaker Edge Manager endpoints in AWS Cloud. \n", + "SageMaker Edge Manager uses AWS IoT Core to authenticate the device in order to make calls to SageMaker Edge Manager endpoints in AWS Cloud. \n", "\n", "In order for an edge device to use AWS services, it is necessary for it to first authenticate. We recommend doing this via AWS IoT based authentication, for more details refer [here](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) and [here](https://aws.amazon.com/blogs/security/how-to-eliminate-the-need-for-hardcoded-aws-credentials-in-devices-by-using-the-aws-iot-credentials-provider/)." ] @@ -726,7 +547,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Configure an IAM role in your AWS account that will be assumed by the credentials provider on behalf of the devices in your device fleet. \n", + "Configure an IAM role in your AWS account that will be assumed by the credentials' provider on behalf of the devices in your device fleet. \n", "\n", "**Notice**: The name of the role must start with `SageMaker`.\n", "\n", @@ -933,10 +754,14 @@ ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ - "Obtain your AWS account-specific endpoint for the credentials provider." + "# Copyright 2021 Amazon.com.\n", + "# SPDX-License-Identifier: MIT\n", + "\n" ] }, { @@ -963,7 +788,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Get offical Amazon Root CA file and upload to S3 bucket. " + "Get official Amazon Root CA file and upload to S3 bucket. " ] }, { @@ -979,7 +804,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Use the endpoint to make an HTTPS request to the credentials provider to return a security token. The following example command uses curl, but you can use any HTTP client.\n", + "Use the endpoint to make an HTTPS request to the credentials' provider to return a security token. The following example command uses curl, but you can use any HTTP client.\n", "\n", "**Optional: verify the credentials.**\n" ] @@ -999,7 +824,7 @@ "source": [ "If the certificate can be verified with the endpoint without error, upload certificate files to S3 bucket.\n", "\n", - "These files will be used in the [Setup Sagemaker Edge Manager Agent](#Setup-Sagemaker-Edge-Manager-Agent) section on EC2/device as Credential Provider." + "These files will be used in the [Setup SageMaker Edge Manager Agent](#Setup-Sagemaker-Edge-Manager-Agent) section on EC2/device as Credential Provider." ] }, { @@ -1024,7 +849,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In our example, we will use [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) to remotely perform actions on the EC2 instance. To see the SSM logs from CloudWatch, refer to [Install CouldWatch Agent section](#(Optional)Install-CloudWatch-Agent). \n", + "In our example, we will use [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) to remotely perform actions on the EC2 instance. To see the SSM logs from CloudWatch, refer to [Install CloudWatch Agent section](#(Optional)Install-CloudWatch-Agent). \n", "\n", "Execution status of send_command is available in [AWS Systems Manager console](https://console.aws.amazon.com/systems-manager/run-command/complete-commands) command history." ] @@ -1223,10 +1048,6 @@ " \"aws s3 cp \" + device_cert_path + \" .\",\n", " \"aws s3 cp \" + device_key_path + \" .\",\n", " \"cd /demo\",\n", - " \"aws s3 cp \" + darknet_img_path + \" .\",\n", - " \"aws s3 cp \" + darknet_model_data + \" .\",\n", - " \"mkdir darknet_model\",\n", - " \"tar -xf \" + darknet_model_package + \" -C darknet_model\",\n", " \"aws s3 cp \" + keras_img_path + \" .\",\n", " \"aws s3 cp \" + keras_model_data + \" .\",\n", " \"mkdir keras_model\",\n", @@ -1277,6 +1098,7 @@ " \"sagemaker_edge_provider_aws_cert_pk_file\": \"/demo/iot-credentials/iot_key.pem.key\",\n", " \"sagemaker_edge_provider_aws_iot_cred_endpoint\": endpoint,\n", " \"sagemaker_edge_provider_provider\": \"Aws\",\n", + " \"sagemaker_edge_provider_provider_path\": \"/demo/lib/libprovider_aws.so\",\n", " \"sagemaker_edge_provider_s3_bucket_name\": bucket,\n", " \"sagemaker_edge_core_capture_data_destination\": \"Cloud\",\n", "}" @@ -1385,7 +1207,7 @@ "source": [ "### Load Model\n", "\n", - "In this section, we show the model management capabilities offered by SageMaker Edge Manager. We will load the two compiled and packaged models using the Agent. This keeps both models ready to run inference with. As you will see, once the models are loaded you can run multiple inferences as many times as necessary until the models are unloaded. This relieves the client applications from the logic and operational burden of managing them separately. These models are now simply an API away from running inference with.\n", + "In this section, we show the model management capabilities offered by SageMaker Edge Manager. We will load the two compiled and packaged models using the Agent. This keeps both models ready to run inference with. As you will see, once the models are loaded you can run multiple inferences as many times as necessary until the models are unloaded. This reliefs the client applications from the logic and operational burden of managing them separately. These models are now simply an API away from running inference with.\n", "\n", "When loading the model with the SageMaker Edge Agent, the argument to the API points the Agent to a directory containing the packaged model (without any extraneous files within the directory). " ] @@ -1394,48 +1216,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Load darknet model\n", - "\n", - "`darknet_model` is the path containing the packaged model in this notebook. `demo-darknet` is the name given to this model. This name will be used later to refer to this model for, making predictions, capturing data, unload." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "load_darknet_model_out = ssm_client.send_command(\n", - " InstanceIds=[instance_id],\n", - " DocumentName=\"AWS-RunShellScript\",\n", - " OutputS3BucketName=bucket,\n", - " OutputS3KeyPrefix=folder,\n", - " Parameters={\n", - " \"commands\": [\n", - " \"cd /demo\",\n", - " \"./bin/sagemaker_edge_agent_client_example LoadModel darknet_model demo-darknet\",\n", - " ]\n", - " },\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ssm_client.get_command_invocation(\n", - " CommandId=load_darknet_model_out[\"Command\"][\"CommandId\"],\n", - " InstanceId=instance_id,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Load keras model\n", + "#### Load Keras model\n", "\n", "`keras_model` is the path containing the packaged model in this notebook. `demo-keras` is the name given to this model. This name will be used later to refer to this model for, making predictions, capturing data, unload." ] @@ -1514,53 +1295,14 @@ "source": [ "### Run Predict\n", "\n", - "In this API, we pass the model name, input data file that will be directly fed into the neural network, input tensor name that was passed earlier during the compilation phase, along with it's size and shape." + "In this API, we pass the model name, input data file that will be directly fed into the neural network, input tensor name that was passed earlier during the compilation phase, along with its size and shape." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "#### Run prediction on darknet model" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "darknet_predict_out = ssm_client.send_command(\n", - " InstanceIds=[instance_id],\n", - " DocumentName=\"AWS-RunShellScript\",\n", - " OutputS3BucketName=bucket,\n", - " OutputS3KeyPrefix=folder,\n", - " Parameters={\n", - " \"commands\": [\n", - " \"cd /demo\",\n", - " \"./bin/sagemaker_edge_agent_client_example Predict demo-darknet darknet.bmp data 416 416 3\",\n", - " ]\n", - " },\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ssm_client.get_command_invocation(\n", - " CommandId=darknet_predict_out[\"Command\"][\"CommandId\"],\n", - " InstanceId=instance_id,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Run prediction on keras model" + "#### Run prediction on Keras model" ] }, { @@ -1604,38 +1346,6 @@ "Capture the inputs and outputs of an inference call to cloud or disk. The specific parameters were configured earlier in the config file. " ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "darknet_capture_out = ssm_client.send_command(\n", - " InstanceIds=[instance_id],\n", - " DocumentName=\"AWS-RunShellScript\",\n", - " OutputS3BucketName=bucket,\n", - " OutputS3KeyPrefix=folder,\n", - " Parameters={\n", - " \"commands\": [\n", - " \"cd /demo\",\n", - " \"./bin/sagemaker_edge_agent_client_example PredictAndCapture demo-darknet darknet.bmp data 416 416 3\",\n", - " ]\n", - " },\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ssm_client.get_command_invocation(\n", - " CommandId=darknet_capture_out[\"Command\"][\"CommandId\"],\n", - " InstanceId=instance_id,\n", - ")" - ] - }, { "cell_type": "code", "execution_count": null, @@ -1691,7 +1401,6 @@ " Parameters={\n", " \"commands\": [\n", " \"cd /demo\",\n", - " \"./bin/sagemaker_edge_agent_client_example UnloadModel demo-darknet\",\n", " \"./bin/sagemaker_edge_agent_client_example UnloadModel demo-keras\",\n", " ]\n", " },\n", @@ -1961,10 +1670,11 @@ } ], "metadata": { + "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "conda_tensorflow_p36", + "display_name": "Python 3", "language": "python", - "name": "conda_tensorflow_p36" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -1976,7 +1686,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/sagemaker_edge_manager/sagemaker_edge_example/sagemaker_edge_greengrass_example.ipynb b/sagemaker_edge_manager/sagemaker_edge_example/sagemaker_edge_greengrass_example.ipynb new file mode 100644 index 0000000000..aafd0cbd22 --- /dev/null +++ b/sagemaker_edge_manager/sagemaker_edge_example/sagemaker_edge_greengrass_example.ipynb @@ -0,0 +1,1241 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# SageMaker Edge Manager Example" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Introduction\n", + "\n", + "SageMaker Edge Manager is a service from Amazon SageMaker that lets you:\n", + "\n", + "+ prepare custom models for edge device hardware\n", + "+ include a runtime for running machine learning inference efficiently on edge devices\n", + "+ enable the device to send samples of data from each model securely to SageMaker for relabeling and retraining.\n", + "\n", + "There are two main components to this service:\n", + "+ SageMaker Edge Manager in the Cloud \n", + "+ SageMaker Edge Agent on the Edge device\n", + "\n", + "This notebook demonstrates the end-to-end workflow for getting a running SageMaker Edge on the edge device. This will involve the following steps:\n", + "\n", + "+ Compile the model using SageMaker Neo\n", + "+ Package the compiled model with SageMaker Edge Manager\n", + "+ Deploy with SageMaker Edge Manager Agent\n", + "+ Run inference with the model\n", + "+ Capture model's input and output data to S3\n", + "\n", + "**Note**:\n", + "Typically, the SageMaker Edge Agent is run on an Edge device. For the sake of this notebook, we will run the Agent on an EC2 instance. We show how to package the compiled model and then load it to the Agent on the Edge Device to make predictions with. Finally, we show how to capture model's input and output to S3 via the Agent.\n", + "\n", + " When you run this notebook, choose the kernel: `conda_tensorflow_p36` if you are using a notebook instance or `Python 3 (TensorFlow 1.15 Python 3.6 CPU Optimized)` if you are using SageMaker Studio." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "**Please note**: There are pricing implications to the use of this notebook. Please refer to [Edge Manager](https://aws.amazon.com/sagemaker/edge-manager/pricing) for more information." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Demo Setup" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We need an AWS account role with SageMaker access. This role is used to give SageMaker access to S3, launch an EC2 instance and create components and deployments in Greengrass." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "import boto3\n", + "import botocore\n", + "import json\n", + "\n", + "role = get_execution_role()\n", + "sess = sagemaker.Session()\n", + "region = boto3.Session().region_name" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "print(role)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Locate the above printed sagemaker role from [IAM console](https://console.aws.amazon.com/iam), find and attach the following policies to role:\n", + "\n", + "- AmazonEC2FullAccess \n", + "- AmazonEC2RoleforSSM \n", + "- AmazonSSMManagedInstanceCore \n", + "- AmazonSSMFullAccess \n", + "- AWSGreengrassFullAccess\n", + "- AWSIoTFullAccess \n", + "\n", + "You can find more information about how to attach policies to role [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).\n", + "\n", + "**If you try this example with a real device, only attach AWSIoTFullAccess to create certificates on AWS IoT.**" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We then need an S3 bucket that would be used for storing the model artifacts generated after compilation and packaged artifacts generated after edge packaging job." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# S3 bucket and folders for saving model artifacts.\n", + "# Feel free to specify different bucket/folders here if you wish.\n", + "bucket = sess.default_bucket()\n", + "folder = \"DEMO-Sagemaker-Edge\"\n", + "compilation_output_sub_folder = folder + \"/compilation-output\"\n", + "iot_folder = folder + \"/iot\"\n", + "\n", + "# S3 Location to save the model artifact after compilation\n", + "s3_compilation_output_location = \"s3://{}/{}\".format(bucket, compilation_output_sub_folder)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Finally, we upload the test image to S3 bucket. This image will be used in inference later." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "keras_img_path = sess.upload_data(\"keras.bmp\", bucket, iot_folder)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Launch EC2 Instance" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "As mentioned earlier, this EC2 instance is used in place of an Edge device for running the agent software." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ec2_client = boto3.client(\"ec2\", region_name=region)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Generate key pair for EC2 instance, save the key PEM file. We can use this key with SSH to connect to the instance. But in this notebook example, we will not use SSH, instead, we will use AWS Systems Manager to send commands to the instance." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "key_pairs = ec2_client.describe_key_pairs()\n", + "key_names = list(map(lambda x: x[\"KeyName\"], key_pairs[\"KeyPairs\"]))\n", + "\n", + "key_name = \"ec2-key-pair\"\n", + "\n", + "if key_name in key_names:\n", + " ec2_key_pair = ec2_client.delete_key_pair(\n", + " KeyName=key_name,\n", + " )" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ec2_key_pair = ec2_client.create_key_pair(\n", + " KeyName=key_name,\n", + ")\n", + "\n", + "key_pair = str(ec2_key_pair[\"KeyMaterial\"])\n", + "key_pair_file = open(\"ec2-key-pair.pem\", \"w\")\n", + "key_pair_file.write(key_pair)\n", + "key_pair_file.close()" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# specify your role name used by GGv2\n", + "iot_device_role_name = 'SageMakerTESRole'" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Create a role for the EC2 instance we are going to use. Read for detailed information about [IAM roles for Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html).\n", + "\n", + "Following steps here to [create an IAM role](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#create-iam-role). Note down the role name and role ARN, role name will be used when we launch the EC2 instance, and role ARN will be needed to create inline policy.\n", + "\n", + "After creation, make sure the following policies are attached to role:\n", + "\n", + "- AmazonS3FullAccess \n", + "- AmazonSSMManagedInstanceCore \n", + "- CloudWatchAgentAdminPolicy\n", + "\n", + "Add an inline policy for this EC2 instance role, choose `Add inline policy` button on the role summary page, choose JSON format and replace the content with below statement ([Minimal IAM policy for installer to provision resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/provision-minimal-iam-policy.html)). Replace account-id with your AWS account ID, and replace SageMakerTESRole with the name of the token exchange role that you specify in the cell above with iot_device_role_name.\n", + "\n", + "```\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Sid\": \"CreateTokenExchangeRole\",\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"iam:AttachRolePolicy\",\n", + " \"iam:CreatePolicy\",\n", + " \"iam:CreateRole\",\n", + " \"iam:GetPolicy\",\n", + " \"iam:GetRole\",\n", + " \"iam:PassRole\"\n", + " ],\n", + " \"Resource\": [\n", + " \"arn:aws:iam:::role/\",\n", + " \"arn:aws:iam:::policy/Access\",\n", + " \"arn:aws:iam::aws:policy/Access\"\n", + " ]\n", + " },\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"iot:AddThingToThingGroup\",\n", + " \"iot:AttachPolicy\",\n", + " \"iot:AttachThingPrincipal\",\n", + " \"iot:CreateKeysAndCertificate\",\n", + " \"iot:CreatePolicy\",\n", + " \"iot:CreateRoleAlias\",\n", + " \"iot:CreateThing\",\n", + " \"iot:CreateThingGroup\",\n", + " \"iot:DescribeEndpoint\",\n", + " \"iot:DescribeRoleAlias\",\n", + " \"iot:DescribeThingGroup\",\n", + " \"iot:GetPolicy\",\n", + " \"sts:GetCallerIdentity\"\n", + " ],\n", + " \"Resource\": \"*\"\n", + " },\n", + " {\n", + " \"Sid\": \"DeployDevTools\",\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"greengrass:CreateDeployment\",\n", + " \"iot:CancelJob\",\n", + " \"iot:CreateJob\",\n", + " \"iot:DeleteThingShadow\",\n", + " \"iot:DescribeJob\",\n", + " \"iot:DescribeThing\",\n", + " \"iot:DescribeThingGroup\",\n", + " \"iot:GetThingShadow\",\n", + " \"iot:UpdateJob\",\n", + " \"iot:UpdateThingShadow\"\n", + " ],\n", + " \"Resource\": \"*\"\n", + " }\n", + " ]\n", + "}\n", + "```\n", + "\n", + "\n", + "Locate the same sagemaker role used for this notebook in [Demo Setup](#Demo-Setup) in [IAM console](https://console.aws.amazon.com/iam), choose `Add inline policy` button on the role summary page, choose JSON format and replace the content with below statement:\n", + "\n", + "Before copy the following content, make sure you use the EC2 role ARN you just created in the `Resource` field for `iam:PassRole` action.\n", + "\n", + "```\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": \"iam:PassRole\",\n", + " \"Resource\": \"arn:aws:iam:::role/\"\n", + " }\n", + " ]\n", + "}\n", + "```" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Launch an EC2 C5 instance. In this example we will use aws deep learning AMI." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ami = ec2_client.describe_images(\n", + " Filters=[{\"Name\": \"name\", \"Values\": [\"Deep Learning AMI (Ubuntu 18.04) Version 36.0\"]}]\n", + ")[\"Images\"][0][\"ImageId\"]\n", + "ami" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ec2_profile_name = \"\" # replace with the name of the role created for EC2\n", + "\n", + "ec2_instance = ec2_client.run_instances(\n", + " ImageId=ami,\n", + " MinCount=1,\n", + " MaxCount=1,\n", + " InstanceType=\"c5.large\",\n", + " KeyName=key_name,\n", + " IamInstanceProfile={\"Name\": ec2_profile_name},\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "instance_id = ec2_instance[\"Instances\"][0][\"InstanceId\"] # will use for running inference later\n", + "print(instance_id)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Compile Model using SageMaker Neo\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "sagemaker_client = boto3.client(\"sagemaker\", region_name=region)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Download pretrained Keras model" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "import tensorflow as tf\n", + "\n", + "model = tf.keras.applications.MobileNetV2()\n", + "model.save(\"mobilenet_v2.h5\")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "import tarfile\n", + "\n", + "with tarfile.open(\"mobilenet_v2.tar.gz\", mode=\"w:gz\") as archive:\n", + " archive.add(\"mobilenet_v2.h5\")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "keras_model_path = sess.upload_data(\"mobilenet_v2.tar.gz\", bucket, folder)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "**Note**: When calling ``create_compilation_job()`` user is expected to provide all the correct input shapes required by the model for successful compilation. If we are using a different model, we need to specify the framework and data shape correctly." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "keras_model_data_shape = '{\"input_1\":[1,3,224,224]}'\n", + "keras_model_framework = \"keras\"\n", + "target_device = \"ml_c5\"" + ], + "outputs": [], + "metadata": { + "scrolled": true + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "import time\n", + "\n", + "keras_compilation_job_name = \"Sagemaker-Edge-\" + str(time.time()).split(\".\")[0]\n", + "print(\"Compilation job for %s started\" % keras_compilation_job_name)\n", + "\n", + "response = sagemaker_client.create_compilation_job(\n", + " CompilationJobName=keras_compilation_job_name,\n", + " RoleArn=role,\n", + " InputConfig={\n", + " \"S3Uri\": keras_model_path,\n", + " \"DataInputConfig\": keras_model_data_shape,\n", + " \"Framework\": keras_model_framework.upper(),\n", + " },\n", + " OutputConfig={\n", + " \"S3OutputLocation\": s3_compilation_output_location,\n", + " \"TargetDevice\": target_device,\n", + " },\n", + " StoppingCondition={\"MaxRuntimeInSeconds\": 900},\n", + ")\n", + "\n", + "print(response)\n", + "\n", + "# Poll every 30 sec\n", + "while True:\n", + " response = sagemaker_client.describe_compilation_job(\n", + " CompilationJobName=keras_compilation_job_name\n", + " )\n", + " if response[\"CompilationJobStatus\"] == \"COMPLETED\":\n", + " break\n", + " elif response[\"CompilationJobStatus\"] == \"FAILED\":\n", + " raise RuntimeError(\"Compilation failed\")\n", + " print(\"Compiling ...\")\n", + " time.sleep(30)\n", + "print(\"Done!\")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Package Keras Model" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "keras_packaged_model_name = \"keras-model\"\n", + "keras_model_version = \"1.0.1\"\n", + "keras_component_name = \"com.model.keras\"\n", + "keras_model_package = \"{}-{}.tar.gz\".format(keras_packaged_model_name, keras_model_version)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "keras_packaging_job_name = (\n", + " keras_compilation_job_name + \"-packaging-\" + str(time.time()).split(\".\")[0]\n", + ")\n", + "response = sagemaker_client.create_edge_packaging_job(\n", + " RoleArn=role,\n", + " OutputConfig={\n", + " \"PresetDeploymentType\": \"GreengrassV2Component\",\n", + " \"PresetDeploymentConfig\": json.dumps(\n", + " {\"ComponentName\": keras_component_name, \"ComponentVersion\": keras_model_version}\n", + " ),\n", + " \"S3OutputLocation\": s3_compilation_output_location,\n", + " },\n", + " ModelName=keras_packaged_model_name,\n", + " ModelVersion=keras_model_version,\n", + " EdgePackagingJobName=keras_packaging_job_name,\n", + " CompilationJobName=keras_compilation_job_name,\n", + ")\n", + "\n", + "print(response)\n", + "\n", + "# Poll every 30 sec\n", + "while True:\n", + " job_status = sagemaker_client.describe_edge_packaging_job(\n", + " EdgePackagingJobName=keras_packaging_job_name\n", + " )\n", + " if job_status[\"EdgePackagingJobStatus\"] == \"COMPLETED\":\n", + " break\n", + " elif job_status[\"EdgePackagingJobStatus\"] == \"FAILED\":\n", + " raise RuntimeError(\"Edge Packaging failed\")\n", + " print(\"Packaging ...\")\n", + " time.sleep(30)\n", + "\n", + "if job_status[\"PresetDeploymentOutput\"][\"Status\"] != \"COMPLETED\":\n", + " print(\"!!Component packaging failed!!\")\n", + " print(job_status[\"PresetDeploymentOutput\"][\"StatusMessage\"])\n", + "else:\n", + " print(\"Done!\")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "

If you are getting a Component packaging failed error, it is likely that you have already a component named com.model.keras with the same version in your account. To fix, you can either delete the component from your account or increment the version of the component for the packaging job (see keras_model_version variable above)

" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "keras_model_data = job_status[\"ModelArtifact\"]" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "### Install Greengrass\n", + "\n", + "SageMaker Edge Manager can use AWS IoT Greengrass to deploy the agent, the model and the inference application to the edge device.\n", + "\n", + "AWS IoT Greengrass provides all the necessary features to manage applications on remote devices in a secure and scalable way. To learn more about Greengrass, head to the [What is AWS IoT Greengrass?](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html). \n", + "\n", + "The SageMaker Edge Manager agent leverages the AWS credentials provided by the [Token exchange service](https://docs.aws.amazon.com/greengrass/v2/developerguide/token-exchange-service-component.html) component to securely communicate with the SageMaker Edge Manager backend.\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ssm_client = boto3.client(\"ssm\", region_name=region)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "**Note**: If you are using a real device, connect to the device via SSH, ensure that you have both Java v8 or above and the Unzip command and then run the following commands (replace `` with the correct value). To run this command on the device you also need to provide IAM credentials with at least the permissions listed in [Minimal IAM policy for installer to provision resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/provision-minimal-iam-policy.html).\n", + "\n", + "```bash\n", + "curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip \\\n", + " && unzip greengrass-nucleus-latest.zip -d GreengrassCore,\n", + "sudo -E java -Droot=\"/greengrass/v2\" -Dlog.store=FILE -jar ./GreengrassCore/lib/Greengrass.jar \\\n", + " --thing-name GreengrassSMEdgeManagerDevice -trn SageMakerTESRole -tra SageMakerTESRoleAlias \\ \n", + " --thing-group-name GreengrassSMEdgeManagerGroup \\ \n", + " --component-default-user ggc_user:ggc_group --provision true --setup-system-service true --deploy-dev-tools true \\\n", + " --aws-region \n", + "```\n", + "\n", + "Otherwise, run the following command to install Greengrass on the EC2 instance. You can find further information about the command to run and their effect in [Install AWS IoT Greengrass Core software with automatic resource provisioning](https://docs.aws.amazon.com/greengrass/v2/developerguide/quick-installation.html)." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "response = ssm_client.send_command(\n", + " InstanceIds=[instance_id],\n", + " DocumentName=\"AWS-RunShellScript\",\n", + " OutputS3BucketName=bucket,\n", + " OutputS3KeyPrefix=folder,\n", + " Parameters={\n", + " \"commands\": [\n", + " \"#!/bin/bash\",\n", + " \"sudo apt update && apt install python3-venv -y\",\n", + " \"curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip && unzip greengrass-nucleus-latest.zip -d GreengrassCore\",\n", + " f'sudo -E java -Droot=\"/greengrass/v2\" -Dlog.store=FILE -jar ./GreengrassCore/lib/Greengrass.jar --aws-region {region} --thing-name GreengrassSMEdgeManagerDevice -trn {iot_device_role_name} -tra SageMakerTESRoleAlias --thing-group-name GreengrassSMEdgeManagerGroup --component-default-user ggc_user:ggc_group --provision true --setup-system-service true --deploy-dev-tools true',\n", + " ]\n", + " },\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ssm_client.get_command_invocation(\n", + " CommandId=response[\"Command\"][\"CommandId\"],\n", + " InstanceId=instance_id,\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "print(iot_device_role_name)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Create Device Fleet" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "#### Modify the IAM role for device fleet" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Configure an IAM role in your AWS account that will be assumed by the credentials' provider on behalf of the devices in your device fleet. \n", + "\n", + "\n", + "Go to [IAM console](https://console.aws.amazon.com/iam/home?#/roles/SageMakerTESRole), and look for the role create role for IoT, which is printed in the cell above \n", + "\n", + "1. Attach the following policies:\n", + "\n", + " - AmazonSageMakerEdgeDeviceFleetPolicy\n", + "\n", + "\n", + "2. Add the following permissions to the `SageMakerTESRoleAccess`:\n", + "\n", + "```json\n", + "{\n", + " \"Effect\": \"Allow\",\n", + " \"Action\": [\n", + " \"s3:GetObject\"\n", + " ],\n", + " \"Resource\": [\n", + " \"arn:aws:s3:::*SageMaker*\",\n", + " \"arn:aws:s3:::*Sagemaker*\",\n", + " \"arn:aws:s3:::*sagemaker*\"\n", + " ]\n", + "}\n", + "```\n", + "\n", + "3. Edit then the [trust relationship](https://console.aws.amazon.com/iam/home?#/roles/SageMakerTESRole?section=trust) as follow:\n", + "```\n", + "{\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Principal\": {\"Service\": \"credentials.iot.amazonaws.com\"},\n", + " \"Action\": \"sts:AssumeRole\"\n", + " },\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Principal\": {\"Service\": \"sagemaker.amazonaws.com\"},\n", + " \"Action\": \"sts:AssumeRole\"\n", + " }\n", + " ]\n", + "}\n", + "```\n", + "\n", + "Note down the role ARN, it will be later used for creating the device fleet." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "role_arn = \"\"" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "device_fleet_name = \"demo-device-fleet\" + str(time.time()).split(\".\")[0]\n", + "\n", + "sagemaker_client.create_device_fleet(\n", + " DeviceFleetName=device_fleet_name,\n", + " RoleArn=role_arn,\n", + " OutputConfig={\"S3OutputLocation\": s3_compilation_output_location},\n", + ")\n", + "\n", + "print(device_fleet_name)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "#### Register device to the fleet" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "device_name = \"GreengrassSMEdgeManagerDevice\"\n", + "\n", + "sagemaker_client.register_devices(\n", + " DeviceFleetName=device_fleet_name,\n", + " Devices=[\n", + " {\n", + " \"DeviceName\": device_name,\n", + " \"IotThingName\": device_name,\n", + " \"Description\": \"this is a sample virtual device\",\n", + " }\n", + " ],\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Inference on Edge" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "In this example, we will use [AWS IoT Greengrass](https://docs.aws.amazon.com/) to remotely deploy the agent, the model and the inference application.\n", + "\n", + "The [SageMaker Edge Manager component](https://docs.aws.amazon.com/greengrass/v2/developerguide/sagemaker-edge-manager-component.html) is already provided and will be used to deploy and run the agent on the device.\n", + "\n", + "The model component has been created for you by the packaging jobs you execute previously and in [your account](https://console.aws.amazon.com/iot/home?#/greengrass/v2/components) you should now have 1 component called `com.model.keras`. \n", + "\n", + "In order to be able to use the model, we also need an application component to load the model and invoke it. In the next section we are going to see how to create such component." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Create the inference application component" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We will use a Python application to load the model and perform the inference. The application is provided in the [inference.py](./inference.py) file. In addition to this file, you will also need to generate the Protobuf libraries that can be used with the gRPC API of the agent.\n", + "\n", + "First list the available releases from the S3 bucket. It does not matter which OS we are going to use since we only need the protobuf definitions." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "!aws s3 ls s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/ | sort -r" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Select the archive corresponding to the first item on the list:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "!aws s3 cp \"s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/1.20210512.96da6cc/1.20210512.96da6cc.tgz\" sm_agent.tgz" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Now we extract the protobuf definition:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "!tar tf sm_agent.tgz" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "!tar xf sm_agent.tgz ./docs/api/agent.proto" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Run the following code to generate the Python libraries to use the API:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "%%bash\n", + "# If you are running this on a personal computer you might want to create a Virtual Environment first. Uncomment the following lines \n", + "# python3 -m venv venv\n", + "# . venv/bin/activate\n", + "pip install pip --upgrade\n", + "pip install wheel\n", + "pip install grpcio==1.38.1\n", + "pip install grpcio-tools==1.38.1\n", + "python3 -m grpc_tools.protoc --proto_path=./docs/api --python_out=. --grpc_python_out=. agent.proto" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We also need to download the JSON file containing the ImageNet classes that will be used to print the predictions" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "!curl \"https://storage.googleapis.com/download.tensorflow.org/data/imagenet_class_index.json\" -O" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Create the AWS IoT Greengrass component\n", + "\n", + "Next, upload the `inference.py` and the protobuf libraries to an S3 bucket so that they can be referenced by the component recipe and from where they will be downloaded by Greengrass on the device. We use the SageMaker bucket for this." + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "bucket" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "%%bash\n", + "# Replace with the bucket name printed above\n", + "export BUCKET=''\n", + "aws s3 cp inference.py s3://$BUCKET/com.sagemaker.edgePythonExample/1.0.0/inference.py\n", + "aws s3 cp agent_pb2.py s3://$BUCKET/com.sagemaker.edgePythonExample/1.0.0/agent_pb2.py\n", + "aws s3 cp agent_pb2_grpc.py s3://$BUCKET/com.sagemaker.edgePythonExample/1.0.0/agent_pb2_grpc.py\n", + "aws s3 cp keras.bmp s3://$BUCKET/com.sagemaker.edgePythonExample/1.0.0/keras.bmp\n", + "aws s3 cp imagenet_class_index.json s3://$BUCKET/com.sagemaker.edgePythonExample/1.0.0/imagenet_class_index.json" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "As a final step, create the component. You can use the [AWS Greengrass Console](https://console.aws.amazon.com/iot/home?#/greengrass/v2/components/create) to create a new component. Go to **Component>Create component**, select `Enter recipe as YAML` and copy and paste the following YAML. Before choosing `Create component`, make sure you have replaced the `_BUCKET_` placeholder with the name of the bucket to which you have uploaded the artifacts.\n", + "\n", + "```yaml\n", + "---\n", + "RecipeFormatVersion: 2020-01-25\n", + "ComponentName: com.sagemaker.edgePythonExample\n", + "ComponentVersion: 1.0.0\n", + "ComponentDescription: Sagemaker Edge Manager Python example\n", + "ComponentPublisher: Amazon Web Services, Inc.\n", + "ComponentDependencies:\n", + " aws.greengrass.SageMakerEdgeManager:\n", + " VersionRequirement: '>=1.0.0'\n", + " DependencyType: HARD\n", + " com.model.keras:\n", + " VersionRequirement: '~1.0.0'\n", + " DependencyType: HARD\n", + "ComponentConfiguration:\n", + " DefaultConfiguration:\n", + " Demo: \"true\"\n", + " MLModel: keras\n", + " ImagePath: /absolute/path\n", + " CaptureData: \"true\"\n", + "Manifests:\n", + " - Platform:\n", + " os: linux\n", + " architecture: \"/amd64|x86/\"\n", + " Lifecycle:\n", + " Install: |-\n", + " python3 -m venv venv\n", + " . venv/bin/activate\n", + " pip install pip --upgrade\n", + " pip install wheel \n", + " pip3 install grpcio==1.38.1\n", + " pip3 install grpcio-tools==1.38.1\n", + " pip3 install protobuf\n", + " pip3 install Pillow\n", + " pip3 install numpy\n", + " Run:\n", + " Setenv:\n", + " DEMO: \"{configuration:/Demo}\"\n", + " ML_MODEL: \"{configuration:/MLModel}\"\n", + " CAPTURE_DATA: \"{configuration:/CaptureData}\"\n", + " Script: |- \n", + " export MODEL_PATH=\"{com.model.keras:work:path}\"\n", + " export IMAGE_PATH=\"{artifacts:path}/keras.bmp\"\n", + " export IMAGENET_CLASS_INDEX_PATH=\"{artifacts:path}/imagenet_class_index.json\"\n", + " if [ $DEMO != 'true' ]; then\n", + " export IMAGE_PATH=\"{configuration:/ImagePath}\"\n", + " fi\n", + " . venv/bin/activate \n", + " python3 -u {artifacts:path}/inference.py \n", + " Artifacts:\n", + " - URI: s3://_BUCKET_/com.sagemaker.edgePythonExample/1.0.0/inference.py\n", + " - URI: s3://_BUCKET_/com.sagemaker.edgePythonExample/1.0.0/agent_pb2.py\n", + " - URI: s3://_BUCKET_/com.sagemaker.edgePythonExample/1.0.0/agent_pb2_grpc.py\n", + " - URI: s3://_BUCKET_/com.sagemaker.edgePythonExample/1.0.0/keras.bmp \n", + " - URI: s3://_BUCKET_/com.sagemaker.edgePythonExample/1.0.0/imagenet_class_index.json\n", + "```\n", + "\n", + "> Note: instead of uploading each singe file and specify them as artifacts in the component recipe, you can also create a ZIP archive and modify the recipe as follow:\n", + "\n", + "```yaml\n", + " Lifecycle:\n", + " Run:\n", + " ...\n", + " Script:\n", + " ...\n", + " python3 -u {artifacts:decompressedPath}/app/inference.py\n", + " Artifacts:\n", + " - URI: s3://_BUCKET_/com.sagemaker.edgePythonExample/1.0.0/app.zip\n", + " Archive: ZIP\n", + "```" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# Deploy the application\n", + "\n", + "Once the application component has been created, it can be deployed to the device. \n", + "\n", + "1. In the [AWS Console](https://console.aws.amazon.com/iot/home#/greengrass/v2/components/private) select the `com.sagemaker.edgePythonExample` component, and choose **Deploy**.\n", + "2. Select the deployment named `Deployment for GreengrassSMEdgeManagerGroup` and choose `Next`\n", + "3. Toggle the selector on the `Public components` pane, search for `SageMakerEdgeManager`, and selct it\n", + "4. Choose **Next**\n", + "5. Select the `aws.greengrass.SageMakerEdgeManager` component and choose **Configure component**\n", + "6. Replace the **Configuration to merge** content with the following json. Don't forget to change the placeholder to the actual values.\n", + "```json\n", + "{\n", + "\t\"DeviceFleetName\": ,\n", + "\t\"BucketName\": \n", + "}\n", + "```\n", + "7. Choose **Confirm**\n", + "3. Choose **Next** until you reach the last screen. \n", + "4. Choose **Deploy**.\n", + "\n", + "You can check the status of the deployment by clicking on the device name `GreengrassSMEdgeManagerDevice` in the Target core devices pane and then selecting Deployments tab.\n", + "\n", + "After few seconds the components will have been deployed to the EC2 instance and you should be able to see the results of the inference in the Greengrass logs by executing:\n", + "```bash\n", + "sudo cat /greengrass/v2/logs/com.sagemaker.edgePythonExample.log\n", + "```\n", + "\n", + "If you are using another device, it might take longer depending on the network speed.\n", + "\n", + "As you noticed there is no need to install the agent separately or download the model: these tasks are performed by Greengrass based on the fact that the application recipe defined the dependencies on SageMagerEdge manager component and the model component created by the packaging job.\n", + "\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "cat_log_out = ssm_client.send_command(\n", + " InstanceIds=[instance_id],\n", + " DocumentName=\"AWS-RunShellScript\",\n", + " OutputS3BucketName=bucket,\n", + " OutputS3KeyPrefix=folder,\n", + " Parameters={\n", + " \"commands\": [\n", + " \"sudo tail -30 /greengrass/v2/logs/com.sagemaker.edgePythonExample.log\",\n", + " ]\n", + " },\n", + ")" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "output = ssm_client.get_command_invocation(\n", + " CommandId=cat_log_out[\"Command\"][\"CommandId\"],\n", + " InstanceId=instance_id,\n", + ")[\"StandardOutputContent\"]\n", + "print(output)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Customizing the application\n", + "\n", + "The application component is configured to run in demo mode by default, meaning it will use a pre-loaded image to perform the prediction. In case you want to provide your own image, you can change the component configuration during the deployment passing the following values:\n", + "```json\n", + "{\n", + " \"Demo\": \"false\",\n", + " \"ImagePath\": \"/absolute/host/path/to/the/image.bmp\"\n", + "}\n", + "```\n", + "\n", + "Note that the image must be in BMP format and 224x224 pixels. If you want to provide images in other format and sizes you need to preprocess the image to obtain the above format and encoding.\n", + "\n", + "The code will:\n", + "\n", + "1. Load the model in SageMager Edge Manager agent\n", + "2. List the models\n", + "3. Perform the prediction\n", + "4. Unload the model\n" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Clean Up" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Undeploy the application" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ssm_client.cancel_command(CommandId=agent_out[\"Command\"][\"CommandId\"], InstanceIds=[instance_id])" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Stop the EC2 instance" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "ec2_client.stop_instances(InstanceIds=[instance_id])" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Detach and delete policy" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "iot_client.detach_policy(policyName=policy_name, target=iot_cert[\"certificateArn\"])\n", + "\n", + "iot_client.delete_policy(policyName=policy_name)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Deregister device and delete device fleet" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "sagemaker_client.deregister_devices(DeviceFleetName=device_fleet_name, DeviceNames=[device_name])\n", + "\n", + "sagemaker_client.delete_device_fleet(DeviceFleetName=device_fleet_name)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Appendix" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### (Optional) Use LogManager component to upload logs to CloudWatch" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "If you want to be able to access the logs generated by the component fom the cloud, you can add `aws.greengrass.LogManager` component to the deployment. \n", + "\n", + "1. Open the AWS Console and navigate to IoT Core > Greengrass > Components\n", + "2. Choose the `aws.greengrass.LogManager` component in the Public components tab \n", + "3. Choose `Deploy`\n", + "4. Select **Add to existing deployment** and select the same deployment you used earlier\n", + "5. Choose **Next**\n", + "6. Choose **Next**\n", + "7. Choose **Next**\n", + "7. On the **Component configuration** screen select the `aws.greengrass.LogManager` component and choose **Configure component**\n", + "8. In the **Configuration to merge** pane enter the following\n", + "```json\n", + "{\n", + " \"logsUploaderConfiguration\": {\n", + " \"componentLogsConfiguration\": [\n", + " {\n", + " \"componentName\": \"com.sagemaker.edgePythonExample\"\n", + " }\n", + " ]\n", + " }\n", + "}\n", + "```\n", + "9. Choose **Confirm**\n", + "10. Choose **Next** until the last page and then **Deploy**\n", + "\n", + "Once the deployment is completed on the device, you will find the logs uploaded to the Amazon CloudWatch console." + ], + "metadata": {} + } + ], + "metadata": { + "instance_type": "ml.t3.medium", + "interpreter": { + "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" + }, + "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.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/sagemaker_neo_compilation_jobs/README.md b/sagemaker_neo_compilation_jobs/README.md index 94cbc9f13a..2db0ad01bc 100644 --- a/sagemaker_neo_compilation_jobs/README.md +++ b/sagemaker_neo_compilation_jobs/README.md @@ -5,7 +5,6 @@ These examples focus on the Amazon SageMaker Neo which allows you to compile models and host in pre-built containers. -- [GluonCV SSD Mobilenet](gluoncv_ssd_mobilenet) - [Image Classification](imageclassification_caltech) - [MNIST with MXNet](mxnet_mnist) - [Deploying pre-trained PyTorch vision models](pytorch_torchvision) diff --git a/sagemaker_neo_compilation_jobs/deploy_pytorch_model_on_Inf1_instance/pytorch_torchvision_neo_on_Inf1.ipynb b/sagemaker_neo_compilation_jobs/deploy_pytorch_model_on_Inf1_instance/pytorch_torchvision_neo_on_Inf1.ipynb index 9fbeafb500..04027c019e 100644 --- a/sagemaker_neo_compilation_jobs/deploy_pytorch_model_on_Inf1_instance/pytorch_torchvision_neo_on_Inf1.ipynb +++ b/sagemaker_neo_compilation_jobs/deploy_pytorch_model_on_Inf1_instance/pytorch_torchvision_neo_on_Inf1.ipynb @@ -160,7 +160,7 @@ "source": [ "## Deploy model on Inf1 instance for real-time inferences\n", "\n", - "After creating the PyTorch model, we compile the model using Amazon SageMaker Neo to optize performance for our desired deployment target. To compile our model for deploying on Inf1 instances, we are using the ``compile()`` method and select ``'ml_inf1'`` as our deployment target. The compiled model will then be deployed on an endpoint using Inf1 instances in Amazon SageMaker. \n", + "After creating the PyTorch model, we compile the model using Amazon SageMaker Neo to optimize performance for our desired deployment target. To compile our model for deploying on Inf1 instances, we are using the ``compile()`` method and select ``'ml_inf1'`` as our deployment target. The compiled model will then be deployed on an endpoint using Inf1 instances in Amazon SageMaker.\n", "\n", "## Compile the model \n", "\n", @@ -276,7 +276,7 @@ "metadata": {}, "source": [ "## Delete the Endpoint\n", - "Having an endpoint running will incur some costs. Therefore as a clean-up job, we should delete the endpoint." + "Having an endpoint running will incur some costs. Therefore, as a clean-up job, we should delete the endpoint." ] }, { @@ -339,7 +339,7 @@ "source": [ "In order to host model compiled for 2 cores, we set environment variables NEURONCORE_GROUP_SIZES and SAGEMAKER_MODEL_SERVER_WORKERS.\n", "### More Information on Environment Variables for Hosting\n", - "NEURONCORE_GROUP_SIZES - If the model is compiled for n inferentia cores , set NEURONCORE_GROUP_SIZES=n . For more information on NEURONCORE_GROUP_SIZES, refer to https://awsdocs-neuron.readthedocs-hosted.com/en/latest/neuron-guide/neuron-frameworks/tensorflow-neuron/tutorials/tutorial-tensorflow-NeuronCore-Group.html\n", + "NEURONCORE_GROUP_SIZES - If the model is compiled for n inferentia cores, set NEURONCORE_GROUP_SIZES=n. For more information on NEURONCORE_GROUP_SIZES, refer to https://awsdocs-neuron.readthedocs-hosted.com/en/latest/neuron-guide/neuron-frameworks/tensorflow-neuron/tutorials/tutorial-tensorflow-NeuronCore-Group.html\n", "\n", "SAGEMAKER_MODEL_SERVER_WORKERS - Number of workers required to utilize all inferentia cores. For example, on inf1.2xlarge or inf1.xlarge, if the model is compiled for one core,\n", "we need 4 workers to utilize all inferentia cores which will load the compiled model in different processes. If the model is compiled for 2 cores, we only need 2 workers to utilize \n", @@ -386,7 +386,7 @@ " framework_version=\"1.5.1\",\n", " role=role,\n", " job_name=compilation_job_name,\n", - " compiler_options={\"num-neuroncores\": 2},\n", + " compiler_options='\"--verbose 1 --neuroncore-pipeline-cores 2\"',\n", ")" ] }, @@ -472,7 +472,7 @@ "metadata": {}, "source": [ "## Delete the Endpoint\n", - "Having an endpoint running will incur some costs. Therefore as a clean-up job, we should delete the endpoint." + "Having an endpoint running will incur some costs. Therefore, as a clean-up job, we should delete the endpoint." ] }, { diff --git a/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/gluoncv_ssd_mobilenet_neo.ipynb b/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/gluoncv_ssd_mobilenet_neo.ipynb new file mode 100644 index 0000000000..c850a71528 --- /dev/null +++ b/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/gluoncv_ssd_mobilenet_neo.ipynb @@ -0,0 +1,443 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Deploy pre-trained GluonCV SSD Mobilenet model with SageMaker Neo\n", + "\n", + "1. [Introduction](#Introduction)\n", + "2. [Setup](#Setup)\n", + " 1. [Import SSD Mobilenet model from MXNet GluonCV](#Import-SSD-Mobilenet-model-from-MXNet-GluonCV)\n", + " 2. [Upload model to S3](#Upload-model-to-S3)\n", + " 3. [Use sagemaker MXNetModel to load pretrained MXNet model](#Use-sagemaker-MXNetModel-to-load-pretrained-MXNet-model)\n", + "3. [Compile the pre-trained model using SageMaker Neo](#Compile-the-pre-trained-model-using-SageMaker-Neo)\n", + "4. [Deploy-the-compiled-model-and-request-Inferences](#Deploy-the-compiled-model-and-request-Inferences)\n", + "5. [Delete the Endpoint](#Delete-the-Endpoint)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Introduction\n", + "\n", + "This example demonstrates how to load a pre-trained MXNet GluonCV SSD model, optimize the trained model using SageMaker Neo, and host the model." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup\n", + "\n", + "To compile and deploy the ssd mobilenet model on Amazon SageMaker, we need to setup and authenticate the use of AWS services.\n", + "\n", + "To start, we need to upgrade the [SageMaker SDK for Python](https://sagemaker.readthedocs.io/en/stable/v2.html) to v2.33.0 or greater and latest MXNet GluonCV and restart the kernel." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!~/anaconda3/envs/mxnet_p36/bin/pip install --upgrade sagemaker>=2.33.0 gluoncv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we need an AWS account role with SageMaker access. This role is used to give SageMaker access to your data in S3. We also create a session." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "\n", + "role = get_execution_role()\n", + "sess = sagemaker.Session()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then need an S3 bucket that would be used for storing the model artifacts generated after training and compilation, training data and custom code. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# S3 bucket and folders for saving code and model artifacts.\n", + "# Feel free to specify different bucket/folders here if you wish.\n", + "bucket = sess.default_bucket()\n", + "folder = \"DEMO-ObjectDetection-SSD-MobileNet\"\n", + "pretrained_model_sub_folder = folder + \"/pretrained-model\"\n", + "compilation_output_sub_folder = folder + \"/compilation-output\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To easily visualize the detection outputs we also define the following function. The function visualizes the high-confidence predictions with bounding box by filtering out low-confidence detections." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "def visualize_detection(img_file, dets, classes=[], thresh=0.6):\n", + " \"\"\"\n", + " visualize detections in one image\n", + " Parameters:\n", + " ----------\n", + " img_file : numpy.array\n", + " image, in bgr format\n", + " dets : numpy.array\n", + " ssd detections, numpy.array([[id, score, x1, y1, x2, y2]...])\n", + " each row is one object\n", + " classes : tuple or list of str\n", + " class names\n", + " thresh : float\n", + " score threshold\n", + " \"\"\"\n", + " import random\n", + " import matplotlib.pyplot as plt\n", + " import matplotlib.image as mpimg\n", + " from matplotlib.patches import Rectangle\n", + "\n", + " img = mpimg.imread(img_file)\n", + " plt.imshow(img)\n", + " height = img.shape[0]\n", + " width = img.shape[1]\n", + " colors = dict()\n", + " klasses = dets[0][0]\n", + " scores = dets[1][0]\n", + " bbox = dets[2][0]\n", + " for i in range(len(classes)):\n", + " klass = klasses[i][0]\n", + " score = scores[i][0]\n", + " x0, y0, x1, y1 = bbox[i]\n", + " if score < thresh:\n", + " continue\n", + " cls_id = int(klass)\n", + " if cls_id not in colors:\n", + " colors[cls_id] = (random.random(), random.random(), random.random())\n", + " xmin = int(x0 * width / 512)\n", + " ymin = int(y0 * height / 512)\n", + " xmax = int(x1 * width / 512)\n", + " ymax = int(y1 * height / 512)\n", + " rect = Rectangle(\n", + " (xmin, ymin),\n", + " xmax - xmin,\n", + " ymax - ymin,\n", + " fill=False,\n", + " edgecolor=colors[cls_id],\n", + " linewidth=3.5,\n", + " )\n", + " plt.gca().add_patch(rect)\n", + " class_name = str(cls_id)\n", + " if classes and len(classes) > cls_id:\n", + " class_name = classes[cls_id]\n", + " plt.gca().text(\n", + " xmin,\n", + " ymin - 2,\n", + " \"{:s} {:.3f}\".format(class_name, score),\n", + " bbox=dict(facecolor=colors[cls_id], alpha=0.5),\n", + " fontsize=12,\n", + " color=\"white\",\n", + " )\n", + " plt.tight_layout(rect=[0, 0, 2, 2])\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initializing object categories\n", + "object_categories = [\n", + " \"aeroplane\",\n", + " \"bicycle\",\n", + " \"bird\",\n", + " \"boat\",\n", + " \"bottle\",\n", + " \"bus\",\n", + " \"car\",\n", + " \"cat\",\n", + " \"chair\",\n", + " \"cow\",\n", + " \"diningtable\",\n", + " \"dog\",\n", + " \"horse\",\n", + " \"motorbike\",\n", + " \"person\",\n", + " \"pottedplant\",\n", + " \"sheep\",\n", + " \"sofa\",\n", + " \"train\",\n", + " \"tvmonitor\",\n", + "]\n", + "\n", + "# Setting a threshold 0.20 will only plot detection results that have a confidence score greater than 0.20\n", + "threshold = 0.20" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we load the test image into the memory. The test image used in this notebook is from [PEXELS](https://www.pexels.com/) which remains unseen until the time of prediction." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import PIL.Image\n", + "import numpy as np\n", + "\n", + "test_file = \"test.jpg\"\n", + "test_image = PIL.Image.open(test_file)\n", + "test_image = np.asarray(test_image.resize((512, 512)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Import SSD Mobilenet model from MXNet GluonCV\n", + "\n", + "This example uses pre-trained MXNet GluonCV SSD model initially published in:\n", + "> Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg. SSD: Single Shot MultiBox Detector. ECCV 2016." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import mxnet as mx\n", + "import gluoncv as gcv\n", + "import tarfile\n", + "\n", + "net = gcv.model_zoo.get_model(\"ssd_512_mobilenet1.0_voc\", pretrained=True)\n", + "net.hybridize()\n", + "net(mx.nd.ones((1, 3, 512, 512)))\n", + "net.export(\"model\")\n", + "tar = tarfile.open(\"ssd_512_mobilenet1.0_voc.tar.gz\", \"w:gz\")\n", + "\n", + "for name in [\"model-0000.params\", \"model-symbol.json\"]:\n", + " tar.add(name)\n", + "tar.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Upload model to S3\n", + "Upload the pre-trained model to the S3 bucket." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pretrained_model_path = sess.upload_data(\n", + " path=\"ssd_512_mobilenet1.0_voc.tar.gz\", bucket=bucket, key_prefix=pretrained_model_sub_folder\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to setup training and compilation output locations in S3, where the respective model artifacts will be dumped. We also setup the s3 location for training data and custom code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# S3 Location to save the model artifact after training\n", + "s3_pretrained_model_location = \"s3://{}/{}\".format(bucket, pretrained_model_sub_folder)\n", + "\n", + "# S3 Location to save the model artifact after compilation\n", + "s3_compilation_output_location = \"s3://{}/{}\".format(bucket, compilation_output_sub_folder)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Use sagemaker MXNetModel to load pretrained MXNet model\n", + "When loading the model, user is expected to provide the `entry_point` script required by the model. We set `MMS_DEFAULT_RESPONSE_TIMEOUT` environment variable to `500` for MXNet model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% H\n" + } + }, + "outputs": [], + "source": [ + "from sagemaker.mxnet.model import MXNetModel\n", + "from sagemaker.mxnet import MXNetPredictor\n", + "\n", + "pre_trained_model = MXNetModel(\n", + " model_data=pretrained_model_path,\n", + " predictor_cls=MXNetPredictor,\n", + " framework_version=\"1.8\",\n", + " role=role,\n", + " sagemaker_session=sess,\n", + " entry_point=\"ssd_entry_point.py\",\n", + " py_version=\"py3\",\n", + " env={\"MMS_DEFAULT_RESPONSE_TIMEOUT\": \"500\"},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compile the pre-trained model using SageMaker Neo\n", + "\n", + "After loading the pretrained model we can use SageMaker Neo's ``compile()`` API to compile the pretrained model. When calling ``compile()``, the user is expected to provide all the correct input shapes required by the model for successful compilation. We also specify the target instance family, the name of our IAM execution role, S3 bucket to which the compiled model would be stored.\n", + "\n", + "For this example, we will choose `ml_p3` as the target instance family while compiling the trained model. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "import time\n", + "\n", + "compiled_model = pre_trained_model.compile(\n", + " job_name=\"ssd-512-mobilenet-{}\".format(time.strftime(\"%Y%m%d%I%M%S\")),\n", + " target_instance_family=\"ml_p3\",\n", + " input_shape={\"data\": [1, 3, 512, 512]},\n", + " role=role,\n", + " framework=\"mxnet\",\n", + " framework_version=\"1.8\",\n", + " output_path=s3_compilation_output_location,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy the compiled model and request Inferences\n", + "\n", + "We have to deploy the compiled model within the instance family for which the trained model was compiled. Since we have compiled for `ml_p3` we can deploy to any `ml.p3` instance type. For this example we will choose `ml.p3.2xlarge`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "neo_object_detector = compiled_model.deploy(initial_instance_count=1, instance_type=\"ml.p3.2xlarge\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "response = neo_object_detector.predict(test_image)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Visualize the detections.\n", + "visualize_detection(test_file, response, object_categories, threshold)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Delete the Endpoint\n", + "Having an endpoint running will incur some costs. Therefore, as an optional clean-up job, you can delete it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Endpoint name: \" + neo_object_detector.endpoint_name)\n", + "neo_object_detector.delete_endpoint()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_mxnet_p36", + "language": "python", + "name": "conda_mxnet_p36" + }, + "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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/ssd_entry_point.py b/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/ssd_entry_point.py new file mode 100644 index 0000000000..bfb27dc713 --- /dev/null +++ b/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/ssd_entry_point.py @@ -0,0 +1,277 @@ +import io +import json +import logging +import os + +import numpy as np +import PIL.Image + +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + +# ------------------------------------------------------------ # +# Training methods # +# ------------------------------------------------------------ # + +import argparse +import glob +import time +import warnings + +import mxnet as mx +from mxnet import autograd, gluon, nd + + +def parse_args(): + parser = argparse.ArgumentParser(description="Train SSD networks.") + parser.add_argument( + "--network", type=str, default="ssd_512_mobilenet1.0_voc", help="Network name" + ) + parser.add_argument( + "--data-shape", type=int, default=512, help="Input data shape, use 300, 512." + ) + parser.add_argument("--batch-size", type=int, default=32, help="Training mini-batch size") + parser.add_argument( + "--num-workers", + "-j", + dest="num_workers", + type=int, + default=4, + help="Number of data workers, you can use larger " + "number to accelerate data loading, if you CPU and GPUs are powerful.", + ) + parser.add_argument( + "--gpus", type=str, default="0", help="Training with GPUs, you can specify 1,3 for example." + ) + parser.add_argument("--epochs", type=int, default=240, help="Training epochs.") + parser.add_argument( + "--start-epoch", + type=int, + default=0, + help="Starting epoch for resuming, default is 0 for new training." + "You can specify it to 100 for example to start from 100 epoch.", + ) + parser.add_argument( + "--log-interval", type=int, default=100, help="Logging mini-batch interval. Default is 100." + ) + parser.add_argument("--lr", type=float, default=0.001, help="Learning rate, default is 0.001") + parser.add_argument( + "--lr-decay", type=float, default=0.1, help="decay rate of learning rate. default is 0.1." + ) + parser.add_argument( + "--lr-decay-epoch", + type=str, + default="160,200", + help="epochs at which learning rate decays. default is 160,200.", + ) + parser.add_argument("--momentum", type=float, default=0.9, help="SGD momentum, default is 0.9") + parser.add_argument("--wd", type=float, default=0.0005, help="Weight decay, default is 5e-4") + + return parser.parse_args() + + +def get_dataloader(net, data_shape, batch_size, num_workers, ctx): + """Get dataloader.""" + + from gluoncv import data as gdata + from gluoncv.data.batchify import Pad, Stack, Tuple + from gluoncv.data.transforms.presets.ssd import SSDDefaultTrainTransform + + width, height = data_shape, data_shape + # use fake data to generate fixed anchors for target generation + with autograd.train_mode(): + _, _, anchors = net(mx.nd.zeros((1, 3, height, width), ctx)) + anchors = anchors.as_in_context(mx.cpu()) + batchify_fn = Tuple(Stack(), Stack(), Stack()) # stack image, cls_targets, box_targets + train_dataset = gdata.RecordFileDetection( + os.path.join(os.environ["SM_CHANNEL_TRAIN"], "train.rec") + ) + train_loader = gluon.data.DataLoader( + train_dataset.transform(SSDDefaultTrainTransform(width, height, anchors)), + batch_size, + True, + batchify_fn=batchify_fn, + last_batch="rollover", + num_workers=num_workers, + ) + return train_loader + + +def train(net, train_data, ctx, args): + """Training pipeline""" + + import gluoncv as gcv + + net.collect_params().reset_ctx(ctx) + + trainer = gluon.Trainer( + net.collect_params(), + "sgd", + {"learning_rate": args.lr, "wd": args.wd, "momentum": args.momentum}, + update_on_kvstore=None, + ) + + # lr decay policy + lr_decay = float(args.lr_decay) + lr_steps = sorted([float(ls) for ls in args.lr_decay_epoch.split(",") if ls.strip()]) + + mbox_loss = gcv.loss.SSDMultiBoxLoss() + ce_metric = mx.metric.Loss("CrossEntropy") + smoothl1_metric = mx.metric.Loss("SmoothL1") + + # set up logger + logging.basicConfig() + logger = logging.getLogger() + logger.setLevel(logging.INFO) + logger.info(args) + logger.info("Start training from [Epoch {}]".format(args.start_epoch)) + best_map = [0] + + for epoch in range(args.start_epoch, args.epochs): + while lr_steps and epoch >= lr_steps[0]: + new_lr = trainer.learning_rate * lr_decay + lr_steps.pop(0) + trainer.set_learning_rate(new_lr) + logger.info("[Epoch {}] Set learning rate to {}".format(epoch, new_lr)) + ce_metric.reset() + smoothl1_metric.reset() + tic = time.time() + btic = time.time() + net.hybridize(static_alloc=True, static_shape=True) + + for i, batch in enumerate(train_data): + data = gluon.utils.split_and_load(batch[0], ctx_list=ctx, batch_axis=0) + cls_targets = gluon.utils.split_and_load(batch[1], ctx_list=ctx, batch_axis=0) + box_targets = gluon.utils.split_and_load(batch[2], ctx_list=ctx, batch_axis=0) + + with autograd.record(): + cls_preds = [] + box_preds = [] + for x in data: + cls_pred, box_pred, _ = net(x) + cls_preds.append(cls_pred) + box_preds.append(box_pred) + sum_loss, cls_loss, box_loss = mbox_loss( + cls_preds, box_preds, cls_targets, box_targets + ) + autograd.backward(sum_loss) + # since we have already normalized the loss, we don't want to normalize + # by batch-size anymore + trainer.step(1) + + local_batch_size = int(args.batch_size) + ce_metric.update(0, [l * local_batch_size for l in cls_loss]) + smoothl1_metric.update(0, [l * local_batch_size for l in box_loss]) + if args.log_interval and not (i + 1) % args.log_interval: + name1, loss1 = ce_metric.get() + name2, loss2 = smoothl1_metric.get() + logger.info( + "[Epoch {}][Batch {}], Speed: {:.3f} samples/sec, {}={:.3f}, {}={:.3f}".format( + epoch, i, args.batch_size / (time.time() - btic), name1, loss1, name2, loss2 + ) + ) + btic = time.time() + + name1, loss1 = ce_metric.get() + name2, loss2 = smoothl1_metric.get() + logger.info( + "[Epoch {}] Training cost: {:.3f}, {}={:.3f}, {}={:.3f}".format( + epoch, (time.time() - tic), name1, loss1, name2, loss2 + ) + ) + current_map = 0.0 + + # save model + net.set_nms(nms_thresh=0.45, nms_topk=400, post_nms=100) + net(mx.nd.ones((1, 3, 512, 512), ctx=ctx[0])) + net.export("%s/model" % os.environ["SM_MODEL_DIR"]) + return net + + +if __name__ == "__main__": + + from gluoncv import model_zoo + + args = parse_args() + + ctx = [mx.gpu(int(i)) for i in args.gpus.split(",") if i.strip()] + ctx = ctx if ctx else [mx.cpu()] + + net = model_zoo.get_model(args.network, pretrained=False, ctx=ctx) + net.initialize(ctx=mx.gpu(0)) + train_loader = get_dataloader(net, args.data_shape, args.batch_size, args.num_workers, ctx[0]) + + train(net, train_loader, ctx, args) + +# ------------------------------------------------------------ # +# Hosting methods for Neo compiled model # +# ------------------------------------------------------------ # + + +def model_fn(model_dir): + """ + Load the gluon model. Called once when hosting service starts. + :param: model_dir The directory where model files are stored. + :return: a model (in this case a Gluon network) + """ + logging.info("Invoking user-defined model_fn") + import neomx # noqa: F401 + + # change context to mx.cpu() when optimizing and deploying with Neo for CPU endpoints + ctx = mx.gpu() + net = gluon.SymbolBlock.imports( + "%s/compiled-symbol.json" % model_dir, + ["data"], + "%s/compiled-0000.params" % model_dir, + ctx=ctx, + ) + net.hybridize(static_alloc=True, static_shape=True) + # run warm-up inference on empty data + warmup_data = mx.nd.empty((1, 3, 512, 512), ctx=ctx) + class_IDs, scores, bounding_boxes = net(warmup_data) + + return net + + +def transform_fn(net, data, content_type, output_content_type): + """ + pre-process the incoming payload, perform prediction & convert the prediction output into response payload + """ + logging.info("Invoking user-defined transform_fn") + + import gluoncv as gcv + + # change context to mx.cpu() when optimizing and deploying with Neo for CPU endpoints + ctx = mx.gpu() + + """ + pre-processing + """ + # decode json string into numpy array + data = json.loads(data) + + # preprocess image + x, image = gcv.data.transforms.presets.ssd.transform_test(mx.nd.array(data), 512) + + # load image onto right context + x = x.as_in_context(ctx) + + """ + prediction/inference + """ + class_IDs, scores, bounding_boxes = net(x) + + """ + post-processing + """ + # create list of results + result = [ + class_IDs.asnumpy().tolist(), + scores.asnumpy().tolist(), + bounding_boxes.asnumpy().tolist(), + ] + + # decode as json string + response_body = json.dumps(result) + + return response_body, output_content_type diff --git a/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/test.jpg b/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/test.jpg new file mode 100644 index 0000000000..2eab5780e7 Binary files /dev/null and b/sagemaker_neo_compilation_jobs/gluoncv_ssd_mobilenet/test.jpg differ diff --git a/sagemaker_neo_compilation_jobs/index.rst b/sagemaker_neo_compilation_jobs/index.rst index 1972fca43b..e91e483e3d 100644 --- a/sagemaker_neo_compilation_jobs/index.rst +++ b/sagemaker_neo_compilation_jobs/index.rst @@ -6,7 +6,6 @@ Get started with model compilation with Neo xgboost_customer_churn/xgboost_customer_churn_neo imageclassification_caltech/Image-classification-fulltraining-highlevel-neo - gluoncv_ssd_mobilenet/gluoncv_ssd_mobilenet_neo Apache MXNet diff --git a/sagemaker_processing/fairness_and_explainability/fairness_and_explainability.ipynb b/sagemaker_processing/fairness_and_explainability/fairness_and_explainability.ipynb index ac3a7de2b5..7f5c0368a9 100644 --- a/sagemaker_processing/fairness_and_explainability/fairness_and_explainability.ipynb +++ b/sagemaker_processing/fairness_and_explainability/fairness_and_explainability.ipynb @@ -2,14 +2,13 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, "source": [ "# Fairness and Explainability with SageMaker Clarify" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "1. [Overview](#Overview)\n", "1. [Prerequisites and Data](#Prerequisites-and-Data)\n", @@ -45,21 +44,20 @@ "1. Accessing the reports through SageMaker Studio if you have an instance set up.\n", "\n", "In doing so, the notebook will first train a [SageMaker XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) model using training dataset, then use SageMaker Clarify to analyze a testing dataset in CSV format. SageMaker Clarify also supports analyzing dataset in [SageMaker JSONLines dense format](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#common-in-formats), which is illustrated in [another notebook](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker_processing/fairness_and_explainability/fairness_and_explainability_jsonlines_format.ipynb)." - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Prerequisites and Data\n", "### Initialize SageMaker" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from sagemaker import Session\n", "\n", @@ -76,11 +74,12 @@ "\n", "role = get_execution_role()\n", "s3_client = boto3.client(\"s3\")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Download data\n", "Data Source: [https://archive.ics.uci.edu/ml/machine-learning-databases/adult/](https://archive.ics.uci.edu/ml/machine-learning-databases/adult/)\n", @@ -88,13 +87,12 @@ "Let's __download__ the data and save it in the local folder with the name adult.data and adult.test from UCI repository$^{[2]}$.\n", "\n", "$^{[2]}$Dua Dheeru, and Efi Karra Taniskidou. \"[UCI Machine Learning Repository](http://archive.ics.uci.edu/ml)\". Irvine, CA: University of California, School of Information and Computer Science (2017)." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "adult_columns = [\n", " \"Age\",\n", @@ -128,11 +126,12 @@ " print(\"adult.test saved!\")\n", "else:\n", " print(\"adult.test already on disk.\")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Loading the data: Adult Dataset\n", "From the UCI repository of machine learning datasets, this database contains 14 features concerning demographic characteristics of 45,222 rows (32,561 for training and 12,661 for testing). The task is to predict whether a person has a yearly income that is more or less than $50,000.\n", @@ -156,15 +155,12 @@ "\n", "Next, we specify our binary prediction task: \n", "15. **Target**: <=50,000, >$50,000." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], "source": [ "training_data = pd.read_csv(\n", " \"adult.data\", names=adult_columns, sep=r\"\\s*,\\s*\", engine=\"python\", na_values=\"?\"\n", @@ -175,54 +171,56 @@ ").dropna()\n", "\n", "training_data.head()" - ] + ], + "outputs": [], + "metadata": { + "scrolled": true + } }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Data inspection\n", "Plotting histograms for the distribution of the different features is a good way to visualize the data. Let's plot a few of the features that can be considered _sensitive_. \n", "Let's take a look specifically at the Sex feature of a census respondent. In the first plot we see that there are fewer Female respondents as a whole but especially in the positive outcomes, where they form ~$\\frac{1}{7}$th of respondents." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], "source": [ "training_data[\"Sex\"].value_counts().sort_values().plot(kind=\"bar\", title=\"Counts of Sex\", rot=0)" - ] + ], + "outputs": [], + "metadata": { + "scrolled": true + } }, { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], "source": [ "training_data[\"Sex\"].where(training_data[\"Target\"] == \">50K\").value_counts().sort_values().plot(\n", " kind=\"bar\", title=\"Counts of Sex earning >$50K\", rot=0\n", ")" - ] + ], + "outputs": [], + "metadata": { + "scrolled": true + } }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Encode and Upload the Dataset\n", "Here we encode the training and test data. Encoding input data is not necessary for SageMaker Clarify, but is necessary for the model." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from sklearn import preprocessing\n", "\n", @@ -246,36 +244,36 @@ "test_features = testing_data.drop([\"Target\"], axis=1)\n", "test_target = testing_data[\"Target\"]\n", "test_features.to_csv(\"test_features.csv\", index=False, header=False)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "A quick note about our encoding: the \"Female\" Sex value has been encoded as 0 and \"Male\" as 1." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "training_data.head()" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Lastly, let's upload the data to S3" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from sagemaker.s3 import S3Uploader\n", "from sagemaker.inputs import TrainingInput\n", @@ -283,22 +281,22 @@ "train_uri = S3Uploader.upload(\"train_data.csv\", \"s3://{}/{}\".format(bucket, prefix))\n", "train_input = TrainingInput(train_uri, content_type=\"csv\")\n", "test_uri = S3Uploader.upload(\"test_features.csv\", \"s3://{}/{}\".format(bucket, prefix))" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Train XGBoost Model\n", "#### Train Model\n", "Since our focus is on understanding how to use SageMaker Clarify, we keep it simple by using a standard XGBoost model." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from sagemaker.image_uris import retrieve\n", "from sagemaker.estimator import Estimator\n", @@ -324,64 +322,64 @@ ")\n", "\n", "xgb.fit({\"train\": train_input}, logs=False)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### Deploy Model\n", "Here we create the SageMaker model." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "model_name = \"DEMO-clarify-model\"\n", "model = xgb.create_model(name=model_name)\n", "container_def = model.prepare_container_def()\n", "session.create_model(model_name, role, container_def)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Amazon SageMaker Clarify\n", "Now that you have your model set up. Let's say hello to SageMaker Clarify!" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "from sagemaker import clarify\n", "\n", "clarify_processor = clarify.SageMakerClarifyProcessor(\n", " role=role, instance_count=1, instance_type=\"ml.m5.xlarge\", sagemaker_session=session\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Detecting Bias\n", "SageMaker Clarify helps you detect possible pre- and post-training biases using a variety of metrics.\n", "#### Writing DataConfig and ModelConfig\n", "A `DataConfig` object communicates some basic information about data I/O to SageMaker Clarify. We specify where to find the input dataset, where to store the output, the target column (`label`), the header names, and the dataset type." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "bias_report_output_path = \"s3://{}/{}/clarify-bias\".format(bucket, prefix)\n", "bias_data_config = clarify.DataConfig(\n", @@ -391,22 +389,22 @@ " headers=training_data.columns.to_list(),\n", " dataset_type=\"text/csv\",\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "A `ModelConfig` object communicates information about your trained model. To avoid additional traffic to your production models, SageMaker Clarify sets up and tears down a dedicated endpoint when processing.\n", "* `instance_type` and `instance_count` specify your preferred instance type and instance count used to run your model on during SageMaker Clarify's processing. The testing dataset is small so a single standard instance is good enough to run this example. If your have a large complex dataset, you may want to use a better instance type to speed up, or add more instances to enable Spark parallelization.\n", "* `accept_type` denotes the endpoint response payload format, and `content_type` denotes the payload format of request to the endpoint." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "model_config = clarify.ModelConfig(\n", " model_name=model_name,\n", @@ -415,52 +413,53 @@ " accept_type=\"text/csv\",\n", " content_type=\"text/csv\",\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "A `ModelPredictedLabelConfig` provides information on the format of your predictions. XGBoost model outputs probabilities of samples, so SageMaker Clarify invokes the endpoint then uses `probability_threshold` to convert the probability to binary labels for bias analysis. Prediction above the threshold is interpreted as label value `1` and below or equal as label value `0`." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "predictions_config = clarify.ModelPredictedLabelConfig(probability_threshold=0.8)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### Writing BiasConfig\n", "SageMaker Clarify also needs information on what the sensitive columns (`facets`) are, what the sensitive features (`facet_values_or_threshold`) may be, and what the desirable outcomes are (`label_values_or_threshold`).\n", "SageMaker Clarify can handle both categorical and continuous data for `facet_values_or_threshold` and for `label_values_or_threshold`. In this case we are using categorical data.\n", "\n", "We specify this information in the `BiasConfig` API. Here that the positive outcome is earning >$50,000, Sex is a sensitive category, and Female respondents are the sensitive group. `group_name` is used to form subgroups for the measurement of Conditional Demographic Disparity in Labels (CDDL) and Conditional Demographic Disparity in Predicted Labels (CDDPL) with regards to Simpson’s paradox." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "bias_config = clarify.BiasConfig(\n", " label_values_or_threshold=[1], facet_name=\"Sex\", facet_values_or_threshold=[0], group_name=\"Age\"\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### Pre-training Bias\n", - "Bias can be present in your data before any model training occurs. Inspecting your data for bias before training begins can help detect any data collection gaps, inform your feature engineering, and hep you understand what societal biases the data may reflect.\n", + "Bias can be present in your data before any model training occurs. Inspecting your data for bias before training begins can help detect any data collection gaps, inform your feature engineering, and help you understand what societal biases the data may reflect.\n", "\n", "Computing pre-training bias metrics does not require a trained model.\n", "\n", @@ -471,13 +470,12 @@ "\n", "\n", "You can run these options separately with `run_pre_training_bias()` and `run_post_training_bias()` or at the same time with `run_bias()` as shown below." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "clarify_processor.run_bias(\n", " data_config=bias_data_config,\n", @@ -487,11 +485,12 @@ " pre_training_methods=\"all\",\n", " post_training_methods=\"all\",\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### Viewing the Bias Report\n", "In Studio, you can view the results under the experiments tab.\n", @@ -505,44 +504,43 @@ "You could also summarize the results in a handy table!\n", "\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "If you're not a Studio user yet, you can access the bias report in pdf, html and ipynb formats in the following S3 bucket:" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "bias_report_output_path" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Explaining Predictions\n", "There are expanding business needs and legislative regulations that require explanations of _why_ a model made the decision it did. SageMaker Clarify uses SHAP to explain the contribution that each input feature makes to the final decision." - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ - "Kernel SHAP algorithm requires a baseline (also known as background dataset). Baseline dataset type shall be the same as `dataset_type` of `DataConfig`, and baseline samples shall only include features. By definition, `baseline` should either be a S3 URI to the baseline dataset file, or an in-place list of samples. In this case we chose the latter, and put the first sample of the test dataset to the list." - ] + "Kernel SHAP algorithm requires a baseline (also known as background dataset). If not provided, a baseline is calculated automatically by SageMaker Clarify using K-means or K-prototypes in the input dataset. Baseline dataset type shall be the same as `dataset_type` of `DataConfig`, and baseline samples shall only include features. By definition, `baseline` should either be a S3 URI to the baseline dataset file, or an in-place list of samples. In this case we chose the latter, and put the first sample of the test dataset to the list." + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "shap_config = clarify.SHAPConfig(\n", " baseline=[test_features.iloc[0].values.tolist()],\n", @@ -559,24 +557,25 @@ " headers=training_data.columns.to_list(),\n", " dataset_type=\"text/csv\",\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "clarify_processor.run_explainability(\n", " data_config=explainability_data_config,\n", " model_config=model_config,\n", " explainability_config=shap_config,\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### Viewing the Explainability Report\n", "As with the bias report, you can view the explainability report in Studio under the experiments tab\n", @@ -587,32 +586,31 @@ "The Model Insights tab contains direct links to the report and model insights.\n", "\n", "If you're not a Studio user yet, as with the Bias Report, you can access this report at the following S3 bucket." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "explainability_output_path" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "#### Analysis of local explanations\n", "It is possible to visualize the the local explanations for single examples in your dataset. You can use the obtained results from running Kernel SHAP algorithm for global explanations.\n", "\n", "You can simply load the local explanations stored in your output path, and visualize the explanation (i.e., the impact that the single features have on the prediction of your model) for any single example." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "local_explanations_out = pd.read_csv(explainability_output_path + \"/explanations_shap/out.csv\")\n", "feature_names = [str.replace(c, \"_label0\", \"\") for c in local_explanations_out.columns.to_series()]\n", @@ -629,24 +627,26 @@ "local_explanations_out.iloc[selected_example].plot(\n", " kind=\"bar\", title=\"Local explanation for the example number \" + str(selected_example), rot=90\n", ")" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "### Clean Up\n", "Finally, don't forget to clean up the resources we set up and used for this demo!" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "session.delete_model(model_name)" - ] + ], + "outputs": [], + "metadata": {} } ], "metadata": { @@ -671,4 +671,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/sagemaker_processing/fairness_and_explainability/fairness_and_explainability_byoc.ipynb b/sagemaker_processing/fairness_and_explainability/fairness_and_explainability_byoc.ipynb index 0fb5e33273..2ab981a25c 100644 --- a/sagemaker_processing/fairness_and_explainability/fairness_and_explainability_byoc.ipynb +++ b/sagemaker_processing/fairness_and_explainability/fairness_and_explainability_byoc.ipynb @@ -672,7 +672,7 @@ " {\n", " \"Effect\": \"Allow\",\n", " \"Action\": \"iam:PassRole\",\n", - " \"Resource\": \"arn:$partition:iam::*:role/*\",\n", + " \"Resource\": \"arn:$partition:iam::$account_id:role/$execution_role\",\n", " \"Condition\": {\n", " \"StringLikeIfExists\": {\n", " \"iam:PassedToService\": \"codebuild.amazonaws.com\"\n", @@ -682,7 +682,9 @@ " ]\n", "}\"\"\"\n", ")\n", - "permissions_policy = template.substitute(partition=arn_partition)\n", + "permissions_policy = template.substitute(\n", + " partition=arn_partition, account_id=account_id, execution_role=role\n", + ")\n", "print(permissions_policy)" ] }, diff --git a/training/distributed_training/pytorch/data_parallel/rnnt/RNNT_notebook.ipynb b/training/distributed_training/pytorch/data_parallel/rnnt/RNNT_notebook.ipynb new file mode 100644 index 0000000000..7e41ecb468 --- /dev/null +++ b/training/distributed_training/pytorch/data_parallel/rnnt/RNNT_notebook.ipynb @@ -0,0 +1,372 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "55659189", + "metadata": {}, + "source": [ + "# Distributed data parallel RNN-T training with PyTorch and SageMaker distributed\n", + "\n", + "[Amazon SageMaker's distributed library](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html) can be used to train deep learning models faster and cheaper. The [data parallel](https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel.html) feature in this library (`smdistributed.dataparallel`) is a distributed data parallel training framework for PyTorch, TensorFlow, and MXNet.\n", + "\n", + "This notebook demonstrates how to use `smdistributed.dataparallel` with PyTorch(version 1.8.1) on [Amazon SageMaker](https://aws.amazon.com/sagemaker/) to train an RNN-T model on [LibriSpeech](http://www.openslr.org/12) (License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)) using [Amazon FSx for Lustre file-system](https://aws.amazon.com/fsx/lustre/) as data source.\n", + "\n", + "The outline of steps is as follows:\n", + "\n", + "1. Stage the LibriSpeech dataset in [Amazon S3](https://aws.amazon.com/s3/)\n", + "2. Create Amazon FSx Lustre file-system and import data into the file-system from S3\n", + "3. Build Docker training image and push it to [Amazon ECR](https://aws.amazon.com/ecr/)\n", + "4. Configure data input channels for SageMaker\n", + "5. Configure hyper-prarameters\n", + "6. Define training metrics\n", + "7. Define training job, set distribution strategy to SMDataParallel and start training\n", + "\n", + "**NOTE:** With large training dataset, we recommend using [Amazon FSx](https://aws.amazon.com/fsx/) as the input file system for the SageMaker training job. FSx file input to SageMaker significantly cuts down training start up time on SageMaker because it avoids downloading the training data each time you start the training job (as done with S3 input for SageMaker training job) and provides good data read throughput.\n", + "\n", + "\n", + "**NOTE:** This example requires SageMaker Python SDK v2.X." + ] + }, + { + "cell_type": "markdown", + "id": "1901d71a", + "metadata": {}, + "source": [ + "## Amazon SageMaker Initialization\n", + "\n", + "Initialize the notebook instance. Get the AWS Region and a SageMaker execution role.\n", + "\n", + "### SageMaker role\n", + "\n", + "The following code cell defines `role` which is the IAM role ARN used to create and run SageMaker training and hosting jobs. This is the same IAM role used to create this SageMaker Notebook instance. \n", + "\n", + "`role` must have permission to create a SageMaker training job and host a model. For granular policies you can use to grant these permissions, see [Amazon SageMaker Roles](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). If you do not require fine-tuned permissions for this demo, you can use the IAM managed policy AmazonSageMakerFullAccess to complete this demo. \n", + "\n", + "As described above, since we will be using FSx, please make sure to attach `FSx Access` permission to this IAM role." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6fb79f1", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "! python3 -m pip install --upgrade sagemaker\n", + "import sagemaker\n", + "from sagemaker import get_execution_role\n", + "from sagemaker.estimator import Estimator\n", + "import boto3\n", + "\n", + "sagemaker_session = sagemaker.Session()\n", + "bucket = sagemaker_session.default_bucket()\n", + "\n", + "role = (\n", + " get_execution_role()\n", + ") # provide a pre-existing role ARN as an alternative to creating a new role\n", + "role_name = role.split([\"/\"][-1])\n", + "print(f\"SageMaker Execution Role:{role}\")\n", + "print(f\"The name of the Execution role: {role_name[-1]}\")\n", + "\n", + "client = boto3.client(\"sts\")\n", + "account = client.get_caller_identity()[\"Account\"]\n", + "print(f\"AWS account:{account}\")\n", + "\n", + "session = boto3.session.Session()\n", + "region = session.region_name\n", + "print(f\"AWS region:{region}\")" + ] + }, + { + "cell_type": "markdown", + "id": "099b092e", + "metadata": {}, + "source": [ + "To verify that the role above has required permissions:\n", + "\n", + "1. Go to the IAM console: https://console.aws.amazon.com/iam/home.\n", + "2. Select **Roles**.\n", + "3. Enter the role name in the search box to search for that role. \n", + "4. Select the role.\n", + "5. Use the **Permissions** tab to verify this role has required permissions attached." + ] + }, + { + "cell_type": "markdown", + "id": "ede42360", + "metadata": {}, + "source": [ + "## Prepare SageMaker Training Images\n", + "\n", + "1. SageMaker by default uses the latest [Amazon Deep Learning Container Images (DLC)](https://github.com/aws/deep-learning-containers/blob/master/available_images.md) PyTorch training image. In this step, we use it as a base image and install additional dependencies required for training the RNN-T model.\n", + "2. In the Github repository https://github.com/HerringForks/SMDDP-Examples/tree/main/pytorch/rnnt we have forked an RNN-T example from [mlcommons/\n", + "training_results_v1.0](https://github.com/mlcommons/training_results_v1.0/tree/master/NVIDIA/benchmarks/rnnt/implementations/pytorch) and adapted the training script to work with `smdistributed.dataparallel`. We will use the `Dockerfile` provided there." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4bfbccfc", + "metadata": {}, + "outputs": [], + "source": [ + "# clone the repo and build the docker image\n", + "! pwd && rm -rf SMDDP-Examples && \\\n", + " aws ecr get-login-password --region {region} | docker login \\\n", + " --username AWS --password-stdin 763104351884.dkr.ecr.{region}.amazonaws.com && \\\n", + " git clone https://github.com/HerringForks/SMDDP-Examples.git && \\\n", + " cd SMDDP-Examples/pytorch/rnnt && \\\n", + " bash scripts/docker/build.sh\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dda17648", + "metadata": {}, + "outputs": [], + "source": [ + "# name the image\n", + "image = \"zhaoqi-dev\" # Example: mask-rcnn-smdataparallel-sagemaker\n", + "tag = \"rnnt_dlc_pt1.8.1_smddp\" # Example: pt1.8" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97bd6481", + "metadata": {}, + "outputs": [], + "source": [ + "# tag the image we just built and push it to ecr\n", + "%%time\n", + "! chmod +x tag_and_push.sh; bash tag_and_push.sh {region} {image} {tag}" + ] + }, + { + "cell_type": "markdown", + "id": "c04fca1f", + "metadata": {}, + "source": [ + "## Preparing FSx Input for SageMaker\n", + "\n", + "1. Download and prepare your training dataset on S3, please refer to the [instructions](https://github.com/mlcommons/training_results_v1.0/tree/master/NVIDIA/benchmarks/rnnt/implementations/pytorch#steps-to-download-data). \n", + "2. Follow the [steps](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-fs-linked-data-repo.html) to create a FSx linked with your S3 bucket with training data. Make sure to add an endpoint to your VPC allowing S3 access.\n", + "3. Follow the [steps](https://aws.amazon.com/blogs/machine-learning/speed-up-training-on-amazon-sagemaker-using-amazon-efs-or-amazon-fsx-for-lustre-file-systems/) to configure your SageMaker training job to use FSx.\n", + "\n", + "### Important Caveats\n", + "\n", + "1. You need to use the same `subnet` and `vpc` and `security group` used with FSx when launching the SageMaker notebook instance. The same configurations will be used by your SageMaker training job.\n", + "2. Make sure you set [appropriate inbound/output rules](https://docs.aws.amazon.com/fsx/latest/LustreGuide/limit-access-security-groups.html) in the `security group`. Specifically, opening up these ports is necessary for SageMaker to access the FSx file system in the training job. \n", + "3. Make sure `SageMaker IAM Role` used to launch this SageMaker training job has access to `AmazonFSx`." + ] + }, + { + "cell_type": "markdown", + "id": "8873826a", + "metadata": {}, + "source": [ + "## SageMaker PyTorch Estimator function options\n", + "\n", + "In the following code block, you can update the estimator function to use a different instance type, instance count, and distribution strategy. You're also passing in the training script you reviewed in the previous cell.\n", + "\n", + "**Instance types**\n", + "\n", + "SMDataParallel supports model training on SageMaker with the following instance types only. For best performance, it is recommended you use an instance type that supports Amazon Elastic Fabric Adapter (ml.p3dn.24xlarge and ml.p4d.24xlarge).\n", + "\n", + "1. ml.p3.16xlarge\n", + "1. ml.p3dn.24xlarge [Recommended]\n", + "1. ml.p4d.24xlarge [Recommended]\n", + "\n", + "**Instance count**\n", + "\n", + "To get the best performance and the most out of SMDataParallel, you should use at least 2 instances, but you can also use 1 for testing this example.\n", + "\n", + "**Distribution strategy**\n", + "\n", + "Note that to use DDP mode, you need to update the `distribution` strategy, and set it to use `smdistributed dataparallel`. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e948387d", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from sagemaker.pytorch import PyTorch" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3dcf432f", + "metadata": {}, + "outputs": [], + "source": [ + "instance_type = \"ml.p4d.24xlarge\" # \"ml.p3dn.24xlarge\" # Other supported instance type: ml.p3.16xlarge, ml.p4d.24xlarge\n", + "instance_count = 2 # You can use 2, 4, 8 etc.\n", + "docker_image = f\"{account}.dkr.ecr.{region}.amazonaws.com/{image}:{tag}\" # YOUR_ECR_IMAGE_BUILT_WITH_ABOVE_DOCKER_FILE\n", + "username = \"AWS\"\n", + "subnets = [\"\"] # Should be same as Subnet used for FSx. Example: subnet-0f9XXXX\n", + "security_group_ids = [\n", + " \"\"\n", + "] # Should be same as Security group used for FSx. sg-03ZZZZZZ\n", + "job_name = \"pytorch-smdataparallel-rnnt\" # This job name is used as prefix to the sagemaker training job. Makes it easy for your look for your training job in SageMaker Training job console.\n", + "file_system_id = \"\" # FSx file system ID with your training dataset. Example: 'fs-0bYYYYYY'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4dcc47e", + "metadata": {}, + "outputs": [], + "source": [ + "# Configure the RNN-T hyper-parameters\n", + "hyperparameters = {\n", + " \"batch_size\": 48,\n", + " \"beta1\": 0.9,\n", + " \"beta2\": 0.999,\n", + " \"max_duration\": 16.7,\n", + " \"val_batch_size\": 44,\n", + " \"target\": 0.058,\n", + " \"lr\": 0.007,\n", + " \"min_lr\": 1e-5,\n", + " \"lr_exp_gamma\": 0.939,\n", + " \"epochs\": 80,\n", + " \"warmup_epochs\": 6,\n", + " \"hold_epochs\": 33,\n", + " \"epochs_this_job\": 0,\n", + " \"ema\": 0.995,\n", + " \"model_config\": \"/workspace/rnnt/configs/baseline_v3-1023sp.yaml\",\n", + " \"seed\": 28400,\n", + " \"cudnn_benchmark\": \"\",\n", + " \"dali_device\": \"gpu\",\n", + " \"weight_decay\": 1e-3,\n", + " \"log_frequency\": 1, #!!\n", + " \"val_frequency\": 1,\n", + " \"grad_accumulation_steps\": 1,\n", + " \"prediction_frequency\": 100000000,\n", + " \"weights_init_scale\": 0.5,\n", + " \"save_at_the_end\": \"\",\n", + " \"max_symbol_per_sample\": 300,\n", + " \"apex_transducer_loss\": \"fp16\",\n", + " \"fuse_relu_dropout\": \"\",\n", + " \"multi_tensor_ema\": \"\",\n", + " \"batch_eval_mode\": \"cg_unroll_pipeline\",\n", + " \"apex_transducer_joint\": \"pack\",\n", + " \"buffer_pre_alloc\": \"\",\n", + " \"ema_update_type\": \"fp16\",\n", + " \"amp_level\": 2,\n", + " \"data_cpu_threads\": 8,\n", + " \"batch_split_factor\": 1,\n", + " \"min_seq_split_len\": 20,\n", + " \"vectorized_sa\": \"\",\n", + " \"multilayer_lstm\": \"\",\n", + " \"enable_prefetch\": \"\",\n", + " \"tokenized_transcript\": \"\",\n", + " \"vectorized_sampler\": \"\",\n", + " \"dist_sampler\": \"\",\n", + " \"apex_mlp\": \"\",\n", + " \"pre_sort_for_seq_split\": \"\",\n", + " \"jit_tensor_formation\": \"\",\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2e5811e", + "metadata": {}, + "outputs": [], + "source": [ + "estimator = PyTorch(\n", + " entry_point=\"entry_point.py\",\n", + " role=role,\n", + " image_uri=docker_image,\n", + " source_dir=\".\",\n", + " instance_count=instance_count,\n", + " instance_type=instance_type,\n", + " framework_version=\"1.8.1\",\n", + " py_version=\"py36\",\n", + " sagemaker_session=sagemaker_session,\n", + " hyperparameters=hyperparameters,\n", + " subnets=subnets,\n", + " security_group_ids=security_group_ids,\n", + " debugger_hook_config=False,\n", + " # Training using SMDataParallel Distributed Training Framework\n", + " distribution={\"smdistributed\": {\"dataparallel\": {\"enabled\": True}}},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "712890a9", + "metadata": {}, + "outputs": [], + "source": [ + "# Configure FSx Input for your SageMaker Training job\n", + "\n", + "from sagemaker.inputs import FileSystemInput\n", + "\n", + "file_system_directory_path = (\n", + " \"/\" # NOTE: '/fsx/' will be the root mount path. Example: '/fsx/mask_rcnn/PyTorch'\n", + ")\n", + "file_system_access_mode = \"ro\"\n", + "file_system_type = \"FSxLustre\"\n", + "train_fs = FileSystemInput(\n", + " file_system_id=file_system_id,\n", + " file_system_type=file_system_type,\n", + " directory_path=file_system_directory_path,\n", + " file_system_access_mode=file_system_access_mode,\n", + ")\n", + "data_channels = {\"train\": train_fs}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "82c4ef3e", + "metadata": {}, + "outputs": [], + "source": [ + "# Submit SageMaker training job\n", + "estimator.fit(inputs=data_channels, job_name=job_name)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e8fa5b62", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "conda_python3", + "language": "python", + "name": "conda_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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/training/distributed_training/pytorch/data_parallel/rnnt/entry_point.py b/training/distributed_training/pytorch/data_parallel/rnnt/entry_point.py new file mode 100644 index 0000000000..1c378c93d9 --- /dev/null +++ b/training/distributed_training/pytorch/data_parallel/rnnt/entry_point.py @@ -0,0 +1,31 @@ +# Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file +# except in compliance with the License. A copy of the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "LICENSE.txt" file accompanying this file. This file is distributed on an "AS IS" +# BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for +# the specific language governing permissions and limitations under the License. + +import subprocess +import sys +import os + +exe = 'python' + +trainer = '/workspace/rnnt/train.py' + +cmd_list = [exe] + [trainer] + sys.argv[1:] +cmd = ' '.join(cmd_list) + +cmd += ' ' +cmd += '--dataset_dir ' + os.environ['SM_CHANNEL_TRAIN'] + '/datasets/LibriSpeech/ ' +cmd += '--output_dir ' + os.environ['SM_OUTPUT_DIR'] + ' ' +cmd += '--val_manifests ' + os.environ['SM_CHANNEL_TRAIN'] + '/tokenized/librispeech-dev-clean-wav-tokenized.pkl ' +cmd += '--train_manifests ' + os.environ['SM_CHANNEL_TRAIN'] + '/tokenized/librispeech-train-clean-100-wav-tokenized.pkl ' + os.environ['SM_CHANNEL_TRAIN'] + '/tokenized/librispeech-train-clean-360-wav-tokenized.pkl ' + os.environ['SM_CHANNEL_TRAIN'] + '/tokenized/librispeech-train-other-500-wav-tokenized.pkl ' + +print('Final command is: ', cmd) + +subprocess.run(cmd, shell=True) \ No newline at end of file diff --git a/training/distributed_training/pytorch/data_parallel/rnnt/tag_and_push.sh b/training/distributed_training/pytorch/data_parallel/rnnt/tag_and_push.sh new file mode 100755 index 0000000000..cad072d883 --- /dev/null +++ b/training/distributed_training/pytorch/data_parallel/rnnt/tag_and_push.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# This script shows how to tag the Docker image and push it to ECR to be ready for use +# by SageMaker. +# The argument to this script is the image name. This will be used as the image on the local +# machine and combined with the account and region to form the repository name for ECR. +# set region + +if [ "$#" -eq 3 ]; then + region=$1 + image=$2 + tag=$3 +else + echo "usage: $0 $1 $2 " + exit 1 +fi + +# Get the account number associated with the current IAM credentials +account=$(aws sts get-caller-identity --query Account --output text) + +if [ $? -ne 0 ] +then + exit 255 +fi + +fullname="${account}.dkr.ecr.${region}.amazonaws.com/${image}:${tag}" + +# If the repository doesn't exist in ECR, create it. +aws ecr describe-repositories --region ${region} --repository-names "${image}" > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "creating ECR repository : ${fullname} " + aws ecr create-repository --region ${region} --repository-name "${image}" > /dev/null +fi + +$(aws ecr get-login --no-include-email --region ${region} --registry-ids 763104351884) +docker tag mlperf/rnn_speech_recognition_smddp:latest ${fullname} + +# Get the login command from ECR and execute it directly +$(aws ecr get-login --region ${region} --no-include-email) +docker push ${fullname} +if [ $? -eq 0 ]; +then + echo "Amazon ECR URI: ${fullname}" +else + echo "Error: Image build and push failed" + exit 1 +fi \ No newline at end of file diff --git a/training/distributed_training/tensorflow/data_parallel/mnist/tensorflow2_smdataparallel_mnist_demo.ipynb b/training/distributed_training/tensorflow/data_parallel/mnist/tensorflow2_smdataparallel_mnist_demo.ipynb index 019b0b0862..14f8e6bfb2 100644 --- a/training/distributed_training/tensorflow/data_parallel/mnist/tensorflow2_smdataparallel_mnist_demo.ipynb +++ b/training/distributed_training/tensorflow/data_parallel/mnist/tensorflow2_smdataparallel_mnist_demo.ipynb @@ -24,54 +24,9 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Processing /home/ubuntu/.cache/pip/wheels/36/73/72/147e239a958fa69f277e3077dc08b53cbf466cf443463147bd/sagemaker-2.42.1-py2.py3-none-any.whl\n", - "Requirement already satisfied, skipping upgrade: protobuf3-to-dict>=0.1.5 in /home/ubuntu/.local/lib/python3.6/site-packages (from sagemaker) (0.1.5)\n", - "Requirement already satisfied, skipping upgrade: packaging>=20.0 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (20.1)\n", - "Requirement already satisfied, skipping upgrade: attrs in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (19.3.0)\n", - "Requirement already satisfied, skipping upgrade: protobuf>=3.1 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (3.8.0)\n", - "Requirement already satisfied, skipping upgrade: boto3>=1.16.32 in /home/ubuntu/.local/lib/python3.6/site-packages (from sagemaker) (1.16.36)\n", - "Requirement already satisfied, skipping upgrade: importlib-metadata>=1.4.0 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (1.5.0)\n", - "Requirement already satisfied, skipping upgrade: smdebug-rulesconfig==1.0.1 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (1.0.1)\n", - "Requirement already satisfied, skipping upgrade: google-pasta in /home/ubuntu/.local/lib/python3.6/site-packages (from sagemaker) (0.2.0)\n", - "Requirement already satisfied, skipping upgrade: numpy>=1.9.0 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (1.18.1)\n", - "Requirement already satisfied, skipping upgrade: pathos in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (0.2.7)\n", - "Requirement already satisfied, skipping upgrade: pandas in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from sagemaker) (1.0.1)\n", - "Requirement already satisfied, skipping upgrade: six in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from protobuf3-to-dict>=0.1.5->sagemaker) (1.14.0)\n", - "Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from packaging>=20.0->sagemaker) (2.4.6)\n", - "Requirement already satisfied, skipping upgrade: setuptools in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from protobuf>=3.1->sagemaker) (45.2.0.post20200210)\n", - "Requirement already satisfied, skipping upgrade: botocore<1.20.0,>=1.19.36 in /home/ubuntu/.local/lib/python3.6/site-packages (from boto3>=1.16.32->sagemaker) (1.19.36)\n", - "Requirement already satisfied, skipping upgrade: s3transfer<0.4.0,>=0.3.0 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from boto3>=1.16.32->sagemaker) (0.3.3)\n", - "Requirement already satisfied, skipping upgrade: jmespath<1.0.0,>=0.7.1 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from boto3>=1.16.32->sagemaker) (0.10.0)\n", - "Requirement already satisfied, skipping upgrade: zipp>=0.5 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from importlib-metadata>=1.4.0->sagemaker) (2.2.0)\n", - "Requirement already satisfied, skipping upgrade: dill>=0.3.3 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from pathos->sagemaker) (0.3.3)\n", - "Requirement already satisfied, skipping upgrade: pox>=0.2.9 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from pathos->sagemaker) (0.2.9)\n", - "Requirement already satisfied, skipping upgrade: multiprocess>=0.70.11 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from pathos->sagemaker) (0.70.11.1)\n", - "Requirement already satisfied, skipping upgrade: ppft>=1.6.6.3 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from pathos->sagemaker) (1.6.6.3)\n", - "Requirement already satisfied, skipping upgrade: python-dateutil>=2.6.1 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from pandas->sagemaker) (2.8.1)\n", - "Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from pandas->sagemaker) (2019.3)\n", - "Requirement already satisfied, skipping upgrade: urllib3<1.27,>=1.25.4; python_version != \"3.4\" in /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (from botocore<1.20.0,>=1.19.36->boto3>=1.16.32->sagemaker) (1.25.10)\n", - "Installing collected packages: sagemaker\n", - " Attempting uninstall: sagemaker\n", - " Found existing installation: sagemaker 2.42.0\n", - " Uninstalling sagemaker-2.42.0:\n", - " Successfully uninstalled sagemaker-2.42.0\n", - "Successfully installed sagemaker-2.42.1\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "pip install sagemaker --upgrade" ] @@ -89,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -163,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -188,1063 +143,11 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } + "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2021-05-28 23:54:33 Starting - Starting the training job...\n", - "2021-05-28 23:54:56 Starting - Launching requested ML instancesProfilerReport-1622246073: InProgress\n", - ".........\n", - "2021-05-28 23:56:33 Starting - Preparing the instances for training.........\n", - "2021-05-28 23:57:57 Downloading - Downloading input data...\n", - "2021-05-28 23:58:17 Training - Downloading the training image...............\n", - "2021-05-29 00:00:57 Training - Training image download completed. Training in progress.\u001b[35m2021-05-29 00:00:54.926771: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:54.932755: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:55.020912: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:55.114217: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:58,582 sagemaker-training-toolkit INFO Imported framework sagemaker_tensorflow_container.training\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:59,222 sagemaker-training-toolkit INFO Starting MPI run as worker node.\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:59,222 sagemaker-training-toolkit INFO Waiting for MPI Master to create SSH daemon.\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:59,223 sagemaker-training-toolkit INFO Cannot connect to host algo-1\u001b[0m\n", - "\u001b[35m2021-05-29 00:00:59,223 sagemaker-training-toolkit INFO Connection failed with exception: \n", - " [Errno None] Unable to connect to port 22 on 10.0.130.141\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:00,233 paramiko.transport INFO Connected (version 2.0, client OpenSSH_7.6p1)\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:00,308 paramiko.transport INFO Authentication (publickey) successful!\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:00,309 sagemaker-training-toolkit INFO Can connect to host algo-1\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:00,309 sagemaker-training-toolkit INFO MPI Master online, creating SSH daemon.\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:00,309 sagemaker-training-toolkit INFO Writing environment variables to /etc/environment for the MPI process.\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:00,319 sagemaker-training-toolkit INFO Waiting for MPI process to finish.\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:02,331 sagemaker-training-toolkit INFO Process[es]: [psutil.Process(pid=172, name='orted', status='sleeping', started='00:01:01')]\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:02,331 sagemaker-training-toolkit INFO Orted process found [psutil.Process(pid=172, name='orted', status='sleeping', started='00:01:01')]\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:02,331 sagemaker-training-toolkit INFO Waiting for orted process [psutil.Process(pid=172, name='orted', status='sleeping', started='00:01:01')]\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:55.031306: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:55.037221: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:55.134243: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:55.237754: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:58,838 sagemaker-training-toolkit INFO Imported framework sagemaker_tensorflow_container.training\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:59,672 sagemaker-training-toolkit INFO Starting MPI run as worker node.\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:59,672 sagemaker-training-toolkit INFO Creating SSH daemon.\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:59,680 sagemaker-training-toolkit INFO Waiting for MPI workers to establish their SSH connections\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:59,681 sagemaker-training-toolkit INFO Cannot connect to host algo-2 at port 22. Retrying...\u001b[0m\n", - "\u001b[34m2021-05-29 00:00:59,681 sagemaker-training-toolkit INFO Connection closed\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,690 paramiko.transport INFO Connected (version 2.0, client OpenSSH_7.6p1)\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,761 paramiko.transport INFO Authentication (publickey) successful!\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,761 sagemaker-training-toolkit INFO Can connect to host algo-2 at port 22\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,761 sagemaker-training-toolkit INFO Connection closed\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,761 sagemaker-training-toolkit INFO Worker algo-2 available for communication\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,761 sagemaker-training-toolkit INFO Network interface name: eth0\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,761 sagemaker-training-toolkit INFO Host: ['algo-1', 'algo-2']\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,763 sagemaker-training-toolkit INFO instance type: ml.p3.16xlarge\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:00,851 sagemaker-training-toolkit INFO Invoking user script\n", - "\u001b[0m\n", - "\u001b[34mTraining Env:\n", - "\u001b[0m\n", - "\u001b[34m{\n", - " \"additional_framework_parameters\": {\n", - " \"sagemaker_distributed_dataparallel_enabled\": true,\n", - " \"sagemaker_distributed_dataparallel_custom_mpi_options\": \"\",\n", - " \"sagemaker_instance_type\": \"ml.p3.16xlarge\"\n", - " },\n", - " \"channel_input_dirs\": {},\n", - " \"current_host\": \"algo-1\",\n", - " \"framework_module\": \"sagemaker_tensorflow_container.training:main\",\n", - " \"hosts\": [\n", - " \"algo-1\",\n", - " \"algo-2\"\n", - " ],\n", - " \"hyperparameters\": {\n", - " \"model_dir\": \"s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/model\"\n", - " },\n", - " \"input_config_dir\": \"/opt/ml/input/config\",\n", - " \"input_data_config\": {},\n", - " \"input_dir\": \"/opt/ml/input\",\n", - " \"is_master\": true,\n", - " \"job_name\": \"tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230\",\n", - " \"log_level\": 20,\n", - " \"master_hostname\": \"algo-1\",\n", - " \"model_dir\": \"/opt/ml/model\",\n", - " \"module_dir\": \"s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/source/sourcedir.tar.gz\",\n", - " \"module_name\": \"train_tensorflow_smdataparallel_mnist\",\n", - " \"network_interface_name\": \"eth0\",\n", - " \"num_cpus\": 64,\n", - " \"num_gpus\": 8,\n", - " \"output_data_dir\": \"/opt/ml/output/data\",\n", - " \"output_dir\": \"/opt/ml/output\",\n", - " \"output_intermediate_dir\": \"/opt/ml/output/intermediate\",\n", - " \"resource_config\": {\n", - " \"current_host\": \"algo-1\",\n", - " \"hosts\": [\n", - " \"algo-1\",\n", - " \"algo-2\"\n", - " ],\n", - " \"network_interface_name\": \"eth0\"\n", - " },\n", - " \"user_entry_point\": \"train_tensorflow_smdataparallel_mnist.py\"\u001b[0m\n", - "\u001b[34m}\n", - "\u001b[0m\n", - "\u001b[34mEnvironment variables:\n", - "\u001b[0m\n", - "\u001b[34mSM_HOSTS=[\"algo-1\",\"algo-2\"]\u001b[0m\n", - "\u001b[34mSM_NETWORK_INTERFACE_NAME=eth0\u001b[0m\n", - "\u001b[34mSM_HPS={\"model_dir\":\"s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/model\"}\u001b[0m\n", - "\u001b[34mSM_USER_ENTRY_POINT=train_tensorflow_smdataparallel_mnist.py\u001b[0m\n", - "\u001b[34mSM_FRAMEWORK_PARAMS={\"sagemaker_distributed_dataparallel_custom_mpi_options\":\"\",\"sagemaker_distributed_dataparallel_enabled\":true,\"sagemaker_instance_type\":\"ml.p3.16xlarge\"}\u001b[0m\n", - "\u001b[34mSM_RESOURCE_CONFIG={\"current_host\":\"algo-1\",\"hosts\":[\"algo-1\",\"algo-2\"],\"network_interface_name\":\"eth0\"}\u001b[0m\n", - "\u001b[34mSM_INPUT_DATA_CONFIG={}\u001b[0m\n", - "\u001b[34mSM_OUTPUT_DATA_DIR=/opt/ml/output/data\u001b[0m\n", - "\u001b[34mSM_CHANNELS=[]\u001b[0m\n", - "\u001b[34mSM_CURRENT_HOST=algo-1\u001b[0m\n", - "\u001b[34mSM_MODULE_NAME=train_tensorflow_smdataparallel_mnist\u001b[0m\n", - "\u001b[34mSM_LOG_LEVEL=20\u001b[0m\n", - "\u001b[34mSM_FRAMEWORK_MODULE=sagemaker_tensorflow_container.training:main\u001b[0m\n", - "\u001b[34mSM_INPUT_DIR=/opt/ml/input\u001b[0m\n", - "\u001b[34mSM_INPUT_CONFIG_DIR=/opt/ml/input/config\u001b[0m\n", - "\u001b[34mSM_OUTPUT_DIR=/opt/ml/output\u001b[0m\n", - "\u001b[34mSM_NUM_CPUS=64\u001b[0m\n", - "\u001b[34mSM_NUM_GPUS=8\u001b[0m\n", - "\u001b[34mSM_MODEL_DIR=/opt/ml/model\u001b[0m\n", - "\u001b[34mSM_MODULE_DIR=s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/source/sourcedir.tar.gz\u001b[0m\n", - "\u001b[34mSM_TRAINING_ENV={\"additional_framework_parameters\":{\"sagemaker_distributed_dataparallel_custom_mpi_options\":\"\",\"sagemaker_distributed_dataparallel_enabled\":true,\"sagemaker_instance_type\":\"ml.p3.16xlarge\"},\"channel_input_dirs\":{},\"current_host\":\"algo-1\",\"framework_module\":\"sagemaker_tensorflow_container.training:main\",\"hosts\":[\"algo-1\",\"algo-2\"],\"hyperparameters\":{\"model_dir\":\"s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/model\"},\"input_config_dir\":\"/opt/ml/input/config\",\"input_data_config\":{},\"input_dir\":\"/opt/ml/input\",\"is_master\":true,\"job_name\":\"tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230\",\"log_level\":20,\"master_hostname\":\"algo-1\",\"model_dir\":\"/opt/ml/model\",\"module_dir\":\"s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/source/sourcedir.tar.gz\",\"module_name\":\"train_tensorflow_smdataparallel_mnist\",\"network_interface_name\":\"eth0\",\"num_cpus\":64,\"num_gpus\":8,\"output_data_dir\":\"/opt/ml/output/data\",\"output_dir\":\"/opt/ml/output\",\"output_intermediate_dir\":\"/opt/ml/output/intermediate\",\"resource_config\":{\"current_host\":\"algo-1\",\"hosts\":[\"algo-1\",\"algo-2\"],\"network_interface_name\":\"eth0\"},\"user_entry_point\":\"train_tensorflow_smdataparallel_mnist.py\"}\u001b[0m\n", - "\u001b[34mSM_USER_ARGS=[\"--model_dir\",\"s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/model\"]\u001b[0m\n", - "\u001b[34mSM_OUTPUT_INTERMEDIATE_DIR=/opt/ml/output/intermediate\u001b[0m\n", - "\u001b[34mSM_HP_MODEL_DIR=s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/model\u001b[0m\n", - "\u001b[34mPYTHONPATH=/opt/ml/code:/usr/local/bin:/usr/local/lib/python37.zip:/usr/local/lib/python3.7:/usr/local/lib/python3.7/lib-dynload:/usr/local/lib/python3.7/site-packages\n", - "\u001b[0m\n", - "\u001b[34mInvoking script with the following command:\n", - "\u001b[0m\n", - "\u001b[34mmpirun --host algo-1:8,algo-2:8 -np 16 --allow-run-as-root --tag-output --oversubscribe -mca btl_tcp_if_include eth0 -mca oob_tcp_if_include eth0 -mca plm_rsh_no_tree_spawn 1 -mca pml ob1 -mca btl ^openib -mca orte_abort_on_non_zero_status 1 -mca btl_vader_single_copy_mechanism none -mca plm_rsh_num_concurrent 2 -x NCCL_SOCKET_IFNAME=eth0 -x NCCL_DEBUG=INFO -x LD_LIBRARY_PATH -x PATH -x SMDATAPARALLEL_USE_HOMOGENEOUS=1 -x FI_PROVIDER=efa -x RDMAV_FORK_SAFE=1 -x LD_PRELOAD=/usr/local/lib/python3.7/site-packages/gethostname.cpython-37m-x86_64-linux-gnu.so -x SMDATAPARALLEL_SERVER_ADDR=algo-1 -x SMDATAPARALLEL_SERVER_PORT=7592 -x SAGEMAKER_INSTANCE_TYPE=ml.p3.16xlarge smddprun /usr/local/bin/python3.7 -m mpi4py train_tensorflow_smdataparallel_mnist.py --model_dir s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/model\n", - "\n", - "\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,8]:\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,8]:NCCL version 2.7.8+cuda11.0\u001b[0m\n", - "\u001b[34m[1,0]:\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,0]:NCCL version 2.7.8+cuda11.0\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,10]:\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,11]:\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,9]:\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,2]:\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,3]:\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,1]:\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Bootstrap : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Bootstrap : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,4]:\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,5]:\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,6]:\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,7]:\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO NET/Socket : Using [0]eth0:10.0.130.141<0>\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,12]:\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,13]:\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,14]:\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,15]:\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] find_ofi_provider:542 NCCL WARN NET/OFI Couldn't find any optimal provider\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO NET/IB : No device found.\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO NET/Socket : Using [0]eth0:10.0.175.185<0>\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Using network Socket\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Trees [0] 2/-1/-1->3->0|0->3->2/-1/-1 [1] 2/-1/-1->3->0|0->3->2/-1/-1 [2] -1/-1/-1->3->2|2->3->-1/-1/-1 [3] -1/-1/-1->3->2|2->3->-1/-1/-1 [4] 7/-1/-1->3->1|1->3->7/-1/-1 [5] 1/-1/-1->3->7|7->3->1/-1/-1 [6] 2/-1/-1->3->0|0->3->2/-1/-1 [7] 2/-1/-1->3->0|0->3->2/-1/-1 [8] -1/-1/-1->3->2|2->3->-1/-1/-1 [9] -1/-1/-1->3->2|2->3->-1/-1/-1 [10] 7/-1/-1->3->1|1->3->7/-1/-1 [11] 1/-1/-1->3->7|7->3->1/-1/-1\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Trees [0] -1/-1/-1->4->7|7->4->-1/-1/-1 [1] -1/-1/-1->4->7|7->4->-1/-1/-1 [2] 7/-1/-1->4->0|0->4->7/-1/-1 [3] 7/-1/-1->4->0|0->4->7/-1/-1 [4] 6/-1/-1->4->5|5->4->6/-1/-1 [5] 5/-1/-1->4->6|6->4->5/-1/-1 [6] -1/-1/-1->4->7|7->4->-1/-1/-1 [7] -1/-1/-1->4->7|7->4->-1/-1/-1 [8] 7/-1/-1->4->0|0->4->7/-1/-1 [9] 7/-1/-1->4->0|0->4->7/-1/-1 [10] 6/-1/-1->4->5|5->4->6/-1/-1 [11] 5/-1/-1->4->6|6->4->5/-1/-1\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Trees [0] 6/-1/-1->5->1|1->5->6/-1/-1 [1] 6/-1/-1->5->1|1->5->6/-1/-1 [2] 1/-1/-1->5->6|6->5->1/-1/-1 [3] 1/-1/-1->5->6|6->5->1/-1/-1 [4] 4/-1/-1->5->7|7->5->4/-1/-1 [5] 7/-1/-1->5->4|4->5->7/-1/-1 [6] 6/-1/-1->5->1|1->5->6/-1/-1 [7] 6/-1/-1->5->1|1->5->6/-1/-1 [8] 1/-1/-1->5->6|6->5->1/-1/-1 [9] 1/-1/-1->5->6|6->5->1/-1/-1 [10] 4/-1/-1->5->7|7->5->4/-1/-1 [11] 7/-1/-1->5->4|4->5->7/-1/-1\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Trees [0] 7/-1/-1->6->5|5->6->7/-1/-1 [1] 7/-1/-1->6->5|5->6->7/-1/-1 [2] 5/-1/-1->6->7|7->6->5/-1/-1 [3] 5/-1/-1->6->7|7->6->5/-1/-1 [4] 2/-1/-1->6->4|4->6->2/-1/-1 [5] 4/-1/-1->6->2|2->6->4/-1/-1 [6] 7/-1/-1->6->5|5->6->7/-1/-1 [7] 7/-1/-1->6->5|5->6->7/-1/-1 [8] 5/-1/-1->6->7|7->6->5/-1/-1 [9] 5/-1/-1->6->7|7->6->5/-1/-1 [10] 2/-1/-1->6->4|4->6->2/-1/-1 [11] 4/-1/-1->6->2|2->6->4/-1/-1\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 00/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 01/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 02/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 03/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Trees [0] 4/-1/-1->7->6|6->7->4/-1/-1 [1] 4/-1/-1->7->6|6->7->4/-1/-1 [2] 6/-1/-1->7->4|4->7->6/-1/-1 [3] 6/-1/-1->7->4|4->7->6/-1/-1 [4] 5/-1/-1->7->3|3->7->5/-1/-1 [5] 3/-1/-1->7->5|5->7->3/-1/-1 [6] 4/-1/-1->7->6|6->7->4/-1/-1 [7] 4/-1/-1->7->6|6->7->4/-1/-1 [8] 6/-1/-1->7->4|4->7->6/-1/-1 [9] 6/-1/-1->7->4|4->7->6/-1/-1 [10] 5/-1/-1->7->3|3->7->5/-1/-1 [11] 3/-1/-1->7->5|5->7->3/-1/-1\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Trees [0] 5/-1/-1->1->2|2->1->5/-1/-1 [1] 5/-1/-1->1->2|2->1->5/-1/-1 [2] 2/-1/-1->1->5|5->1->2/-1/-1 [3] 2/-1/-1->1->5|5->1->2/-1/-1 [4] 3/-1/-1->1->0|0->1->3/-1/-1 [5] -1/-1/-1->1->3|3->1->-1/-1/-1 [6] 5/-1/-1->1->2|2->1->5/-1/-1 [7] 5/-1/-1->1->2|2->1->5/-1/-1 [8] 2/-1/-1->1->5|5->1->2/-1/-1 [9] 2/-1/-1->1->5|5->1->2/-1/-1 [10] 3/-1/-1->1->0|0->1->3/-1/-1 [11] -1/-1/-1->1->3|3->1->-1/-1/-1\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 04/12 : 0 1 3 7 5 4 6 2\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 05/12 : 0 2 6 4 5 7 3 1\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 06/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 07/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Trees [0] 1/-1/-1->2->3|3->2->1/-1/-1 [1] 1/-1/-1->2->3|3->2->1/-1/-1 [2] 3/-1/-1->2->1|1->2->3/-1/-1 [3] 3/-1/-1->2->1|1->2->3/-1/-1 [4] -1/-1/-1->2->6|6->2->-1/-1/-1 [5] 6/-1/-1->2->0|0->2->6/-1/-1 [6] 1/-1/-1->2->3|3->2->1/-1/-1 [7] 1/-1/-1->2->3|3->2->1/-1/-1 [8] 3/-1/-1->2->1|1->2->3/-1/-1 [9] 3/-1/-1->2->1|1->2->3/-1/-1 [10] -1/-1/-1->2->6|6->2->-1/-1/-1 [11] 6/-1/-1->2->0|0->2->6/-1/-1\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 08/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 09/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 10/12 : 0 1 3 7 5 4 6 2\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 11/12 : 0 2 6 4 5 7 3 1\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Trees [0] 3/-1/-1->0->-1|-1->0->3/-1/-1 [1] 3/-1/-1->0->-1|-1->0->3/-1/-1 [2] 4/-1/-1->0->-1|-1->0->4/-1/-1 [3] 4/-1/-1->0->-1|-1->0->4/-1/-1 [4] 1/-1/-1->0->-1|-1->0->1/-1/-1 [5] 2/-1/-1->0->-1|-1->0->2/-1/-1 [6] 3/-1/-1->0->-1|-1->0->3/-1/-1 [7] 3/-1/-1->0->-1|-1->0->3/-1/-1 [8] 4/-1/-1->0->-1|-1->0->4/-1/-1 [9] 4/-1/-1->0->-1|-1->0->4/-1/-1 [10] 1/-1/-1->0->-1|-1->0->1/-1/-1 [11] 2/-1/-1->0->-1|-1->0->2/-1/-1\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 00 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 00 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 00 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 00 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 00 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 00 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 00 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 00 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 00 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 00 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 00 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 00 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 00 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 00 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Trees [0] 2/-1/-1->3->0|0->3->2/-1/-1 [1] 2/-1/-1->3->0|0->3->2/-1/-1 [2] -1/-1/-1->3->2|2->3->-1/-1/-1 [3] -1/-1/-1->3->2|2->3->-1/-1/-1 [4] 7/-1/-1->3->1|1->3->7/-1/-1 [5] 1/-1/-1->3->7|7->3->1/-1/-1 [6] 2/-1/-1->3->0|0->3->2/-1/-1 [7] 2/-1/-1->3->0|0->3->2/-1/-1 [8] -1/-1/-1->3->2|2->3->-1/-1/-1 [9] -1/-1/-1->3->2|2->3->-1/-1/-1 [10] 7/-1/-1->3->1|1->3->7/-1/-1 [11] 1/-1/-1->3->7|7->3->1/-1/-1\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 00 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Trees [0] -1/-1/-1->4->7|7->4->-1/-1/-1 [1] -1/-1/-1->4->7|7->4->-1/-1/-1 [2] 7/-1/-1->4->0|0->4->7/-1/-1 [3] 7/-1/-1->4->0|0->4->7/-1/-1 [4] 6/-1/-1->4->5|5->4->6/-1/-1 [5] 5/-1/-1->4->6|6->4->5/-1/-1 [6] -1/-1/-1->4->7|7->4->-1/-1/-1 [7] -1/-1/-1->4->7|7->4->-1/-1/-1 [8] 7/-1/-1->4->0|0->4->7/-1/-1 [9] 7/-1/-1->4->0|0->4->7/-1/-1 [10] 6/-1/-1->4->5|5->4->6/-1/-1 [11] 5/-1/-1->4->6|6->4->5/-1/-1\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Trees [0] 6/-1/-1->5->1|1->5->6/-1/-1 [1] 6/-1/-1->5->1|1->5->6/-1/-1 [2] 1/-1/-1->5->6|6->5->1/-1/-1 [3] 1/-1/-1->5->6|6->5->1/-1/-1 [4] 4/-1/-1->5->7|7->5->4/-1/-1 [5] 7/-1/-1->5->4|4->5->7/-1/-1 [6] 6/-1/-1->5->1|1->5->6/-1/-1 [7] 6/-1/-1->5->1|1->5->6/-1/-1 [8] 1/-1/-1->5->6|6->5->1/-1/-1 [9] 1/-1/-1->5->6|6->5->1/-1/-1 [10] 4/-1/-1->5->7|7->5->4/-1/-1 [11] 7/-1/-1->5->4|4->5->7/-1/-1\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Trees [0] 4/-1/-1->7->6|6->7->4/-1/-1 [1] 4/-1/-1->7->6|6->7->4/-1/-1 [2] 6/-1/-1->7->4|4->7->6/-1/-1 [3] 6/-1/-1->7->4|4->7->6/-1/-1 [4] 5/-1/-1->7->3|3->7->5/-1/-1 [5] 3/-1/-1->7->5|5->7->3/-1/-1 [6] 4/-1/-1->7->6|6->7->4/-1/-1 [7] 4/-1/-1->7->6|6->7->4/-1/-1 [8] 6/-1/-1->7->4|4->7->6/-1/-1 [9] 6/-1/-1->7->4|4->7->6/-1/-1 [10] 5/-1/-1->7->3|3->7->5/-1/-1 [11] 3/-1/-1->7->5|5->7->3/-1/-1\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Trees [0] 7/-1/-1->6->5|5->6->7/-1/-1 [1] 7/-1/-1->6->5|5->6->7/-1/-1 [2] 5/-1/-1->6->7|7->6->5/-1/-1 [3] 5/-1/-1->6->7|7->6->5/-1/-1 [4] 2/-1/-1->6->4|4->6->2/-1/-1 [5] 4/-1/-1->6->2|2->6->4/-1/-1 [6] 7/-1/-1->6->5|5->6->7/-1/-1 [7] 7/-1/-1->6->5|5->6->7/-1/-1 [8] 5/-1/-1->6->7|7->6->5/-1/-1 [9] 5/-1/-1->6->7|7->6->5/-1/-1 [10] 2/-1/-1->6->4|4->6->2/-1/-1 [11] 4/-1/-1->6->2|2->6->4/-1/-1\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 00/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 01/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 02/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 03/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Trees [0] 5/-1/-1->1->2|2->1->5/-1/-1 [1] 5/-1/-1->1->2|2->1->5/-1/-1 [2] 2/-1/-1->1->5|5->1->2/-1/-1 [3] 2/-1/-1->1->5|5->1->2/-1/-1 [4] 3/-1/-1->1->0|0->1->3/-1/-1 [5] -1/-1/-1->1->3|3->1->-1/-1/-1 [6] 5/-1/-1->1->2|2->1->5/-1/-1 [7] 5/-1/-1->1->2|2->1->5/-1/-1 [8] 2/-1/-1->1->5|5->1->2/-1/-1 [9] 2/-1/-1->1->5|5->1->2/-1/-1 [10] 3/-1/-1->1->0|0->1->3/-1/-1 [11] -1/-1/-1->1->3|3->1->-1/-1/-1\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 04/12 : 0 1 3 7 5 4 6 2\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 05/12 : 0 2 6 4 5 7 3 1\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 06/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Trees [0] 1/-1/-1->2->3|3->2->1/-1/-1 [1] 1/-1/-1->2->3|3->2->1/-1/-1 [2] 3/-1/-1->2->1|1->2->3/-1/-1 [3] 3/-1/-1->2->1|1->2->3/-1/-1 [4] -1/-1/-1->2->6|6->2->-1/-1/-1 [5] 6/-1/-1->2->0|0->2->6/-1/-1 [6] 1/-1/-1->2->3|3->2->1/-1/-1 [7] 1/-1/-1->2->3|3->2->1/-1/-1 [8] 3/-1/-1->2->1|1->2->3/-1/-1 [9] 3/-1/-1->2->1|1->2->3/-1/-1 [10] -1/-1/-1->2->6|6->2->-1/-1/-1 [11] 6/-1/-1->2->0|0->2->6/-1/-1\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 07/12 : 0 3 2 1 5 6 7 4\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 08/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 09/12 : 0 4 7 6 5 1 2 3\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 10/12 : 0 1 3 7 5 4 6 2\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 11/12 : 0 2 6 4 5 7 3 1\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO threadThresholds 8/8/64 | 64/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Trees [0] 3/-1/-1->0->-1|-1->0->3/-1/-1 [1] 3/-1/-1->0->-1|-1->0->3/-1/-1 [2] 4/-1/-1->0->-1|-1->0->4/-1/-1 [3] 4/-1/-1->0->-1|-1->0->4/-1/-1 [4] 1/-1/-1->0->-1|-1->0->1/-1/-1 [5] 2/-1/-1->0->-1|-1->0->2/-1/-1 [6] 3/-1/-1->0->-1|-1->0->3/-1/-1 [7] 3/-1/-1->0->-1|-1->0->3/-1/-1 [8] 4/-1/-1->0->-1|-1->0->4/-1/-1 [9] 4/-1/-1->0->-1|-1->0->4/-1/-1 [10] 1/-1/-1->0->-1|-1->0->1/-1/-1 [11] 2/-1/-1->0->-1|-1->0->2/-1/-1\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 01 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 00 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 01 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 00 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 00 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 00 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 00 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 00 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 00 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 00 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 01 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 01 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 01 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 01 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 01 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 01 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 01 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 00 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 01 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 01 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 01 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 01 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 01 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 00 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 01 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 00 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 00 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 00 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 00 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 00 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 02 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 02 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 01 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 01 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 02 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 02 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 02 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 02 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 02 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 01 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 02 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 01 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 01 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 01 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 01 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 01 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 02 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 02 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 01 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 02 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 02 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 02 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 01 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 01 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 02 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 02 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 01 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 01 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 01 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 01 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 03 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 03 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 02 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 03 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 02 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 03 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 02 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 03 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 03 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 02 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 03 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 03 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 02 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 02 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 02 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 02 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 03 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 03 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 02 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 02 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 03 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 03 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 03 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 03 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 03 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 02 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 02 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 02 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 02 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 02 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 04 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 04 : 0[170] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 03 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 04 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 03 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 04 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 04 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 04 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 03 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 04 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 04 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 03 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 03 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 03 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 03 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 03 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 03 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 03 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 04 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 04 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 04 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 03 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 04 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 03 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 03 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 03 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 04 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 04 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 03 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 04 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 04 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 05 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 04 : 0[170] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 05 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 05 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 04 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 05 : 0[170] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 04 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 05 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 05 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 04 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 05 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 04 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 04 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 04 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 05 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 05 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 05 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 05 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 05 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 04 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 04 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 05 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 04 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 05 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 05 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 04 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 04 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 04 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 04 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 06 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 06 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 05 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 06 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 06 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 06 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 05 : 0[170] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 05 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 05 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 06 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 06 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 05 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 06 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 05 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 05 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 05 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 06 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 06 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 06 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 06 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 05 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 05 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 06 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 06 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 06 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 05 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 05 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 05 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 05 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 05 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 07 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 07 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 07 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 06 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 06 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 07 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 07 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 07 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 07 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 07 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 06 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 06 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 06 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 06 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 06 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 06 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 07 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 07 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 07 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 07 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 06 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 06 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 07 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 07 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 07 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 06 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 06 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 06 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 06 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 06 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 08 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 08 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 08 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 08 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 07 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 08 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 07 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 08 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 08 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 07 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 07 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 08 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 07 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 07 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 07 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 07 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 08 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 08 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 08 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 08 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 07 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 08 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 07 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 08 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 07 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 08 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 07 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 07 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 07 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 07 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 09 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 09 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 09 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 08 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 09 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 09 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 08 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 09 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 09 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 08 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 08 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 09 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 08 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 08 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 08 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 08 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 09 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 09 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 09 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 09 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 08 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 09 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 09 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 08 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 09 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 08 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 08 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 08 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 08 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 10 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 08 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 10 : 0[170] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 10 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 10 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 09 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 10 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 10 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 10 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 09 : 0[170] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 10 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 09 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 09 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 09 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 09 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 10 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 09 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 09 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 10 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 10 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 10 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 10 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 10 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 09 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 10 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 09 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 09 : 4[1b0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 09 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 09 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 09 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 11 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 09 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 11 : 0[170] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 11 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 11 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 11 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 10 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 11 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 11 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 11 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 10 : 0[170] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 10 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 10 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 10 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 10 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 11 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 10 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 10 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 11 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 11 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 11 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 11 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 11 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 11 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO comm 0x55f354790400 rank 1 nranks 8 cudaDev 1 busId 180 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 10 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 10 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO comm 0x55ea7902bea0 rank 0 nranks 8 cudaDev 0 busId 170 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 10 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 10 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO comm 0x555bd27b30f0 rank 2 nranks 8 cudaDev 2 busId 190 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 10 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO comm 0x55a34a0dc190 rank 4 nranks 8 cudaDev 4 busId 1b0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO comm 0x55c773dbc960 rank 3 nranks 8 cudaDev 3 busId 1a0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO comm 0x563ef9733c80 rank 5 nranks 8 cudaDev 5 busId 1c0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 10 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO comm 0x557dc4830b40 rank 6 nranks 8 cudaDev 6 busId 1d0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 10 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO comm 0x55d228d3ba80 rank 7 nranks 8 cudaDev 7 busId 1e0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 11 : 2[190] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 11 : 0[170] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 11 : 1[180] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 11 : 3[1a0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 11 : 4[1b0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 11 : 5[1c0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 11 : 7[1e0] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 11 : 6[1d0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 11 : 1[180] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 11 : 2[190] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 11 : 3[1a0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 11 : 4[1b0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 11 : 5[1c0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 11 : 7[1e0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 11 : 6[1d0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO comm 0x56056c79cd10 rank 1 nranks 8 cudaDev 1 busId 180 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO comm 0x561abb42ba10 rank 0 nranks 8 cudaDev 0 busId 170 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO comm 0x55dc8aaa1440 rank 3 nranks 8 cudaDev 3 busId 1a0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO comm 0x560b414a63e0 rank 4 nranks 8 cudaDev 4 busId 1b0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO comm 0x55b7eabe4e10 rank 2 nranks 8 cudaDev 2 busId 190 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO comm 0x55b7b5efe120 rank 5 nranks 8 cudaDev 5 busId 1c0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO 12 coll channels, 16 p2p channels, 2 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO comm 0x56491cf25920 rank 7 nranks 8 cudaDev 7 busId 1e0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO comm 0x55f911199e80 rank 6 nranks 8 cudaDev 6 busId 1d0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Trees [0] 4/-1/-1->7->6|6->7->4/-1/-1 [1] 4/-1/-1->7->6|6->7->4/-1/-1\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 00/02 : 0 3 2 1 5 6 7 4 8 11 10 9 13 14 15 12\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 01/02 : 0 3 2 1 5 6 7 4 8 11 10 9 13 14 15 12\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Trees [0] 5/-1/-1->1->2|2->1->5/-1/-1 [1] 5/-1/-1->1->2|2->1->5/-1/-1\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Trees [0] 1/-1/-1->2->3|3->2->1/-1/-1 [1] 1/-1/-1->2->3|3->2->1/-1/-1\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Trees [0] 2/8/-1->3->0|0->3->2/8/-1 [1] 2/-1/-1->3->0|0->3->2/-1/-1\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Trees [0] 3/-1/-1->0->-1|-1->0->3/-1/-1 [1] 3/-1/-1->0->11|11->0->3/-1/-1\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Trees [0] -1/-1/-1->4->7|7->4->-1/-1/-1 [1] -1/-1/-1->4->7|7->4->-1/-1/-1\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Trees [0] 6/-1/-1->5->1|1->5->6/-1/-1 [1] 6/-1/-1->5->1|1->5->6/-1/-1\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Trees [0] 13/-1/-1->9->10|10->9->13/-1/-1 [1] 13/-1/-1->9->10|10->9->13/-1/-1\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Trees [0] 7/-1/-1->6->5|5->6->7/-1/-1 [1] 7/-1/-1->6->5|5->6->7/-1/-1\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Trees [0] 11/-1/-1->8->3|3->8->11/-1/-1 [1] 11/-1/-1->8->-1|-1->8->11/-1/-1\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Trees [0] 12/-1/-1->15->14|14->15->12/-1/-1 [1] 12/-1/-1->15->14|14->15->12/-1/-1\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Trees [0] -1/-1/-1->12->15|15->12->-1/-1/-1 [1] -1/-1/-1->12->15|15->12->-1/-1/-1\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Trees [0] 10/-1/-1->11->8|8->11->10/-1/-1 [1] 10/0/-1->11->8|8->11->10/0/-1\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Trees [0] 9/-1/-1->10->11|11->10->9/-1/-1 [1] 9/-1/-1->10->11|11->10->9/-1/-1\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Trees [0] 14/-1/-1->13->9|9->13->14/-1/-1 [1] 14/-1/-1->13->9|9->13->14/-1/-1\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/64\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Trees [0] 15/-1/-1->14->13|13->14->15/-1/-1 [1] 15/-1/-1->14->13|13->14->15/-1/-1\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 00 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 00 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 00 : 13[1c0] -> 14[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 00 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 00 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 00 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 00 : 14[1d0] -> 15[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 00 : 11[1a0] -> 10[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 00 : 15[1e0] -> 12[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 00 : 10[190] -> 9[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 00 : 9[180] -> 13[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 00 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 00 : 12[1b0] -> 0[170] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 00 : 4[1b0] -> 8[170] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 00 : 4[1b0] -> 8[170] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 00 : 12[1b0] -> 0[170] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 00 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 00 : 8[170] -> 11[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 00 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 00 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 00 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 00 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 00 : 13[1c0] -> 9[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 00 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 00 : 14[1d0] -> 13[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 00 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 00 : 10[190] -> 11[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 00 : 15[1e0] -> 14[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 00 : 9[180] -> 10[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 00 : 12[1b0] -> 15[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 00 : 11[1a0] -> 8[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 00 : 8[170] -> 3[1a0] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 00 : 8[170] -> 3[1a0] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 01 : 7[1e0] -> 4[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 00 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 01 : 2[190] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 01 : 1[180] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 01 : 5[1c0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 01 : 6[1d0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 01 : 13[1c0] -> 14[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 01 : 14[1d0] -> 15[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 01 : 10[190] -> 9[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 01 : 15[1e0] -> 12[1b0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 01 : 9[180] -> 13[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 01 : 4[1b0] -> 8[170] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 01 : 12[1b0] -> 0[170] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 01 : 11[1a0] -> 10[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 01 : 12[1b0] -> 0[170] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO Channel 01 : 7[1e0] -> 6[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO Channel 01 : 1[180] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO Channel 01 : 5[1c0] -> 1[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO Channel 01 : 6[1d0] -> 5[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 01 : 0[170] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 00 : 3[1a0] -> 8[170] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 00 : 3[1a0] -> 8[170] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,5]:algo-1:215:215 [5] NCCL INFO comm 0x563efc409e60 rank 5 nranks 16 cudaDev 5 busId 1c0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,6]:algo-1:221:221 [6] NCCL INFO comm 0x557dc7506d20 rank 6 nranks 16 cudaDev 6 busId 1d0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO Channel 01 : 13[1c0] -> 9[180] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO Channel 01 : 14[1d0] -> 13[1c0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO Channel 01 : 15[1e0] -> 14[1d0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO Channel 01 : 9[180] -> 10[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 01 : 3[1a0] -> 2[190] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO Channel 01 : 10[190] -> 11[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO Channel 01 : 12[1b0] -> 15[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,13]:algo-2:227:227 [5] NCCL INFO comm 0x55b7b8bd4300 rank 13 nranks 16 cudaDev 5 busId 1c0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,14]:algo-2:223:223 [6] NCCL INFO comm 0x55f913e70060 rank 14 nranks 16 cudaDev 6 busId 1d0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,12]:algo-2:226:226 [4] NCCL INFO comm 0x560b4417c5c0 rank 12 nranks 16 cudaDev 4 busId 1b0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,15]:algo-2:225:225 [7] NCCL INFO comm 0x56491fbfbb00 rank 15 nranks 16 cudaDev 7 busId 1e0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,9]:algo-2:231:231 [1] NCCL INFO comm 0x56056f472ef0 rank 9 nranks 16 cudaDev 1 busId 180 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO Channel 01 : 2[190] -> 3[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO Channel 01 : 3[1a0] -> 0[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,1]:algo-1:214:214 [1] NCCL INFO comm 0x55f3574665e0 rank 1 nranks 16 cudaDev 1 busId 180 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 01 : 4[1b0] -> 8[170] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO Channel 01 : 8[170] -> 11[1a0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,2]:algo-1:220:220 [2] NCCL INFO comm 0x555bd54892d0 rank 2 nranks 16 cudaDev 2 busId 190 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,3]:algo-1:222:222 [3] NCCL INFO comm 0x55c776a92b40 rank 3 nranks 16 cudaDev 3 busId 1a0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO Channel 01 : 4[1b0] -> 7[1e0] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,10]:algo-2:228:228 [2] NCCL INFO comm 0x55b7ed8baff0 rank 10 nranks 16 cudaDev 2 busId 190 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,4]:algo-1:219:219 [4] NCCL INFO comm 0x55a34cdb2370 rank 4 nranks 16 cudaDev 4 busId 1b0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,7]:algo-1:218:218 [7] NCCL INFO comm 0x55d22ba11c60 rank 7 nranks 16 cudaDev 7 busId 1e0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 01 : 0[170] -> 11[1a0] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 01 : 0[170] -> 11[1a0] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 01 : 11[1a0] -> 8[170] via P2P/IPC\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:678 [0] NCCL INFO comm 0x561abe101bf0 rank 8 nranks 16 cudaDev 0 busId 170 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO Channel 01 : 11[1a0] -> 0[170] [send] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO Channel 01 : 11[1a0] -> 0[170] [receive] via NET/Socket/0\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO NET/Socket: Using 2 threads and 8 sockets per thread\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO 2 coll channels, 2 p2p channels, 1 p2p channels per peer\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:669 [0] NCCL INFO comm 0x55ea7bd02080 rank 0 nranks 16 cudaDev 0 busId 170 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,11]:algo-2:224:224 [3] NCCL INFO comm 0x55dc8d777620 rank 11 nranks 16 cudaDev 3 busId 1a0 - Init COMPLETE\u001b[0m\n", - "\u001b[34m[1,0]:Running smdistributed.dataparallel v1.2.0\u001b[0m\n", - "\u001b[34m[1,10]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,15]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,13]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,12]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,9]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,14]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,11]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,8]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,5]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,6]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,1]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,0]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,2]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,4]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,7]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,3]:Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\u001b[0m\n", - "\u001b[34m[1,12]:#015 8192/11490434 [..............................] - ETA: 0s[1,15]:#015 8192/11490434 [..............................] - ETA: 0s[1,10]:#015[1,10]: 8192/11490434 [..............................] - ETA: 0s[1,13]:#015[1,13]: 8192/11490434 [..............................][1,13]: - ETA: 0s[1,11]:#015 8192/11490434 [..............................] - ETA: 0s[1,14]:#015 8192/11490434 [..............................][1,14]: - ETA: 0s[1,8]:#015 8192/11490434 [..............................] - ETA: 0s[1,9]:#015[1,9]: 8192/11490434 [..............................] - ETA: 0s[1,4]:#015 8192/11490434 [..............................] - ETA: 0s[1,5]:#015[1,5]: 8192/11490434 [..............................] - ETA: 0s[1,6]:#015 8192/11490434 [..............................] - ETA: 0s[1,7]:#015 8192/11490434 [..............................] - ETA: 0s[1,0]:#015 8192/11490434 [..............................][1,0]: - ETA: 0s[1,3]:#015 8192/11490434 [..............................][1,2]:#015[1,2]: 8192/11490434 [..............................] - ETA: 0s[1,3]: - ETA: 0s[1,1]:#015 8192/11490434 [..............................] - ETA: 0s[1,12]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 1073152/11490434 [=>............................] - ETA: 0s[1,10]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 729088/11490434 [>.............................] - ETA: 0s[1,13]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,15]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,15]: 540672/11490434 [>.............................] - ETA: 1s[1,13]: 1449984/11490434 [==>...........................] - ETA: 0s[1,11]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 1073152/11490434 [=>............................][1,11]: - ETA: 0s[1,14]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 516096/11490434 [>.............................] - ETA: 1s[1,8]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 1146880/11490434 [=>............................] - ETA: 0s[1,9]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 950272/11490434 [=>............................] - ETA: 0s[1,4]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 1826816/11490434 [===>..........................] - ETA: 0s[1,5]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 2883584/11490434 [======>.......................] - ETA: 0s[1,6]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 2613248/11490434 [=====>........................] - ETA: 0s[1,7]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 786432/11490434 [=>............................] - ETA: 0s[1,0]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 901120/11490434 [=>............................] - ETA: 0s[1,2]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,2]: 1769472/11490434 [===>..........................][1,2]: - ETA: 0s[1,3]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,3]: 761856/11490434 [>.............................][1,3]: - ETA: 0s[1,1]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 548864/11490434 [>.............................][1,1]: - ETA: 1s[1,3]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 3833856/11490434 [=========>....................] - ETA: 0s[1,0]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,7]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,6]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,6]: 4202496/11490434 [=========>....................] - ETA: 0s[1,2]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,1]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,1]: 4202496/11490434 [=========>....................][1,1]: - ETA: 0s[1,5]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,4]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,4]: 4202496/11490434 [=========>....................] - ETA: 0s[1,11]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,11]: 4202496/11490434 [=========>....................] - ETA: 0s[1,15]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,12]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,14]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,14]: 4202496/11490434 [=========>....................] - ETA: 0s[1,9]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,9]: 4202496/11490434 [=========>....................][1,9]: - ETA: 0s[1,3]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 6201344/11490434 [===============>..............] - ETA: 0s[1,13]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,10]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,13]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,13]:11493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,12]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,7]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 8396800/11490434 [====================>.........] - ETA: 0s[1,6]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,6]: 8396800/11490434 [====================>.........][1,6]: - ETA: 0s[1,4]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,4]:10911744/11490434 [===========================>..] - ETA: 0s[1,15]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,10]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,11]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,11]: 6537216/11490434 [================>.............] - ETA: 0s[1,4]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,14]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01510240000/11490434 [=========================>....] - ETA: 0s[1,9]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 6979584/11490434 [=================>............] - ETA: 0s[1,3]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 8396800/11490434 [====================>.........] - ETA: 0s[1,1]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 8396800/11490434 [====================>.........] - ETA: 0s[1,0]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 8396800/11490434 [====================>.........][1,2]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 8396800/11490434 [====================>.........] - ETA: 0s[1,5]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 8396800/11490434 [====================>.........] - ETA: 0s[1,0]: - ETA: 0s[1,8]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015 4202496/11490434 [=========>....................] - ETA: 0s[1,14]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,7]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,5]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,6]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,0]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,0]:11493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,3]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,1]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,2]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,8]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,11]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#015[1,11]:11493376/11490434 [==============================][1,11]: - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,9]:#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#010#01511493376/11490434 [==============================] - 0s 0us/step\u001b[0m\n", - "\u001b[34m[1,15]:[2021-05-29 00:01:14.049 algo-2:225 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,8]:[2021-05-29 00:01:14.049 algo-2:678 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,10]:[2021-05-29 00:01:14.049 algo-2:228 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,12]:[2021-05-29 00:01:14.049 algo-2:226 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,11]:[2021-05-29 00:01:14.049 algo-2:224 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,14]:[2021-05-29 00:01:14.049 algo-2:223 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,13]:[2021-05-29 00:01:14.049 algo-2:227 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,9]:[2021-05-29 00:01:14.049 algo-2:231 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,13]:[2021-05-29 00:01:14.128 algo-2:227 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,15]:[2021-05-29 00:01:14.128 algo-2:225 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,8]:[2021-05-29 00:01:14.128 algo-2:678 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,10]:[2021-05-29 00:01:14.128 algo-2:228 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,12]:[2021-05-29 00:01:14.128 algo-2:226 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,11]:[2021-05-29 00:01:14.128 algo-2:224 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,14]:[2021-05-29 00:01:14.128 algo-2:223 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,9]:[2021-05-29 00:01:14.128 algo-2:231 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,13]:[2021-05-29 00:01:14.129 algo-2:227 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,9]:[2021-05-29 00:01:14.129 algo-2:231 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,14]:[2021-05-29 00:01:14.129 algo-2:223 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,8]:[2021-05-29 00:01:14.129 algo-2:678 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,10]:[2021-05-29 00:01:14.129 algo-2:228 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,12]:[2021-05-29 00:01:14.129 algo-2:226 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,11]:[2021-05-29 00:01:14.129 algo-2:224 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,15]:[2021-05-29 00:01:14.129 algo-2:225 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,9]:[2021-05-29 00:01:14.130 algo-2:231 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,13]:[2021-05-29 00:01:14.130 algo-2:227 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,11]:[2021-05-29 00:01:14.130 algo-2:224 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,14]:[2021-05-29 00:01:14.130 algo-2:223 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,10]:[2021-05-29 00:01:14.130 algo-2:228 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,12]:[2021-05-29 00:01:14.130 algo-2:226 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,15]:[2021-05-29 00:01:14.130 algo-2:225 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,8]:[2021-05-29 00:01:14.130 algo-2:678 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,12]:[2021-05-29 00:01:14.133 algo-2:226 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,15]:[2021-05-29 00:01:14.133 algo-2:225 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,8]:[2021-05-29 00:01:14.133 algo-2:678 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,11]:[2021-05-29 00:01:14.133 algo-2:224 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,14]:[2021-05-29 00:01:14.133 algo-2:223 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,15]:[2021-05-29 00:01:14.133 algo-2:225 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,9]:[2021-05-29 00:01:14.133 algo-2:231 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,13]:[2021-05-29 00:01:14.133 algo-2:227 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,8]:[2021-05-29 00:01:14.133 algo-2:678 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,12]:[2021-05-29 00:01:14.133 algo-2:226 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,11]:[2021-05-29 00:01:14.133 algo-2:224 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,10]:[2021-05-29 00:01:14.133 algo-2:228 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,14]:[2021-05-29 00:01:14.133 algo-2:223 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,9]:[2021-05-29 00:01:14.133 algo-2:231 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,13]:[2021-05-29 00:01:14.133 algo-2:227 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,10]:[2021-05-29 00:01:14.133 algo-2:228 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,12]:[2021-05-29 00:01:14.133 algo-2:226 INFO hook.py:413] Monitoring the collections: sm_metrics, metrics, losses\u001b[0m\n", - "\u001b[34m[1,15]:[2021-05-29 00:01:14.133 algo-2:225 INFO hook.py:413] Monitoring the collections: metrics, sm_metrics, losses\u001b[0m\n", - "\u001b[34m[1,8]:[2021-05-29 00:01:14.133 algo-2:678 INFO hook.py:413] Monitoring the collections: sm_metrics, metrics, losses\u001b[0m\n", - "\u001b[34m[1,11]:[2021-05-29 00:01:14.133 algo-2:224 INFO hook.py:413] Monitoring the collections: sm_metrics, losses, metrics\u001b[0m\n", - "\u001b[34m[1,13]:[2021-05-29 00:01:14.133 algo-2:227 INFO hook.py:413] Monitoring the collections: losses, sm_metrics, metrics\u001b[0m\n", - "\u001b[34m[1,14]:[2021-05-29 00:01:14.133 algo-2:223 INFO hook.py:413] Monitoring the collections: metrics, losses, sm_metrics\u001b[0m\n", - "\u001b[34m[1,9]:[2021-05-29 00:01:14.133 algo-2:231 INFO hook.py:413] Monitoring the collections: metrics, sm_metrics, losses\u001b[0m\n", - "\u001b[34m[1,10]:[2021-05-29 00:01:14.133 algo-2:228 INFO hook.py:413] Monitoring the collections: sm_metrics, metrics, losses\u001b[0m\n", - "\u001b[34m[1,6]:[2021-05-29 00:01:14.146 algo-1:221 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,3]:[2021-05-29 00:01:14.146 algo-1:222 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,4]:[2021-05-29 00:01:14.146 algo-1:219 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,5]:[2021-05-29 00:01:14.146 algo-1:215 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,7]:[2021-05-29 00:01:14.146 algo-1:218 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,0]:[2021-05-29 00:01:14.146 algo-1:669 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,1]:[2021-05-29 00:01:14.146 algo-1:214 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,2]:[2021-05-29 00:01:14.146 algo-1:220 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\u001b[0m\n", - "\u001b[34m[1,1]:[2021-05-29 00:01:14.235 algo-1:214 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,6]:[2021-05-29 00:01:14.235 algo-1:221 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,3]:[2021-05-29 00:01:14.235 algo-1:222 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,4]:[2021-05-29 00:01:14.235 algo-1:219 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,5]:[2021-05-29 00:01:14.235 algo-1:215 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,7]:[2021-05-29 00:01:14.235 algo-1:218 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,0]:[2021-05-29 00:01:14.235 algo-1:669 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,2]:[2021-05-29 00:01:14.235 algo-1:220 INFO profiler_config_parser.py:102] User has disabled profiler.\u001b[0m\n", - "\u001b[34m[1,0]:[2021-05-29 00:01:14.236 algo-1:669 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,1]:[2021-05-29 00:01:14.236 algo-1:214 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,6]:[2021-05-29 00:01:14.236 algo-1:221 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,3]:[2021-05-29 00:01:14.236 algo-1:222 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,4]:[2021-05-29 00:01:14.236 algo-1:219 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,5]:[2021-05-29 00:01:14.236 algo-1:215 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,7]:[2021-05-29 00:01:14.236 algo-1:218 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,2]:[2021-05-29 00:01:14.236 algo-1:220 INFO json_config.py:91] Creating hook from json_config at /opt/ml/input/config/debughookconfig.json.\u001b[0m\n", - "\u001b[34m[1,0]:[2021-05-29 00:01:14.237 algo-1:669 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,1]:[2021-05-29 00:01:14.237 algo-1:214 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,6]:[2021-05-29 00:01:14.237 algo-1:221 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,4]:[2021-05-29 00:01:14.237 algo-1:219 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,5]:[2021-05-29 00:01:14.237 algo-1:215 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,2]:[2021-05-29 00:01:14.237 algo-1:220 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,7]:[2021-05-29 00:01:14.237 algo-1:218 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,3]:[2021-05-29 00:01:14.237 algo-1:222 INFO hook.py:199] tensorboard_dir has not been set for the hook. SMDebug will not be exporting tensorboard summaries.\u001b[0m\n", - "\u001b[34m[1,1]:[2021-05-29 00:01:14.241 algo-1:214 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,7]:[2021-05-29 00:01:14.241 algo-1:218 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,6]:[2021-05-29 00:01:14.241 algo-1:221 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,4]:[2021-05-29 00:01:14.241 algo-1:219 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,5]:[2021-05-29 00:01:14.241 algo-1:215 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,3]:[2021-05-29 00:01:14.241 algo-1:222 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,4]:[2021-05-29 00:01:14.241 algo-1:219 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,0]:[2021-05-29 00:01:14.241 algo-1:669 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,1]:[2021-05-29 00:01:14.241 algo-1:214 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,7]:[2021-05-29 00:01:14.241 algo-1:218 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,6]:[2021-05-29 00:01:14.241 algo-1:221 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,2]:[2021-05-29 00:01:14.241 algo-1:220 INFO hook.py:253] Saving to /opt/ml/output/tensors\u001b[0m\n", - "\u001b[34m[1,5]:[2021-05-29 00:01:14.241 algo-1:215 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,3]:[2021-05-29 00:01:14.241 algo-1:222 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,0]:[2021-05-29 00:01:14.241 algo-1:669 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,2]:[2021-05-29 00:01:14.241 algo-1:220 INFO state_store.py:77] The checkpoint config file /opt/ml/input/config/checkpointconfig.json does not exist.\u001b[0m\n", - "\u001b[34m[1,4]:[2021-05-29 00:01:14.242 algo-1:219 INFO hook.py:413] Monitoring the collections: losses, metrics, sm_metrics\u001b[0m\n", - "\u001b[34m[1,7]:[2021-05-29 00:01:14.242 algo-1:218 INFO hook.py:413] Monitoring the collections: losses, sm_metrics, metrics\u001b[0m\n", - "\u001b[34m[1,6]:[2021-05-29 00:01:14.242 algo-1:221 INFO hook.py:413] Monitoring the collections: sm_metrics, metrics, losses\u001b[0m\n", - "\u001b[34m[1,1]:[2021-05-29 00:01:14.242 algo-1:214 INFO hook.py:413] Monitoring the collections: losses, metrics, sm_metrics\u001b[0m\n", - "\u001b[34m[1,5]:[2021-05-29 00:01:14.242 algo-1:215 INFO hook.py:413] Monitoring the collections: sm_metrics, metrics, losses\u001b[0m\n", - "\u001b[34m[1,0]:[2021-05-29 00:01:14.242 algo-1:669 INFO hook.py:413] Monitoring the collections: metrics, sm_metrics, losses\u001b[0m\n", - "\u001b[34m[1,3]:[2021-05-29 00:01:14.242 algo-1:222 INFO hook.py:413] Monitoring the collections: metrics, sm_metrics, losses\u001b[0m\n", - "\u001b[34m[1,2]:[2021-05-29 00:01:14.242 algo-1:220 INFO hook.py:413] Monitoring the collections: sm_metrics, metrics, losses\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:1465 [0] NCCL INFO Launch mode Parallel\u001b[0m\n", - "\u001b[34m[1,0]:Step #0#011Loss: 2.306592\u001b[0m\n", - "\u001b[34m[1,0]:algo-1:669:1457 [0] NCCL INFO Launch mode Parallel\u001b[0m\n", - "\u001b[34m[1,8]:algo-2:678:1454 [0] NCCL INFO Launch mode Parallel\u001b[0m\n", - "\u001b[34m[1,0]:Step #50#011Loss: 0.269254\u001b[0m\n", - "\u001b[34m[1,0]:Step #100#011Loss: 0.248688\u001b[0m\n", - "\u001b[34m[1,0]:Step #150#011Loss: 0.144664\u001b[0m\n", - "\u001b[34m[1,0]:Step #200#011Loss: 0.219410\u001b[0m\n", - "\u001b[34m[1,0]:Step #250#011Loss: 0.116688\u001b[0m\n", - "\u001b[34m[1,0]:Step #300#011Loss: 0.104166\u001b[0m\n", - "\u001b[34m[1,0]:Step #350#011Loss: 0.056800\u001b[0m\n", - "\u001b[34m[1,0]:Step #400#011Loss: 0.191574\u001b[0m\n", - "\u001b[34m[1,0]:Step #450#011Loss: 0.105225\u001b[0m\n", - "\u001b[34m[1,0]:Step #500#011Loss: 0.163396\u001b[0m\n", - "\u001b[34m[1,0]:Step #550#011Loss: 0.066595\u001b[0m\n", - "\u001b[34m[1,0]:Step #600#011Loss: 0.100547\u001b[0m\n", - "\u001b[35m2021-05-29 00:01:39,084 sagemaker-training-toolkit INFO Orted process exited\u001b[0m\n", - "\u001b[34mWarning: Permanently added 'algo-2,10.0.175.185' (ECDSA) to the list of known hosts.#015\u001b[0m\n", - "\u001b[34m[1,11]:2021-05-29 00:01:02.688131: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,12]:2021-05-29 00:01:02.688116: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,14]:2021-05-29 00:01:02.688121: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,15]:2021-05-29 00:01:02.688117: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,14]:2021-05-29 00:01:02.688288: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,11]:2021-05-29 00:01:02.688288: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,12]:2021-05-29 00:01:02.688288: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,15]:2021-05-29 00:01:02.688288: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,10]:2021-05-29 00:01:02.708510: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,10]:2021-05-29 00:01:02.708701: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,9]:2021-05-29 00:01:02.708740: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,9]:2021-05-29 00:01:02.708899: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,13]:2021-05-29 00:01:02.712251: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,13]:2021-05-29 00:01:02.712431: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,15]:2021-05-29 00:01:02.728492: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,14]:2021-05-29 00:01:02.728993: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,12]:2021-05-29 00:01:02.729164: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,11]:2021-05-29 00:01:02.729588: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,10]:2021-05-29 00:01:02.748637: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,9]:2021-05-29 00:01:02.748923: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,13]:2021-05-29 00:01:02.754496: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,1]:2021-05-29 00:01:02.825521: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,4]:2021-05-29 00:01:02.825515: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,5]:2021-05-29 00:01:02.825527: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,7]:2021-05-29 00:01:02.825520: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,5]:2021-05-29 00:01:02.825707: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,1]:2021-05-29 00:01:02.825707: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,4]:2021-05-29 00:01:02.825707: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,7]:2021-05-29 00:01:02.825707: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,2]:2021-05-29 00:01:02.846439: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,2]:2021-05-29 00:01:02.846661: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,3]:2021-05-29 00:01:02.851308: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,6]:2021-05-29 00:01:02.851307: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,3]:2021-05-29 00:01:02.851509: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,6]:2021-05-29 00:01:02.851509: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,7]:2021-05-29 00:01:02.866095: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,5]:2021-05-29 00:01:02.866095: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,4]:2021-05-29 00:01:02.866619: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,1]:2021-05-29 00:01:02.866746: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,2]:2021-05-29 00:01:02.888026: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,6]:2021-05-29 00:01:02.892022: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,3]:2021-05-29 00:01:02.892022: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,8]:2021-05-29 00:01:03.154460: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,8]:2021-05-29 00:01:03.154627: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,8]:2021-05-29 00:01:03.195015: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,0]:2021-05-29 00:01:03.285532: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,0]:2021-05-29 00:01:03.285795: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:105] SageMaker Profiler is not enabled. The timeline writer thread will not be started, future recorded events will be dropped.\u001b[0m\n", - "\u001b[34m[1,0]:2021-05-29 00:01:03.328978: W tensorflow/core/profiler/internal/smprofiler_timeline.cc:460] Initializing the SageMaker Profiler.\u001b[0m\n", - "\u001b[34m[1,0]:2021-05-29 00:01:34.603259: W tensorflow/python/util/util.cc:348] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.\u001b[0m\n", - "\u001b[34m[1,0]:INFO:tensorflow:Assets written to: /opt/ml/model/1/assets\u001b[0m\n", - "\u001b[34m[1,0]:INFO:tensorflow:Assets written to: /opt/ml/model/1/assets\n", - "\u001b[0m\n", - "\u001b[34m2021-05-29 00:01:39,083 sagemaker-training-toolkit INFO Reporting training SUCCESS\u001b[0m\n", - "\u001b[35m2021-05-29 00:02:09,114 sagemaker-training-toolkit INFO MPI process finished.\u001b[0m\n", - "\u001b[35m2021-05-29 00:02:09,115 sagemaker_tensorflow_container.training WARNING No model artifact is saved under path /opt/ml/model. Your training job will not save any model files to S3.\u001b[0m\n", - "\u001b[35mFor details of how to construct your training script see:\u001b[0m\n", - "\u001b[35mhttps://sagemaker.readthedocs.io/en/stable/using_tf.html#adapting-your-local-tensorflow-script\u001b[0m\n", - "\u001b[35m2021-05-29 00:02:09,115 sagemaker-training-toolkit INFO Reporting training SUCCESS\u001b[0m\n", - "\n", - "2021-05-29 00:02:38 Uploading - Uploading generated training model\n", - "2021-05-29 00:02:38 Completed - Training job completed\n", - "ProfilerReport-1622246073: NoIssuesFound\n", - "Training seconds: 536\n", - "Billable seconds: 536\n" - ] - } - ], + "outputs": [], "source": [ "estimator.fit()" ] @@ -1258,18 +161,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Storing s3://sagemaker-us-west-2-688520471316/tensorflow2-smdataparallel-mnist-2021-05-28-23-54-33-230/output/model.tar.gz as model_data\n", - "Stored 'model_data' (str)\n" - ] - } - ], + "outputs": [], "source": [ "model_data = estimator.model_data\n", "print(\"Storing {} as model_data\".format(model_data))\n", @@ -1278,46 +172,54 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "update_endpoint is a no-op in sagemaker>=2.\n", - "See: https://sagemaker.readthedocs.io/en/stable/v2.html for details.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "----!" - ] - } - ], + "outputs": [], "source": [ "predictor = estimator.deploy(initial_instance_count=1, instance_type=\"ml.m4.xlarge\")" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "tensorflow2-smdataparallel-mnist-2021-05-29-00-02-50-266\n" - ] - } - ], + "outputs": [], "source": [ "print(predictor.endpoint_name)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "import numpy as np\n", + "\n", + "(mnist_images, mnist_labels), _ = tf.keras.datasets.mnist.load_data(path=\"/tmp/data\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(10):\n", + " data = mnist_images[i].reshape(1, 28, 28, 1)\n", + "\n", + " predict_response = predictor.predict(data)\n", + "\n", + " print(\"========================================\")\n", + " label = mnist_labels[i]\n", + "\n", + " predict_label = np.argmax(predict_response[\"predictions\"])\n", + "\n", + " print(\"label is {}\".format(label))\n", + " print(\"prediction is {}\".format(predict_label))" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1329,19 +231,27 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "predictor.delete_endpoint()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { + "instance_type": "ml.t3.medium", "kernelspec": { - "display_name": "Environment (conda_tensorflow_p36)", + "display_name": "Python 3 (TensorFlow 2.1 Python 3.6 CPU Optimized)", "language": "python", - "name": "conda_tensorflow_p36" + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-east-1:081325390199:image/tensorflow-2.1-cpu-py36" }, "language_info": { "codemirror_mode": { @@ -1353,7 +263,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.10" + "version": "3.6.13" } }, "nbformat": 4, diff --git a/use-cases/index.rst b/use-cases/index.rst index 06d06d0be8..9ab084bbf6 100644 --- a/use-cases/index.rst +++ b/use-cases/index.rst @@ -33,7 +33,7 @@ E-Commerce Personalization Computer Vision for Medical Imaging --------------------------- +----------------------------------- .. toctree:: :maxdepth: 1 @@ -42,3 +42,12 @@ Computer Vision for Medical Imaging computer_vision/2-metastases-detection-lineage-registry computer_vision/3-metastases-detection-deploy-predict computer_vision/4-metastases-detection-pipeline + + +Pipelines with NLP for Product Rating Prediction +------------------------------------------------ + +.. toctree:: + :maxdepth: 1 + + product_ratings_with_pipelines/pipelines_product_ratings diff --git a/use-cases/product_ratings_with_pipelines/README.md b/use-cases/product_ratings_with_pipelines/README.md new file mode 100644 index 0000000000..fdd87e4b6a --- /dev/null +++ b/use-cases/product_ratings_with_pipelines/README.md @@ -0,0 +1,40 @@ +# Amazon SageMaker Pipelines +## Training and deploying a text classification model using Amazon SageMaker Pipelines + +## Contents +1. [Background](#Background) +2. [Prerequisites](#Prereqs) +3. [Data](#Data) +4. [Approach](#Approach) +5. [Other Resources](#Other-Resources) + +--- + +# Background + +Amazon SageMaker Pipelines makes it easy for data scientists and engineers to build, automate, and scale end-to-end machine learning workflows. Machine learning workflows are complex, requiring iteration and experimentation across each step of the machine learning process, such as exploring and preparing data, experimenting with different algorithms, training and turning models, and deploying models to production. Developing and managing these workflows can take weeks or months of coding and manually managing workflow dependencies can become complex. With Amazon SageMaker Pipelines, data science teams have an easy-to-use continuous integration and continuous delivery (CI/CD) service that simplifies the development and management of machine learning workflows at scale. + +In this notebook we use SageMaker Pipelines to train and deploy a text classification model to predict e-commerce product ratings based on customers’ product reviews. We’ll use BlazingText, a SageMaker built-in algorithm, to minimize the amount of effort required to train and deploy the model. BlazingText provides highly optimized implementations of Word2vec and text classification algorithms. + +# Prereqs + +You will need an AWS account to use this solution. Sign up for an [account](https://aws.amazon.com/) before you proceed. + +You will also need to have permission to use [Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio.html). All AWS permissions can be managed through [AWS IAM](https://aws.amazon.com/iam/). Admin users will have the required permissions, but please contact your account's AWS administrator if your user account doesn't have the required permissions. + +# Data + +To train the model, we’ll use a sample of data containing e-commerce reviews and associated product ratings. Our pipeline will start with processing the data for model training and will proceed with model training, evaluation, registry and deployment. The Women’s E-Commerce Clothing Clothing Reviews dataset has been made available under a Creative Commons license. A copy of the dataset has been saved in a sample data Amazon S3 bucket. In the first section of the notebook, we’ll walk through how to download the data and get started with building the ML workflow as a SageMaker pipeline. + +# Approach + +Our ML workflow will be built in the following SageMaker pipeline steps: +* Data processing step - in this step we use a scikit-learn processor to process the training data by cleaning up the review text (eg. remove punctuation and convert to lower case), rebalancing the dataset, creating review categories and generating the training, testing and validation datasets +* Model training step - in this step we create a SageMaker estimator and specify model training hyperparameters and the location of training and validation data +* Create model step - in the create model step we pass the model data from the training step +* Deploy model step - the deploy model step uses a scikit-learn processor to deploy the trained model +* Register model step - in the final model step we submit the trained model to the model registry. We can optionally configure this step to require manual approval before submission. + +# Other Resources + +For additional SageMaker Pipelines examples, see [Orchestrating Jobs with Amazon SageMaker Model Building Pipelines](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-pipelines/tabular/abalone_build_train_deploy/sagemaker-pipelines-preprocess-train-evaluate-batch-transform.html) or the related [GitHub repo](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-pipelines). \ No newline at end of file diff --git a/use-cases/product_ratings_with_pipelines/code/deploy_model.py b/use-cases/product_ratings_with_pipelines/code/deploy_model.py new file mode 100644 index 0000000000..e558253458 --- /dev/null +++ b/use-cases/product_ratings_with_pipelines/code/deploy_model.py @@ -0,0 +1,56 @@ + +import time +from datetime import datetime +import boto3 +import argparse + + +# Parse argument variables passed via the DeployModel processing step +parser = argparse.ArgumentParser() +parser.add_argument('--model-name', type=str) +parser.add_argument('--region', type=str) +parser.add_argument('--endpoint-instance-type', type=str) +parser.add_argument('--endpoint-name', type=str) +args = parser.parse_args() + +region = args.region +boto3.setup_default_session(region_name=region) +sagemaker_boto_client = boto3.client('sagemaker') + +# truncate name per sagameker length requirememnts (63 char max) if necessary +endpoint_config_name = f'{args.endpoint_name}-config-{datetime.now().strftime("%Y%m%d-%H%M%S")}' + +# create new endpoint config file +create_ep_config_response = sagemaker_boto_client.create_endpoint_config( + EndpointConfigName=endpoint_config_name, + ProductionVariants=[{ + 'InstanceType': args.endpoint_instance_type, + 'InitialVariantWeight': 1, + 'InitialInstanceCount': 1, + 'ModelName': args.model_name, + 'VariantName': 'AllTraffic' + }]) + +print("ModelName: {}".format(args.model_name)) + +# create endpoint if model endpoint does not already exist, otherwise update the endpoint +try: + create_endpoint_response = sagemaker_boto_client.create_endpoint( + EndpointName=args.endpoint_name, + EndpointConfigName=endpoint_config_name + ) +except: + create_endpoint_response = sagemaker_boto_client.update_endpoint( + EndpointName=args.endpoint_name, + EndpointConfigName=endpoint_config_name + ) + +endpoint_info = sagemaker_boto_client.describe_endpoint(EndpointName=args.endpoint_name) +endpoint_status = endpoint_info['EndpointStatus'] + +while endpoint_status != 'InService': + endpoint_info = sagemaker_boto_client.describe_endpoint(EndpointName=args.endpoint_name) + endpoint_status = endpoint_info['EndpointStatus'] + print('Endpoint status:', endpoint_status) + if endpoint_status != 'InService': + time.sleep(30) diff --git a/use-cases/product_ratings_with_pipelines/code/preprocessing.py b/use-cases/product_ratings_with_pipelines/code/preprocessing.py new file mode 100644 index 0000000000..11f90ee940 --- /dev/null +++ b/use-cases/product_ratings_with_pipelines/code/preprocessing.py @@ -0,0 +1,53 @@ + +import numpy as np +import pandas as pd +import string +from sklearn.utils import resample + +base_dir = "/opt/ml/processing" + +df = pd.read_csv( f"{base_dir}/input/Womens Clothing E-Commerce Reviews.csv") +df = df[df['Review Text'].notna()] # drop rows where Review text is missing + +def process_review(text): + punctuation = string.punctuation + review = text.lower() + review = review.replace("\r\n", " ").replace("\n\n", " ") + translator = str.maketrans("","", punctuation) + review = review.translate(translator) + return review + +# create columns for concat reviews and new labels +df['Complete_Review'] = df['Title'] + ' ' + df['Review Text'] +df = df[df['Complete_Review'].notna()] # drop rows where review text is missing +df['Label'] = df['Rating'].map({1:'negative',2:'negative',3:'none',4:'none',5:'positive'}) +df = df.loc[df['Label'].isin(['negative','positive'])] # only use positive and negative reviews +df['Review'] = df['Complete_Review'].astype(str).apply(process_review) +df['Processed'] = '__label__' + df['Label'].astype(str) + ' ' + df['Review'] + +# create train:test split +train, validation, test = np.split(df, [int(0.7 * len(df)), int(0.85 * len(df))]) + +# deal with unbalanced classes +# only include resampling for training set so no data leakeage for validation sets +positive = train.loc[train['Label']=='positive'] +negative = train.loc[train['Label']=='negative'] + +# oversample the minority classes +negative_oversample = resample(negative, replace=True, n_samples=len(positive)) + +# remake training set using balanced class camples +train = pd.concat([positive,negative_oversample]) + +# create Series datasets for BlazingText format +train = train['Processed'] +validation = validation['Processed'] +test = test['Processed'] + +# save datasets +pd.DataFrame(train).to_csv(f"{base_dir}/train/train.csv", header=False, index=False) +pd.DataFrame(validation).to_csv(f"{base_dir}/validation/validation.csv", header=False, index=False) +pd.DataFrame(test).to_csv(f"{base_dir}/test/test.csv", header=False, index=False) + +print(f"Number of reviews in the training dataset: {train.shape[0]}") +print(f"Number of reviews in the validation set: {validation.shape[0]}") diff --git a/use-cases/product_ratings_with_pipelines/pipelines_product_ratings.ipynb b/use-cases/product_ratings_with_pipelines/pipelines_product_ratings.ipynb new file mode 100644 index 0000000000..3caae986c0 --- /dev/null +++ b/use-cases/product_ratings_with_pipelines/pipelines_product_ratings.ipynb @@ -0,0 +1,1001 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Training and Deploying a Text Classification model using Amazon SageMaker Pipelines" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Background\n", + "\n", + "[Amazon SageMaker Pipelines](https://aws.amazon.com/sagemaker/pipelines/) makes it easy for data scientists and engineers to build, automate, and scale end-to-end machine learning workflows. Machine learning workflows are complex, requiring iteration and experimentation across each step of the machine learning process, such as exploring and preparing data, experimenting with different algorithms, training and turning models, and deploying models to production. Developing and managing these workflows can take weeks or months of coding and manually managing workflow dependencies can become complex. With Amazon SageMaker Pipelines, data science teams have an easy-to-use continuous integration and continuous delivery (CI/CD) service that simplifies the development and management of machine learning workflows at scale.\n", + "\n", + "In this notebook, we use SageMaker Pipelines to train and deploy a text classification model to predict e-commerce product ratings based on customers’ product reviews. We’ll use BlazingText, one of the SageMaker [built-in algorithms](https://docs.aws.amazon.com/sagemaker/latest/dg/algorithms-choose.html#built-in-algorithms-benefits), to minimize the amount of effort required to train and deploy the model. [BlazingText](https://docs.aws.amazon.com/sagemaker/latest/dg/blazingtext.html) provides highly optimized implementations of Word2vec and text classification algorithms.\n", + "\n", + "To train the model, we’ll use a sample of data containing e-commerce reviews and associated product ratings. This data has been generated by customers that have rated products on a scale between 1 (worst) and 5 (best), and have left a short review. Our pipeline will start with processing the data for model training and will proceed with model training, evaluation, registry and deployment. The [Women’s E-Commerce Clothing Reviews](https://www.kaggle.com/nicapotato/womens-ecommerce-clothing-reviews/) dataset has been made available under a [Creative Commons license](https://creativecommons.org/publicdomain/zero/1.0/). A copy of the dataset has been saved in a sample data Amazon S3 bucket. In the first section of the notebook, we’ll walk through how to download the data and get started with building the ML workflow as a SageMaker pipeline.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Contents\n", + "\n", + "- [Project setup](#setup)\n", + " - [Set up SageMaker environment](#environment)\n", + " - [Obtain training data](#obtain-data)\n", + "- [Step 0: Prepare pipeline parameters](#pipeline-parameters)\n", + "- [Step 1: Create dataset and train/test split](#dataset-train-test)\n", + "- [Step 2: Train text classification model using BlazingText](#train-model)\n", + "- [Step 3: Model creation](#create-model)\n", + "- [Step 4: Deploy model](#deploy-model)\n", + "- [Step 5: Register model](#register-model)\n", + "- [Step 6: Create pipeline](#create-pipeline)\n", + "- [Use deployed model to return predictions](#return-predictions)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Project setup\n", + "\n", + "In this section, we'll install some necessary packages, set parameters that we can use in the pipeline and download the training data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Set up SageMaker environment\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#install necessary packages\n", + "import boto3\n", + "import pandas as pd\n", + "import numpy as np\n", + "import sagemaker\n", + "print(f'SageMaker version: {sagemaker.__version__}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#import necessary execution role so that you can read from S3 buckets\n", + "role = sagemaker.get_execution_role()\n", + "\n", + "#source default session parameters (region, default S3 bucket etc)\n", + "region = boto3.Session().region_name\n", + "sagemaker_session = sagemaker.Session()\n", + "s3_client = boto3.client('s3', region_name=region)\n", + "sagemaker_client = boto3.client(\"sagemaker-runtime\")\n", + "default_bucket = sagemaker_session.default_bucket()\n", + "prefix = 'sagemaker-pipelines-nlp-demo'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Obtain training data\n", + "\n", + "To get started, we'll download the training data from a public S3 bucket and then upload the data to our own S3 bucket." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!mkdir -p data\n", + "!wget https://sagemaker-sample-files.s3.amazonaws.com/datasets/tabular/womens_clothing_ecommerce/Womens_Clothing_E-Commerce_Reviews.csv -O 'data/Womens Clothing E-Commerce Reviews.csv'\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Clothing IDAgeTitleReview TextRatingRecommended INDPositive Feedback CountDivision NameDepartment NameClass Name
076733NaNAbsolutely wonderful - silky and sexy and comf...410InitmatesIntimateIntimates
1108034NaNLove this dress! it's sooo pretty. i happene...514GeneralDressesDresses
2107760Some major design flawsI had such high hopes for this dress and reall...300GeneralDressesDresses
3104950My favorite buy!I love, love, love this jumpsuit. it's fun, fl...510General PetiteBottomsPants
484747Flattering shirtThis shirt is very flattering to all due to th...516GeneralTopsBlouses
\n", + "
" + ], + "text/plain": [ + " Clothing ID Age Title \\\n", + "0 767 33 NaN \n", + "1 1080 34 NaN \n", + "2 1077 60 Some major design flaws \n", + "3 1049 50 My favorite buy! \n", + "4 847 47 Flattering shirt \n", + "\n", + " Review Text Rating Recommended IND \\\n", + "0 Absolutely wonderful - silky and sexy and comf... 4 1 \n", + "1 Love this dress! it's sooo pretty. i happene... 5 1 \n", + "2 I had such high hopes for this dress and reall... 3 0 \n", + "3 I love, love, love this jumpsuit. it's fun, fl... 5 1 \n", + "4 This shirt is very flattering to all due to th... 5 1 \n", + "\n", + " Positive Feedback Count Division Name Department Name Class Name \n", + "0 0 Initmates Intimate Intimates \n", + "1 4 General Dresses Dresses \n", + "2 0 General Dresses Dresses \n", + "3 0 General Petite Bottoms Pants \n", + "4 6 General Tops Blouses " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv('data/Womens Clothing E-Commerce Reviews.csv', index_col=0)\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A quick look at the distribution of product ratings shows us that the dataset is imbalanced; there are more observations with good product ratings than poor product ratings. This inbalance in the training data set may lead to a tendency to favor the majority classes (high product ratings) and overall poor model accuracy. During the data processing step, we'll mitigate the impact of the imbalanced dataset by:\n", + "\n", + "* Grouping ratings of 1 & 2 in to a larger 'negative review' category\n", + "* Oversampling the 'negative review+' minority class\n", + "* Ignoring neutral reviews (ratings of 3 & 4) to remove reviews that may be difficult to distinguish from positive and negative reviews. While this means that we will be unable to classify reviews as neutral, this may enable the model to better flag positive and negative reviews and therefor identify customers that require additional customer service attention or who are particularly likely to purchase additional products.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot = df.groupby('Rating')['Rating'].count().plot(kind='bar', title = 'Count of Product Rating')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#upload the data to your default S3 bucket or another S3 bucket of your choosing\n", + "local_path = \"data/Womens Clothing E-Commerce Reviews.csv\"\n", + "\n", + "base_uri = f\"s3://{default_bucket}/{prefix}/data\"\n", + "input_data_uri = sagemaker.s3.S3Uploader.upload(\n", + " local_path=local_path,\n", + " desired_s3_uri=base_uri,\n", + ")\n", + "print(input_data_uri)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Step 0: Define parameters to parametrize pipeline execution\n", + "\n", + "Using SageMaker Pipelines, we can define the steps to be included in a pipeline but then use parameters to modify that pipeline when we go to execute the pipeline, without having to modify the pipeline definition. We'll provide some default parameter values that can be overridden on pipeline execution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.parameters import (ParameterInteger, ParameterString)\n", + "\n", + "#specify location of input data\n", + "input_data = ParameterString(\n", + " name=\"InputData\",\n", + " default_value=input_data_uri,\n", + ")\n", + "\n", + "#specify default number of instances for processing step\n", + "processing_instance_count = ParameterInteger(\n", + " name=\"ProcessingInstanceCount\",\n", + " default_value=1\n", + ")\n", + "\n", + "#specify default instance type for processing step\n", + "processing_instance_type = ParameterString(\n", + " name=\"ProcessingInstanceType\",\n", + " default_value=\"ml.m4.xlarge\"\n", + ")\n", + "\n", + "#specify default instance type for training step\n", + "train_instance_type = ParameterString(\n", + " name=\"TrainingInstanceType\",\n", + " default_value=\"ml.m4.xlarge\",\n", + ")\n", + "\n", + "#specify default model approval mode\n", + "model_approval_status = ParameterString(\n", + " name=\"ModelApprovalStatus\",\n", + " default_value=\"Approved\"\n", + ")\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Step 1: Create Dataset and Train/Test Split\n", + "\n", + "In this step, an SKLearn processor is used to prepare the data for model training. This data processing includes converting the review text to lowercase, removing carriage returns and line breaks and removing punctuation. We also group categories and conduct oversampling to reduce training dataset imbalance. Additionally, we process the reviews so that the training input data is in the format expected by the BlazingText algorithm (see more information here: https://docs.aws.amazon.com/sagemaker/latest/dg/blazingtext.html#bt-inputoutput) and we split the data in to training, testing and validation datasets.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!mkdir -p code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile code/preprocessing.py\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import string\n", + "from sklearn.utils import resample\n", + "\n", + "base_dir = \"/opt/ml/processing\"\n", + "\n", + "df = pd.read_csv( f\"{base_dir}/input/Womens Clothing E-Commerce Reviews.csv\")\n", + "df = df[df['Review Text'].notna()] # drop rows where Review text is missing\n", + "\n", + "def process_review(text):\n", + " punctuation = string.punctuation\n", + " review = text.lower()\n", + " review = review.replace(\"\\r\\n\", \" \").replace(\"\\n\\n\", \" \")\n", + " translator = str.maketrans(\"\",\"\", punctuation)\n", + " review = review.translate(translator)\n", + " return review\n", + " \n", + "# create columns for concat reviews and new labels\n", + "df['Complete_Review'] = df['Title'] + ' ' + df['Review Text']\n", + "df = df[df['Complete_Review'].notna()] # drop rows where review text is missing\n", + "df['Label'] = df['Rating'].map({1:'negative',2:'negative',3:'none',4:'none',5:'positive'})\n", + "df = df.loc[df['Label'].isin(['negative','positive'])] # only use positive and negative reviews\n", + "df['Review'] = df['Complete_Review'].astype(str).apply(process_review)\n", + "df['Processed'] = '__label__' + df['Label'].astype(str) + ' ' + df['Review'] \n", + "\n", + "# create train:test split\n", + "train, validation, test = np.split(df, [int(0.7 * len(df)), int(0.85 * len(df))])\n", + "\n", + "# deal with unbalanced classes\n", + "# only include resampling for training set so no data leakeage for validation sets\n", + "positive = train.loc[train['Label']=='positive']\n", + "negative = train.loc[train['Label']=='negative']\n", + "\n", + "# oversample the minority classes\n", + "negative_oversample = resample(negative, replace=True, n_samples=len(positive))\n", + "\n", + "# remake training set using balanced class camples\n", + "train = pd.concat([positive,negative_oversample])\n", + "\n", + "# create Series datasets for BlazingText format\n", + "train = train['Processed']\n", + "validation = validation['Processed']\n", + "test = test['Processed']\n", + "\n", + "# save datasets\n", + "pd.DataFrame(train).to_csv(f\"{base_dir}/train/train.csv\", header=False, index=False)\n", + "pd.DataFrame(validation).to_csv(f\"{base_dir}/validation/validation.csv\", header=False, index=False)\n", + "pd.DataFrame(test).to_csv(f\"{base_dir}/test/test.csv\", header=False, index=False) \n", + "\n", + "print(f\"Number of reviews in the training dataset: {train.shape[0]}\")\n", + "print(f\"Number of reviews in the validation set: {validation.shape[0]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.sklearn.processing import SKLearnProcessor\n", + "\n", + "framework_version = \"0.23-1\"\n", + "\n", + "sklearn_processor = SKLearnProcessor(\n", + " framework_version=framework_version,\n", + " instance_type=processing_instance_type,\n", + " instance_count=processing_instance_count,\n", + " base_job_name=\"sklearn-nlp-process\",\n", + " role=role,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.processing import ProcessingInput, ProcessingOutput\n", + "from sagemaker.workflow.steps import ProcessingStep\n", + "\n", + "s3_client.upload_file(Filename='./code/preprocessing.py', Bucket=default_bucket, Key=f'{prefix}/code/preprocessing.py')\n", + "preprocess_script_uri = f's3://{default_bucket}/{prefix}/code/preprocessing.py'\n", + "\n", + "process_step = ProcessingStep(\n", + " name=\"BTDemoProcessStep\",\n", + " processor=sklearn_processor,\n", + " inputs=[\n", + " ProcessingInput(source=input_data, destination=\"/opt/ml/processing/input\"),\n", + " ],\n", + " outputs=[\n", + " ProcessingOutput(output_name=\"train\", source=\"/opt/ml/processing/train\"),\n", + " ProcessingOutput(output_name=\"validation\", source=\"/opt/ml/processing/validation\"),\n", + " ProcessingOutput(output_name=\"test\", source=\"/opt/ml/processing/test\"),\n", + " ],\n", + " code=preprocess_script_uri,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Step 2: Train text classification model using BlazingText" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# set up estimator:\n", + "\n", + "from sagemaker.estimator import Estimator\n", + "\n", + "bt_estimator = Estimator(\n", + " role=role,\n", + " instance_type=train_instance_type,\n", + " instance_count=1,\n", + " image_uri=sagemaker.image_uris.retrieve(\"blazingtext\", region),\n", + " output_path=f's3://{default_bucket}/{prefix}/training_jobs',\n", + " base_job_name='bt-model-estimator',\n", + " input_mode = 'File'\n", + ") \n", + "\n", + "#for more info on hyperparameters, see: https://docs.aws.amazon.com/sagemaker/latest/dg/blazingtext.html\n", + "bt_estimator.set_hyperparameters(mode=\"supervised\",\n", + " epochs=25,\n", + " learning_rate=0.02,\n", + " min_count=2,\n", + " early_stopping=True,\n", + " patience=4,\n", + " min_epochs=10,\n", + " word_ngrams=3\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# set up model training step \n", + "from sagemaker.inputs import TrainingInput\n", + "from sagemaker.workflow.steps import TrainingStep\n", + "\n", + "train_step = TrainingStep(\n", + " name='BTDemoTrainStep',\n", + " estimator=bt_estimator,\n", + " inputs={\n", + " 'train': sagemaker.inputs.TrainingInput(\n", + " s3_data=process_step.properties.ProcessingOutputConfig.Outputs['train'].S3Output.S3Uri,\n", + " content_type=\"text/csv\"\n", + " ),\n", + " 'validation': sagemaker.inputs.TrainingInput(\n", + " s3_data=process_step.properties.ProcessingOutputConfig.Outputs['test'].S3Output.S3Uri,\n", + " content_type=\"text/csv\"\n", + " )\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Step 3: Model creation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.steps import CreateModelStep\n", + "\n", + "model = sagemaker.model.Model(\n", + " name='nlp-blaztext-model',\n", + " image_uri=train_step.properties.AlgorithmSpecification.TrainingImage,\n", + " model_data=train_step.properties.ModelArtifacts.S3ModelArtifacts,\n", + " sagemaker_session=sagemaker_session,\n", + " role=role\n", + ")\n", + "\n", + "inputs = sagemaker.inputs.CreateModelInput(\n", + " instance_type=\"ml.m4.xlarge\"\n", + ")\n", + "\n", + "create_model_step = CreateModelStep(\n", + " name=\"BTDemoCreatemodelStep\",\n", + " model=model,\n", + " inputs=inputs\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Step 4: Deploy model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile code/deploy_model.py\n", + "\n", + "import time\n", + "from datetime import datetime\n", + "import boto3\n", + "import argparse\n", + "\n", + "\n", + "# Parse argument variables passed via the DeployModel processing step\n", + "parser = argparse.ArgumentParser()\n", + "parser.add_argument('--model-name', type=str)\n", + "parser.add_argument('--region', type=str)\n", + "parser.add_argument('--endpoint-instance-type', type=str)\n", + "parser.add_argument('--endpoint-name', type=str)\n", + "args = parser.parse_args()\n", + "\n", + "region = args.region\n", + "boto3.setup_default_session(region_name=region)\n", + "sagemaker_boto_client = boto3.client('sagemaker')\n", + "\n", + "# truncate name per sagameker length requirememnts (63 char max) if necessary\n", + "endpoint_config_name = f'{args.endpoint_name}-config-{datetime.now().strftime(\"%Y%m%d-%H%M%S\")}'\n", + "\n", + "# create new endpoint config file \n", + "create_ep_config_response = sagemaker_boto_client.create_endpoint_config(\n", + " EndpointConfigName=endpoint_config_name,\n", + " ProductionVariants=[{\n", + " 'InstanceType': args.endpoint_instance_type,\n", + " 'InitialVariantWeight': 1,\n", + " 'InitialInstanceCount': 1,\n", + " 'ModelName': args.model_name,\n", + " 'VariantName': 'AllTraffic'\n", + " }])\n", + "\n", + "print(\"ModelName: {}\".format(args.model_name))\n", + "\n", + "# create endpoint if model endpoint does not already exist, otherwise update the endpoint\n", + "try:\n", + " create_endpoint_response = sagemaker_boto_client.create_endpoint(\n", + " EndpointName=args.endpoint_name,\n", + " EndpointConfigName=endpoint_config_name\n", + " )\n", + "except:\n", + " create_endpoint_response = sagemaker_boto_client.update_endpoint(\n", + " EndpointName=args.endpoint_name,\n", + " EndpointConfigName=endpoint_config_name\n", + " )\n", + "\n", + "endpoint_info = sagemaker_boto_client.describe_endpoint(EndpointName=args.endpoint_name)\n", + "endpoint_status = endpoint_info['EndpointStatus']\n", + "\n", + "while endpoint_status != 'InService':\n", + " endpoint_info = sagemaker_boto_client.describe_endpoint(EndpointName=args.endpoint_name)\n", + " endpoint_status = endpoint_info['EndpointStatus']\n", + " print('Endpoint status:', endpoint_status)\n", + " if endpoint_status != 'InService':\n", + " time.sleep(30)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "s3_client.upload_file(Filename='./code/deploy_model.py', Bucket=default_bucket, Key=f'{prefix}/code/deploy_model.py')\n", + "deploy_model_script_uri = f's3://{default_bucket}/{prefix}/code/deploy_model.py'\n", + "pipeline_endpoint_name = 'nlp-blaztext-model-endpoint'\n", + "\n", + "deployment_instance_type = \"ml.m4.xlarge\"\n", + "\n", + "deploy_model_processor = SKLearnProcessor(\n", + " framework_version='0.23-1',\n", + " role=role,\n", + " instance_type='ml.m5.xlarge',\n", + " instance_count=1,\n", + " volume_size_in_gb=60,\n", + " base_job_name='nlp-blaztext-deploy-model',\n", + " sagemaker_session=sagemaker_session)\n", + "\n", + "deploy_step = ProcessingStep(\n", + " name='BTDemoDeployStep',\n", + " processor=deploy_model_processor,\n", + " job_arguments=[\n", + " \"--model-name\", create_model_step.properties.ModelName, \n", + " \"--region\", region,\n", + " \"--endpoint-instance-type\", deployment_instance_type,\n", + " \"--endpoint-name\", pipeline_endpoint_name\n", + " ],\n", + " code=deploy_model_script_uri)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Step 5: Register model\n", + "\n", + "In this step you will use the ParameterString `model_approval_status` defined at the outset of the pipeline code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.step_collections import RegisterModel\n", + "\n", + "register_step = RegisterModel(\n", + " name=\"BTDemoRegistermodelStep\",\n", + " estimator=bt_estimator,\n", + " model_data=train_step.properties.ModelArtifacts.S3ModelArtifacts,\n", + " content_types=[\"text/csv\"],\n", + " response_types=[\"text/csv\"],\n", + " inference_instances=[\"ml.t2.medium\", \"ml.m5.xlarge\"],\n", + " transform_instances=[\"ml.m5.xlarge\"],\n", + " model_package_group_name=prefix,\n", + " approval_status=model_approval_status,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Step 6: Create pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sagemaker.workflow.pipeline import Pipeline\n", + "\n", + "#run full pipeline\n", + "steps_full = [process_step,\n", + " train_step,\n", + " create_model_step,\n", + " deploy_step,\n", + " register_step]\n", + "\n", + "#run data processing step\n", + "steps_preprocessing = [process_step]\n", + "\n", + "pipeline_name = 'BlazingTextPipeline'\n", + "\n", + "pipeline = Pipeline(\n", + " name=pipeline_name,\n", + " parameters=[\n", + " processing_instance_type,\n", + " processing_instance_count,\n", + " train_instance_type,\n", + " model_approval_status,\n", + " input_data\n", + " ],\n", + " steps=steps_full, #switch to steps_preprocessing if you would like to run only the data processing step\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Examine the JSON pipeline definition:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import json\n", + "\n", + "definition = json.loads(pipeline.definition())\n", + "definition" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Submit the pipeline definition to the SageMaker Pipelines service to create a pipeline if it doesn't exist, or update the pipeline if it does. The role passed in is used by SageMaker Pipelines to create all the jobs defined in the steps." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pipeline.upsert(role_arn=role)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Start a pipeline execution:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "execution = pipeline.start()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Describe the pipeline execution status to ensure that it has been created and started successfully:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "execution.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wait for the execution to finish:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "execution.wait()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "List the execution steps and their status:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "execution.list_steps()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Use deployed model to return predictions\n", + "\n", + "Now that our model is deployed as an endpoint, we can submit sample product reviews and return predicted product ratings. For more information on BlazingText inference, see the [BlazingText algorithm documentation](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/blazingtext_text_classification_dbpedia/blazingtext_text_classification_dbpedia.html#Hosting-/-Inference)." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "import string \n", + "\n", + "def process_review(text):\n", + " punctuation = string.punctuation\n", + " review = text.lower()\n", + " review = review.replace(\"\\r\\n\", \" \").replace(\"\\n\\n\", \" \")\n", + " translator = str.maketrans(\"\",\"\", punctuation)\n", + " review = review.translate(translator)\n", + " return review" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "sentences = [\"i loved this blouse when i saw it on-line, and the fabric is so soft!\",\n", + " \"love the top, but very small to the size. ordered a medium and had to send back in exchange for x-large\", \n", + " \"horrible! this top was scratchy and too small.\"]\n", + "# process the reviews to predict the same as training data\n", + "processed_sentences = [ process_review(sent) for sent in sentences ]\n", + "\n", + "payload = {\"instances\" : processed_sentences}" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "def get_predictions(payload, endpoint_name, client):\n", + " response = client.invoke_endpoint(EndpointName=endpoint_name,\n", + " Body=json.dumps(payload),\n", + " ContentType='application/json')\n", + " predictions = json.loads(response['Body'].read().decode('utf-8'))\n", + " return list(zip(payload['instances'], predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('i loved this blouse when i saw it online and the fabric is so soft',\n", + " {'label': ['__label__positive'], 'prob': [0.9529946446418762]}),\n", + " ('love the top but very small to the size ordered a medium and had to send back in exchange for xlarge',\n", + " {'label': ['__label__negative'], 'prob': [0.5224761962890625]}),\n", + " ('horrible this top was scratchy and too small',\n", + " {'label': ['__label__negative'], 'prob': [0.999985933303833]})]" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# return predictions\n", + "get_predictions(payload, pipeline_endpoint_name, sagemaker_client)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Clean up\n", + "\n", + "To avoid incurring unnecessary charges, delete the endpoints and resources that you created while running the notebook:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#sagemaker_boto_client.delete_endpoint(EndpointName=pipeline_endpoint_name)\n", + "#print(f\"Deleting endpoint: {pipeline_endpoint_name}\")" + ] + } + ], + "metadata": { + "instance_type": "ml.m5.large", + "kernelspec": { + "display_name": "Python 3 (Data Science)", + "language": "python", + "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/datascience-1.0" + }, + "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.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}