{"id":7421,"date":"2023-09-11T10:00:27","date_gmt":"2023-09-11T18:00:27","guid":{"rendered":"https:\/\/live-cometml.pantheonsite.io\/?p=7421"},"modified":"2025-04-24T17:14:12","modified_gmt":"2025-04-24T17:14:12","slug":"an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2","status":"publish","type":"post","link":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/","title":{"rendered":"An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2"},"content":{"rendered":"\n<link rel=\"canonical\" href=\"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\">\n\n\n\n<div class=\"fh fi fj fk fl\">\n<div class=\"ab ca\">\n<div class=\"ch bg et eu ev ew\">\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/0*RzaaZaQz9f-CJAHd\" alt=\"\" width=\"700\" height=\"467\"><\/figure><div class=\"mf mg mh\"><picture><\/picture><\/div>\n<\/div><figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Photo by <a class=\"af mz\" href=\"https:\/\/unsplash.com\/@nampoh?utm_source=medium&amp;utm_medium=referral\" target=\"_blank\" rel=\"noopener ugc nofollow\">Maxim Hopman<\/a> on <a class=\"af mz\" href=\"https:\/\/unsplash.com\/?utm_source=medium&amp;utm_medium=referral\" target=\"_blank\" rel=\"noopener ugc nofollow\">Unsplash<\/a><\/figcaption><\/figure>\n<p id=\"d4ee\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">In <a href=\"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-1\"><strong class=\"be nv\">the first part of this article<\/strong><\/a>, we made a point to go through the steps that are necessary for you to log a model into the registry. This was necessary as the registry is where a machine learning practitioner can keep track of experiments and model versions.<\/p>\n<p id=\"183c\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">The next step that I will address in this article involves the development of different models. Additionally, they will have a better performance than the one that had initially been logged. It is necessary as one can easily trace where performance increases and performance drops occur.<\/p>\n<h2 id=\"80b9\" class=\"nw nx fo be ny nz oa ob oc od oe of og ni oh oi oj nm ok ol om nq on oo op oq bj\" data-selectable-paragraph=\"\">Workflow<\/h2>\n<p id=\"557a\" class=\"pw-post-body-paragraph na nb fo be b gm or nd ne gp os ng nh ni ot nk nl nm ou no np nq ov ns nt nu fh bj\" data-selectable-paragraph=\"\">The workflow will primarily be derived from what we did in the previous article. If we have a better-performing model than the previous one, we can keep it to improve the performance on test datasets. There will be no additional libraries and requirements. To review part one of this series, or to set up your environment for this workflow, check out my article below:<\/p>\n<div class=\"ow ox oy oz pa pb\">\n<div class=\"pc ab ik\">\n<div class=\"pd ab cn ca pe pf\">\n<h2 class=\"be fp ia z is pg iu iv ph ix iz fn bj\">An End-to-End Guide on Using Comet ML\u2019s Model Versioning Feature: Part 1<\/h2>\n<div class=\"pi l\">\n<h3 class=\"be b ia z is pg iu iv ph ix iz dv\">First-time project and model registration<\/h3>\n<\/div>\n<div class=\"pj l\">\n<p class=\"be b dw z is pg iu iv ph ix iz dv\">heartbeat.comet.ml<\/p>\n<\/div>\n<\/div>\n<div class=\"pk l\">\n<div class=\"pl l pm pn po pk pp ms pb\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p id=\"f9b8\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Steps that we will follow:<\/p>\n<ol class=\"\">\n<li id=\"a368\" class=\"na nb fo be b gm nc nd ne gp nf ng nh ni pq nk nl nm pr no np nq ps ns nt nu pt pu pv bj\" data-selectable-paragraph=\"\">Evaluating the performance of different models.<\/li>\n<li id=\"c96b\" class=\"na nb fo be b gm pw nd ne gp px ng nh ni py nk nl nm pz no np nq qa ns nt nu pt pu pv bj\" data-selectable-paragraph=\"\">Setting up an experiment in our project and using its path to come up with a newer version of our model in the model registry of the initial model.<\/li>\n<li id=\"90ea\" class=\"na nb fo be b gm pw nd ne gp px ng nh ni py nk nl nm pz no np nq qa ns nt nu pt pu pv bj\" data-selectable-paragraph=\"\">Naming our new model and seeing how we can interact with it.<\/li>\n<\/ol>\n<h2 id=\"11a0\" class=\"nw nx fo be ny nz oa ob oc od oe of og ni oh oi oj nm ok ol om nq on oo op oq bj\" data-selectable-paragraph=\"\">Comparing model performance<\/h2>\n<p id=\"9220\" class=\"pw-post-body-paragraph na nb fo be b gm or nd ne gp os ng nh ni ot nk nl nm ou no np nq ov ns nt nu fh bj\" data-selectable-paragraph=\"\">Different models offer varying levels of performance on a given dataset because of their inherent strengths and weaknesses. Sometimes this is a good thing as it may be beneficial to the outcome that a data scientist or machine learning practitioner may desire.<\/p>\n<p id=\"dced\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Let\u2019s get to the code:<\/p>\n<pre class=\"mi mj mk ml mm qb qc qd bo qe ba bj\"><span id=\"84a1\" class=\"qf nx fo qc b bf qg qh l qi qj\" data-selectable-paragraph=\"\"><span class=\"hljs-keyword\">import<\/span> numpy <span class=\"hljs-keyword\">as<\/span> np\n<span class=\"hljs-keyword\">from<\/span> sklearn.model_selection <span class=\"hljs-keyword\">import<\/span> cross_val_score\n<span class=\"hljs-keyword\">from<\/span> sklearn.neighbors <span class=\"hljs-keyword\">import<\/span> KNeighborsClassifier\n<span class=\"hljs-keyword\">from<\/span> sklearn.tree <span class=\"hljs-keyword\">import<\/span> DecisionTreeClassifier\n<span class=\"hljs-keyword\">from<\/span> xgboost <span class=\"hljs-keyword\">import<\/span> XGBClassifier\n<span class=\"hljs-keyword\">from<\/span> sklearn.neural_network <span class=\"hljs-keyword\">import<\/span> MLPClassifier\n<span class=\"hljs-keyword\">from<\/span> sklearn.model_selection <span class=\"hljs-keyword\">import<\/span> StratifiedKFold\n<span class=\"hljs-keyword\">from<\/span> sklearn.linear_model <span class=\"hljs-keyword\">import<\/span> LogisticRegression\n<span class=\"hljs-keyword\">from<\/span> sklearn.ensemble <span class=\"hljs-keyword\">import<\/span> RandomForestClassifier\n\n<span class=\"hljs-comment\">#Passing all the algorithms in a dict<\/span>\nmodels = { <span class=\"hljs-string\">'knc'<\/span> : KNeighborsClassifier(),\n           <span class=\"hljs-string\">'dtc'<\/span> : DecisionTreeClassifier(),\n           <span class=\"hljs-string\">'xgc'<\/span> : XGBClassifier(),\n           <span class=\"hljs-string\">'mlp'<\/span> : MLPClassifier(max_iter=<span class=\"hljs-number\">1000<\/span>, random_state = <span class=\"hljs-number\">0<\/span>),\n           <span class=\"hljs-string\">'lr'<\/span>  : LogisticRegression(max_iter=<span class=\"hljs-number\">500<\/span>),\n           <span class=\"hljs-string\">'rf'<\/span>  : RandomForestClassifier()\n         }\n<span class=\"hljs-comment\">#Function to calculate the cross validation score<\/span>\n<span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title.function\">cross_val_eval<\/span>(<span class=\"hljs-params\">model, X, y<\/span>):\n    cv = StratifiedKFold(n_splits=<span class=\"hljs-number\">5<\/span>, shuffle=<span class=\"hljs-literal\">True<\/span>, random_state=<span class=\"hljs-number\">5<\/span>)\n    cv_scores = cross_val_score(model, X, y, cv = cv, scoring=<span class=\"hljs-string\">'accuracy'<\/span>, n_jobs=-<span class=\"hljs-number\">1<\/span>, error_score=<span class=\"hljs-string\">'raise'<\/span>)\n    <span class=\"hljs-keyword\">return<\/span> cv_scores\n\n<span class=\"hljs-comment\">#passing the model_dict function into a variable<\/span>\nmodels = model_dict()\n\n<span class=\"hljs-comment\">#Performance evaluation<\/span>\nresults, names = <span class=\"hljs-built_in\">list<\/span>(), <span class=\"hljs-built_in\">list<\/span>()\n<span class=\"hljs-keyword\">for<\/span> name, model <span class=\"hljs-keyword\">in<\/span> models.items():\n    scores = cross_val_eval(model, X, y)\n    results.append(scores)\n    names.append(names)\n    <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">'%s %.5f (%.3f)'<\/span> % (name, np.mean(scores), np.std(scores)))<\/span><\/pre>\n<p id=\"cb02\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">The above code evaluates the performance of different algorithms that are in the dictionary and the result is shown below:<\/p>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:267\/1*Qy-KqX7kam8jq4OPSGT4-A.png\" alt=\"\" width=\"267\" height=\"157\"><\/figure><div class=\"mf mg qk\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*Qy-KqX7kam8jq4OPSGT4-A.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*Qy-KqX7kam8jq4OPSGT4-A.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*Qy-KqX7kam8jq4OPSGT4-A.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*Qy-KqX7kam8jq4OPSGT4-A.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*Qy-KqX7kam8jq4OPSGT4-A.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*Qy-KqX7kam8jq4OPSGT4-A.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:534\/format:webp\/1*Qy-KqX7kam8jq4OPSGT4-A.png 534w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 267px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*Qy-KqX7kam8jq4OPSGT4-A.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*Qy-KqX7kam8jq4OPSGT4-A.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*Qy-KqX7kam8jq4OPSGT4-A.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*Qy-KqX7kam8jq4OPSGT4-A.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*Qy-KqX7kam8jq4OPSGT4-A.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*Qy-KqX7kam8jq4OPSGT4-A.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:534\/1*Qy-KqX7kam8jq4OPSGT4-A.png 534w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 267px\" data-testid=\"og\"><\/picture><\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"5f26\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">From the above image, the best-performing algorithms are MLPClassifier and Logistic Regression as they have the highest accuracy and the same standard deviation.<\/p>\n<p id=\"1da2\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Picking either of them could allow for a better-performing model in comparison to the one that we had in the previous article. So I will pick the MLPClassifier algorithm for the next model.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"fh fi fj fk fl\">\n<div class=\"ab ca\">\n<div class=\"ch bg et eu ev ew\">\n<blockquote class=\"qt\"><p id=\"1798\" class=\"qu qv fo be qw qx qy qz ra rb rc nu dv\" data-selectable-paragraph=\"\">Have you tried Comet? <a class=\"af mz\" href=\"\/signup?utm_source=heartbeat&amp;utm_medium=referral&amp;utm_campaign=AMS_US_EN_SNUP_heartbeat_CTA\" target=\"_blank\" rel=\"noopener ugc nofollow\">Sign up for free and easily track experiments, manage models in production, and visualize your model performance<\/a>.<\/p><\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"fh fi fj fk fl\">\n<div class=\"ab ca\">\n<div class=\"ch bg et eu ev ew\">\n<h2 id=\"a714\" class=\"nw nx fo be ny nz oa ob oc od oe of og ni oh oi oj nm ok ol om nq on oo op oq bj\" data-selectable-paragraph=\"\">2. Setting up an experiment and registering the model<\/h2>\n<p id=\"950c\" class=\"pw-post-body-paragraph na nb fo be b gm or nd ne gp os ng nh ni ot nk nl nm ou no np nq ov ns nt nu fh bj\" data-selectable-paragraph=\"\">As we are performing model versioning then we need to make sure that all of our experiments are in the same Project and models in the same Registry.<\/p>\n<p id=\"c5cc\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">From the first article, we have our Project named <code class=\"cw rd re rf qc b\">model-tracking<\/code> where we ran an experiment with our first project that Comet automatically named <code class=\"cw rd re rf qc b\">intact_silo_3082<\/code>.<\/p>\n<p id=\"3190\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Your project view should look as follows:<\/p>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*3FuFzsvXO42Ii2isFH04ug.png\" alt=\"\" width=\"700\" height=\"317\"><\/figure><div class=\"mf mg rg\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*3FuFzsvXO42Ii2isFH04ug.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*3FuFzsvXO42Ii2isFH04ug.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*3FuFzsvXO42Ii2isFH04ug.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*3FuFzsvXO42Ii2isFH04ug.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*3FuFzsvXO42Ii2isFH04ug.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*3FuFzsvXO42Ii2isFH04ug.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/format:webp\/1*3FuFzsvXO42Ii2isFH04ug.png 1400w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*3FuFzsvXO42Ii2isFH04ug.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*3FuFzsvXO42Ii2isFH04ug.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*3FuFzsvXO42Ii2isFH04ug.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*3FuFzsvXO42Ii2isFH04ug.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*3FuFzsvXO42Ii2isFH04ug.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*3FuFzsvXO42Ii2isFH04ug.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*3FuFzsvXO42Ii2isFH04ug.png 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" data-testid=\"og\"><\/picture><\/div>\n<\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"2d61\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">When we click the \u201cView Project button\u201d (under \u201cUncategorized Experiments), then we will see our only (previous) experiment:<\/p>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*SdvtlXmuCqEpS5maOMkYIw.png\" alt=\"\" width=\"700\" height=\"350\"><\/figure><div class=\"mf mg rh\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*SdvtlXmuCqEpS5maOMkYIw.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*SdvtlXmuCqEpS5maOMkYIw.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*SdvtlXmuCqEpS5maOMkYIw.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*SdvtlXmuCqEpS5maOMkYIw.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*SdvtlXmuCqEpS5maOMkYIw.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*SdvtlXmuCqEpS5maOMkYIw.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/format:webp\/1*SdvtlXmuCqEpS5maOMkYIw.png 1400w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*SdvtlXmuCqEpS5maOMkYIw.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*SdvtlXmuCqEpS5maOMkYIw.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*SdvtlXmuCqEpS5maOMkYIw.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*SdvtlXmuCqEpS5maOMkYIw.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*SdvtlXmuCqEpS5maOMkYIw.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*SdvtlXmuCqEpS5maOMkYIw.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*SdvtlXmuCqEpS5maOMkYIw.png 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" data-testid=\"og\"><\/picture><\/div>\n<\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"4299\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Our objective is to add a new model to the registry so the first step would be to ensure we have it running as an experiment in the above project. So we will write our code as follows:<\/p>\n<pre class=\"mi mj mk ml mm qb qc qd bo qe ba bj\"><span id=\"03e7\" class=\"qf nx fo qc b bf qg qh l qi qj\" data-selectable-paragraph=\"\"><span class=\"hljs-comment\">#our new better performing algorithm<\/span>\nmodel1 = MLPClassifier(max_iter=1000, random_state = 0)\n\n<span class=\"hljs-comment\">#fitting model<\/span>\nmodel1.fit(X, y)\n\n<span class=\"hljs-comment\">#exporting model to desired location<\/span>\ndump(model1, <span class=\"hljs-string\">\"model1.joblib\"<\/span>)<\/span><\/pre>\n<p id=\"2182\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">The next step would be to import Comet ML\u2019s library to log the experiment under this project.<\/p>\n<pre class=\"mi mj mk ml mm qb qc qd bo qe ba bj\"><span id=\"7c99\" class=\"qf nx fo qc b bf qg qh l qi qj\" data-selectable-paragraph=\"\"><span class=\"hljs-keyword\">from<\/span> comet_ml <span class=\"hljs-keyword\">import<\/span> API, Experiment\nexperiment = Experiment()\napi = API()\n\n<span class=\"hljs-comment\">#naming the model \"model1\" and highlighting where it is stored in the computer<\/span>\nexperiment.log_model(<span class=\"hljs-string\">\"model1\"<\/span>, <span class=\"hljs-string\">\"\/home\/mwaniki-new\/Documents\/Stacking\/model1.joblib\"<\/span>)\nexperiment.end()<\/span><\/pre>\n<p id=\"c82a\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Make sure to end your experiment with <code class=\"cw rd re rf qc b\">experiment.end()<\/code> to prevent it from running perpetually and to finalizing all logging to the UI.<\/p>\n<p id=\"c4b8\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">After we run the above code, we will have a new experiment logged and now we can use its path to register a new version of our model in the model registry.<\/p>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*oq1NI3ZLhhGnKm8bYToYQQ.png\" alt=\"\" width=\"700\" height=\"319\"><\/figure><div class=\"mf mg ri\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/format:webp\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 1400w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*oq1NI3ZLhhGnKm8bYToYQQ.png 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" data-testid=\"og\"><\/picture><\/div>\n<\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"dd1e\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">In the above screenshot, our new experiment is named <code class=\"cw rd re rf qc b\">intact_krill_7478<\/code> and when we click it, we\u2019ll be able to copy the path from the top.<\/p>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*CvJrB6ysvaCjwhXUeq6pZA.png\" alt=\"\" width=\"700\" height=\"67\"><\/figure><div class=\"mf mg rj\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*CvJrB6ysvaCjwhXUeq6pZA.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*CvJrB6ysvaCjwhXUeq6pZA.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*CvJrB6ysvaCjwhXUeq6pZA.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*CvJrB6ysvaCjwhXUeq6pZA.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*CvJrB6ysvaCjwhXUeq6pZA.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*CvJrB6ysvaCjwhXUeq6pZA.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/format:webp\/1*CvJrB6ysvaCjwhXUeq6pZA.png 1400w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*CvJrB6ysvaCjwhXUeq6pZA.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*CvJrB6ysvaCjwhXUeq6pZA.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*CvJrB6ysvaCjwhXUeq6pZA.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*CvJrB6ysvaCjwhXUeq6pZA.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*CvJrB6ysvaCjwhXUeq6pZA.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*CvJrB6ysvaCjwhXUeq6pZA.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*CvJrB6ysvaCjwhXUeq6pZA.png 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" data-testid=\"og\"><\/picture><\/div>\n<\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"6c91\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">We will then use the above path to register the new version of our model after copying it.<\/p>\n<h2 id=\"e177\" class=\"nw nx fo be ny nz oa ob oc od oe of og ni oh oi oj nm ok ol om nq on oo op oq bj\" data-selectable-paragraph=\"\">3. Adding the model to the registry<\/h2>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*dYMmOfOsnworx9EnGAdGSQ.png\" alt=\"\" width=\"700\" height=\"319\"><\/figure><div class=\"mf mg ri\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*dYMmOfOsnworx9EnGAdGSQ.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*dYMmOfOsnworx9EnGAdGSQ.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*dYMmOfOsnworx9EnGAdGSQ.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*dYMmOfOsnworx9EnGAdGSQ.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*dYMmOfOsnworx9EnGAdGSQ.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*dYMmOfOsnworx9EnGAdGSQ.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/format:webp\/1*dYMmOfOsnworx9EnGAdGSQ.png 1400w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*dYMmOfOsnworx9EnGAdGSQ.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*dYMmOfOsnworx9EnGAdGSQ.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*dYMmOfOsnworx9EnGAdGSQ.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*dYMmOfOsnworx9EnGAdGSQ.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*dYMmOfOsnworx9EnGAdGSQ.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*dYMmOfOsnworx9EnGAdGSQ.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*dYMmOfOsnworx9EnGAdGSQ.png 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" data-testid=\"og\"><\/picture><\/div>\n<\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"1746\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Our model will already have version 1.0.0 that we made in the previous article. We will now add our newer version and name it 1.1.0 and view it from this page.<\/p>\n<pre class=\"mi mj mk ml mm qb qc qd bo qe ba bj\"><span id=\"31ab\" class=\"qf nx fo qc b bf qg qh l qi qj\" data-selectable-paragraph=\"\">experiment = api.get(<span class=\"hljs-string\">\"mwanikinjagi\/model-tracking\/intact_krill_7478\"<\/span>)\nexperiment.register_model(model_name=<span class=\"hljs-string\">\"model1\"<\/span>, version=<span class=\"hljs-string\">\"1.1.0\"<\/span>)\nexperiment.end()<\/span><\/pre>\n<p id=\"5f7a\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">In the above code, we add our newer version model to the \u201cmodel1\u201d page that we have in the registry. The first action performed is pasting the path copied above into the \u201capi.get()\u201d method.<\/p>\n<p id=\"378f\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">We then specify the model_name as \u201cmodel_1\u201d and name it \u201c1.1.0\u201d. The model registry page should then appear as it is below:<\/p>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*klyWz3Wzzxumkj_WOul1NQ.png\" alt=\"\" width=\"700\" height=\"317\"><\/figure><div class=\"mf mg ri\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*klyWz3Wzzxumkj_WOul1NQ.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*klyWz3Wzzxumkj_WOul1NQ.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*klyWz3Wzzxumkj_WOul1NQ.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*klyWz3Wzzxumkj_WOul1NQ.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*klyWz3Wzzxumkj_WOul1NQ.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*klyWz3Wzzxumkj_WOul1NQ.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/format:webp\/1*klyWz3Wzzxumkj_WOul1NQ.png 1400w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*klyWz3Wzzxumkj_WOul1NQ.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*klyWz3Wzzxumkj_WOul1NQ.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*klyWz3Wzzxumkj_WOul1NQ.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*klyWz3Wzzxumkj_WOul1NQ.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*klyWz3Wzzxumkj_WOul1NQ.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*klyWz3Wzzxumkj_WOul1NQ.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*klyWz3Wzzxumkj_WOul1NQ.png 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" data-testid=\"og\"><\/picture><\/div>\n<\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"bc8c\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">We can now see that the model has two versions. The next step would be to click \u201cView Model.\u201d<\/p>\n<figure class=\"mi mj mk ml mm mn mf mg paragraph-image\">\n<div class=\"mo mp eb mq bg mr\" tabindex=\"0\" role=\"button\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"bg ms mt c\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/1*sg9yQsf9-ynYIIN3zFikIA.png\" alt=\"\" width=\"700\" height=\"315\"><\/figure><div class=\"mf mg rk\"><picture><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/1*sg9yQsf9-ynYIIN3zFikIA.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/format:webp\/1*sg9yQsf9-ynYIIN3zFikIA.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/format:webp\/1*sg9yQsf9-ynYIIN3zFikIA.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/format:webp\/1*sg9yQsf9-ynYIIN3zFikIA.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/format:webp\/1*sg9yQsf9-ynYIIN3zFikIA.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/format:webp\/1*sg9yQsf9-ynYIIN3zFikIA.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/format:webp\/1*sg9yQsf9-ynYIIN3zFikIA.png 1400w\" type=\"image\/webp\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\"><source srcset=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/1*sg9yQsf9-ynYIIN3zFikIA.png 640w, https:\/\/miro.medium.com\/v2\/resize:fit:720\/1*sg9yQsf9-ynYIIN3zFikIA.png 720w, https:\/\/miro.medium.com\/v2\/resize:fit:750\/1*sg9yQsf9-ynYIIN3zFikIA.png 750w, https:\/\/miro.medium.com\/v2\/resize:fit:786\/1*sg9yQsf9-ynYIIN3zFikIA.png 786w, https:\/\/miro.medium.com\/v2\/resize:fit:828\/1*sg9yQsf9-ynYIIN3zFikIA.png 828w, https:\/\/miro.medium.com\/v2\/resize:fit:1100\/1*sg9yQsf9-ynYIIN3zFikIA.png 1100w, https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*sg9yQsf9-ynYIIN3zFikIA.png 1400w\" sizes=\"(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px\" data-testid=\"og\"><\/picture><\/div>\n<\/div>\n<figcaption class=\"mu mv mw mf mg mx my be b bf z dv\" data-selectable-paragraph=\"\">Screenshot by author<\/figcaption>\n<\/figure>\n<p id=\"e74c\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">The above screen appears. We can see our first and second models and their version names. On the far right, we have their source experiments that appear on the Project page.<\/p>\n<p id=\"21d9\" class=\"pw-post-body-paragraph na nb fo be b gm nc nd ne gp nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu fh bj\" data-selectable-paragraph=\"\">Additionally, anyone with access to the workspace can download the models and begin utilizing them as it has already been uploaded to the registry.<\/p>\n<h2 id=\"614e\" class=\"nw nx fo be ny nz oa ob oc od oe of og ni oh oi oj nm ok ol om nq on oo op oq bj\" data-selectable-paragraph=\"\">Wrap up<\/h2>\n<p id=\"dab3\" class=\"pw-post-body-paragraph na nb fo be b gm or nd ne gp os ng nh ni ot nk nl nm ou no np nq ov ns nt nu fh bj\" data-selectable-paragraph=\"\">This marks the end of the two-article series explaining how someone can track a model and its development using Comet ML. We have demonstrated that it is possible to develop a better model and keep track of its versions through the entire development process.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Photo by Maxim Hopman on Unsplash In the first part of this article, we made a point to go through the steps that are necessary for you to log a model into the registry. This was necessary as the registry is where a machine learning practitioner can keep track of experiments and model versions. The [&hellip;]<\/p>\n","protected":false},"author":79,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"customer_name":"","customer_description":"","customer_industry":"","customer_technologies":"","customer_logo":"","footnotes":""},"categories":[6,7],"tags":[],"coauthors":[176],"class_list":["post-7421","post","type-post","status-publish","format-standard","hentry","category-machine-learning","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2 - Comet<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2\" \/>\n<meta property=\"og:description\" content=\"Photo by Maxim Hopman on Unsplash In the first part of this article, we made a point to go through the steps that are necessary for you to log a model into the registry. This was necessary as the registry is where a machine learning practitioner can keep track of experiments and model versions. The [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Comet\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/cometdotml\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-11T18:00:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-24T17:14:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/miro.medium.com\/v2\/resize:fit:700\/0*RzaaZaQz9f-CJAHd\" \/>\n<meta name=\"author\" content=\"Mwanikii Njagi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Cometml\" \/>\n<meta name=\"twitter:site\" content=\"@Cometml\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mwanikii Njagi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2 - Comet","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/","og_locale":"en_US","og_type":"article","og_title":"An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2","og_description":"Photo by Maxim Hopman on Unsplash In the first part of this article, we made a point to go through the steps that are necessary for you to log a model into the registry. This was necessary as the registry is where a machine learning practitioner can keep track of experiments and model versions. The [&hellip;]","og_url":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/","og_site_name":"Comet","article_publisher":"https:\/\/www.facebook.com\/cometdotml","article_published_time":"2023-09-11T18:00:27+00:00","article_modified_time":"2025-04-24T17:14:12+00:00","og_image":[{"url":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/0*RzaaZaQz9f-CJAHd","type":"","width":"","height":""}],"author":"Mwanikii Njagi","twitter_card":"summary_large_image","twitter_creator":"@Cometml","twitter_site":"@Cometml","twitter_misc":{"Written by":"Mwanikii Njagi","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/#article","isPartOf":{"@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/"},"author":{"name":"Mwanikii Njagi","@id":"https:\/\/www.comet.com\/site\/#\/schema\/person\/c7043b3e6b992af7b3220aa1f27d2162"},"headline":"An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2","datePublished":"2023-09-11T18:00:27+00:00","dateModified":"2025-04-24T17:14:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/"},"wordCount":868,"publisher":{"@id":"https:\/\/www.comet.com\/site\/#organization"},"image":{"@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/0*RzaaZaQz9f-CJAHd","articleSection":["Machine Learning","Tutorials"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/","url":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/","name":"An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2 - Comet","isPartOf":{"@id":"https:\/\/www.comet.com\/site\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/#primaryimage"},"image":{"@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/0*RzaaZaQz9f-CJAHd","datePublished":"2023-09-11T18:00:27+00:00","dateModified":"2025-04-24T17:14:12+00:00","breadcrumb":{"@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/#primaryimage","url":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/0*RzaaZaQz9f-CJAHd","contentUrl":"https:\/\/miro.medium.com\/v2\/resize:fit:700\/0*RzaaZaQz9f-CJAHd"},{"@type":"BreadcrumbList","@id":"https:\/\/www.comet.com\/site\/blog\/an-end-to-end-guide-to-using-comet-mls-model-versioning-feature-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.comet.com\/site\/"},{"@type":"ListItem","position":2,"name":"An End-to-End Guide to Using Comet ML\u2019s Model Versioning Feature: Part 2"}]},{"@type":"WebSite","@id":"https:\/\/www.comet.com\/site\/#website","url":"https:\/\/www.comet.com\/site\/","name":"Comet","description":"Build Better Models Faster","publisher":{"@id":"https:\/\/www.comet.com\/site\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.comet.com\/site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.comet.com\/site\/#organization","name":"Comet ML, Inc.","alternateName":"Comet","url":"https:\/\/www.comet.com\/site\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.comet.com\/site\/#\/schema\/logo\/image\/","url":"https:\/\/www.comet.com\/site\/wp-content\/uploads\/2025\/01\/logo_comet_square.png","contentUrl":"https:\/\/www.comet.com\/site\/wp-content\/uploads\/2025\/01\/logo_comet_square.png","width":310,"height":310,"caption":"Comet ML, Inc."},"image":{"@id":"https:\/\/www.comet.com\/site\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/cometdotml","https:\/\/x.com\/Cometml","https:\/\/www.youtube.com\/channel\/UCmN63HKvfXSCS-UwVwmK8Hw"]},{"@type":"Person","@id":"https:\/\/www.comet.com\/site\/#\/schema\/person\/c7043b3e6b992af7b3220aa1f27d2162","name":"Mwanikii Njagi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.comet.com\/site\/#\/schema\/person\/image\/1a3c516cf04aca9418dfb2213081f4df","url":"https:\/\/www.comet.com\/site\/wp-content\/uploads\/2023\/08\/cropped-1_2jy9gyk0G_yaniWm8gJFVA-1-96x96.webp","contentUrl":"https:\/\/www.comet.com\/site\/wp-content\/uploads\/2023\/08\/cropped-1_2jy9gyk0G_yaniWm8gJFVA-1-96x96.webp","caption":"Mwanikii Njagi"},"url":"https:\/\/www.comet.com\/site\/blog\/author\/freddynjagigmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts\/7421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/users\/79"}],"replies":[{"embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/comments?post=7421"}],"version-history":[{"count":1,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts\/7421\/revisions"}],"predecessor-version":[{"id":15549,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/posts\/7421\/revisions\/15549"}],"wp:attachment":[{"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/media?parent=7421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/categories?post=7421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/tags?post=7421"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.comet.com\/site\/wp-json\/wp\/v2\/coauthors?post=7421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}