"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1071],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return c}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var m=r.createContext({}),u=function(e){var t=r.useContext(m),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(m.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,m=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(n),c=a,k=s["".concat(m,".").concat(c)]||s[c]||d[c]||i;return n?r.createElement(k,l(l({ref:t},p),{},{components:n})):r.createElement(k,l({ref:t},p))}));function c(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=s;var o={};for(var m in t)hasOwnProperty.call(t,m)&&(o[m]=t[m]);o.originalType=e,o.mdxType="string"==typeof e?e:a,l[1]=o;for(var u=2;u<i;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}s.displayName="MDXCreateElement"},8570:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return m},default:function(){return c},frontMatter:function(){return o},metadata:function(){return u},toc:function(){return d}});var r=n(7462),a=n(3366),i=(n(7294),n(3905)),l=["components"],o={title:"Tracking"},m=void 0,u={unversionedId:"userDocs/submarine-sdk/tracking",id:"version-0.7.0/userDocs/submarine-sdk/tracking",title:"Tracking",description:"\x3c!--",source:"@site/versioned_docs/version-0.7.0/userDocs/submarine-sdk/tracking.md",sourceDirName:"userDocs/submarine-sdk",slug:"/userDocs/submarine-sdk/tracking",permalink:"/docs/userDocs/submarine-sdk/tracking",editUrl:"https://github.com/apache/submarine/edit/master/website/versioned_docs/version-0.7.0/userDocs/submarine-sdk/tracking.md",tags:[],version:"0.7.0",frontMatter:{title:"Tracking"},sidebar:"docs",previous:{title:"Submarine CLI",permalink:"/docs/userDocs/submarine-sdk/submarine-cli"},next:{title:"Submarine Client",permalink:"/docs/userDocs/submarine-sdk/submarine-client"}},p={},d=[{value:"Functional api",id:"functional-api",level:3},{value:"<code>submarine.get_tracking_uri() -&gt; str</code>",id:"submarineget_tracking_uri---str",level:4},{value:"<code>submarine.set_tracking_uri(uri) -&gt; None</code>",id:"submarineset_tracking_uriuri---none",level:4},{value:"<code>submarine.log_param(key: str, value: str) -&gt; None</code>",id:"submarinelog_paramkey-str-value-str---none",level:4},{value:"<code>submarine.log_metric(key, value, step=0) -&gt; None</code>",id:"submarinelog_metrickey-value-step0---none",level:4},{value:"<code>submarine.save_model(model_type, model, registered_model_name, input_dim, output_dim) -&gt; None</code>",id:"submarinesave_modelmodel_type-model-registered_model_name-input_dim-output_dim---none",level:4}],s={toc:d};function c(e){var t=e.components,n=(0,a.Z)(e,l);return(0,i.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"It helps developers use submarine's internal data caching,\ndata exchange, and task tracking capabilities to more efficiently improve the\ndevelopment and execution of machine learning productivity"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Allow data scientist to track distributed ML experiment"),(0,i.kt)("li",{parentName:"ul"},"Support store ML parameters and metrics in Submarine-server"),(0,i.kt)("li",{parentName:"ul"},"Support hdfs, S3 and mysql (Currently we only support mysql)")),(0,i.kt)("h3",{id:"functional-api"},"Functional api"),(0,i.kt)("h4",{id:"submarineget_tracking_uri---str"},(0,i.kt)("inlineCode",{parentName:"h4"},"submarine.get_tracking_uri() -> str")),(0,i.kt)("p",null,"Get the tracking URI. If none has been specified, check the environmental variables. If uri is still none, return the default submarine jdbc url."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns")),(0,i.kt)("p",null,"The tracking URI."),(0,i.kt)("br",null),(0,i.kt)("h4",{id:"submarineset_tracking_uriuri---none"},(0,i.kt)("inlineCode",{parentName:"h4"},"submarine.set_tracking_uri(uri) -> None")),(0,i.kt)("p",null,"set the tracking URI. You can also set the SUBMARINE_TRACKING_URI environment variable to have Submarine find a URI from there. The URI should be database connection string."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"center"},"Param"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Default Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"uri"),(0,i.kt)("td",{parentName:"tr",align:"center"},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"Submarine record data to Mysql server. The database URL is expected in the format ",(0,i.kt)("inlineCode",{parentName:"td"},"<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>"),".By default it's ",(0,i.kt)("inlineCode",{parentName:"td"},"mysql+pymysql://submarine:password@submarine-database:3306/submarine"),". More detail : ",(0,i.kt)("a",{parentName:"td",href:"https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls"},"SQLAlchemy docs")),(0,i.kt)("td",{parentName:"tr",align:"center"},"x")))),(0,i.kt)("br",null),(0,i.kt)("h4",{id:"submarinelog_paramkey-str-value-str---none"},(0,i.kt)("inlineCode",{parentName:"h4"},"submarine.log_param(key: str, value: str) -> None")),(0,i.kt)("p",null,"log a single key-value parameter. The key and value are both strings."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"center"},"Param"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Default Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"key"),(0,i.kt)("td",{parentName:"tr",align:"center"},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"Parameter name."),(0,i.kt)("td",{parentName:"tr",align:"center"},"x")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"value"),(0,i.kt)("td",{parentName:"tr",align:"center"},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"Parameter value."),(0,i.kt)("td",{parentName:"tr",align:"center"},"x")))),(0,i.kt)("br",null),(0,i.kt)("h4",{id:"submarinelog_metrickey-value-step0---none"},(0,i.kt)("inlineCode",{parentName:"h4"},"submarine.log_metric(key, value, step=0) -> None")),(0,i.kt)("p",null,"log a single key-value metric. The value must always be a number."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"center"},"Param"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Default Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"key"),(0,i.kt)("td",{parentName:"tr",align:"center"},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"Metric name."),(0,i.kt)("td",{parentName:"tr",align:"center"},"x")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"value"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Float"),(0,i.kt)("td",{parentName:"tr",align:null},"Metric value."),(0,i.kt)("td",{parentName:"tr",align:"center"},"x")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"step"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Integer"),(0,i.kt)("td",{parentName:"tr",align:null},"A single integer step at which to log the specified Metrics."),(0,i.kt)("td",{parentName:"tr",align:"center"},"0")))),(0,i.kt)("br",null),(0,i.kt)("h4",{id:"submarinesave_modelmodel_type-model-registered_model_name-input_dim-output_dim---none"},(0,i.kt)("inlineCode",{parentName:"h4"},"submarine.save_model(model_type, model, registered_model_name, input_dim, output_dim) -> None")),(0,i.kt)("p",null,"Save a model into the minio pod."),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:"center"},"Param"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Type"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"),(0,i.kt)("th",{parentName:"tr",align:"center"},"Default Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"model_type"),(0,i.kt)("td",{parentName:"tr",align:"center"},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"The type of model. Only support ",(0,i.kt)("inlineCode",{parentName:"td"},"pytorch")," and ",(0,i.kt)("inlineCode",{parentName:"td"},"tensorflow"),"."),(0,i.kt)("td",{parentName:"tr",align:"center"},"x")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"model"),(0,i.kt)("td",{parentName:"tr",align:"center"},"Object"),(0,i.kt)("td",{parentName:"tr",align:null},"Model artifact."),(0,i.kt)("td",{parentName:"tr",align:"center"},"x")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"registered_model_name"),(0,i.kt)("td",{parentName:"tr",align:"center"},"String"),(0,i.kt)("td",{parentName:"tr",align:null},"If it is not ",(0,i.kt)("inlineCode",{parentName:"td"},"None"),", the model will be registered into the model registry with this name."),(0,i.kt)("td",{parentName:"tr",align:"center"},"None")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"input_dim"),(0,i.kt)("td",{parentName:"tr",align:"center"},"List<Integer",">"),(0,i.kt)("td",{parentName:"tr",align:null},"The input dimension of the model."),(0,i.kt)("td",{parentName:"tr",align:"center"},"None")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:"center"},"output_dim"),(0,i.kt)("td",{parentName:"tr",align:"center"},"List<Integer",">"),(0,i.kt)("td",{parentName:"tr",align:null},"The output dimension of the model."),(0,i.kt)("td",{parentName:"tr",align:"center"},"None")))),(0,i.kt)("br",null))}c.isMDXComponent=!0}}]);