{"id":14476,"date":"2026-09-09T13:08:19","date_gmt":"2026-09-09T07:38:19","guid":{"rendered":"https:\/\/www.scaler.com\/blog\/?p=14476"},"modified":"2026-09-09T16:55:26","modified_gmt":"2026-09-09T11:25:26","slug":"how-to-improve-deep-learning-skills-and-become-job-ready","status":"publish","type":"post","link":"https:\/\/www.scaler.com\/blog\/how-to-improve-deep-learning-skills-and-become-job-ready\/","title":{"rendered":"How to Improve Deep Learning Skills and Become Job-Ready"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You can finish three deep learning courses, build a CNN, and still find yourself stuck when the same model stops working on your own dataset. Maybe changing a few parameters does nothing, the validation loss starts behaving strangely, or the model simply refuses to learn. This is where you start moving from following a training process to figuring out what is actually happening inside it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When you work through a tutorial, the dataset is usually clean, the architecture is already defined, and the training process has been tested before you run it. With your own data, you\u2019ll have to deal with missing values, unexpected class distributions, an unsuitable loss function, GPU memory errors, or a validation setup that gives misleading results. You need to trace the problem back to its source and decide what to change.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re running into these problems, that doesn\u2019t mean you\u2019re behind. Courses are designed to help you understand the concepts and get a working model. As you start applying those concepts yourself, the questions change: why is the model not learning, which part of the pipeline is causing the problem, and what should you test next? Learning to work through those questions is a major part of becoming job-ready in deep learning.<\/p>\n\n\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Scaler Carousel<\/title>\n\n<!-- Plus Jakarta Sans Font -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n<!-- Swiper CSS -->\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\">\n\n<style>\n.scaler-carousel {\n  font-family: 'Plus Jakarta Sans', sans-serif;\n  max-width: 900px;\n  margin: 24px auto;\n  padding: 0;\n  box-sizing: border-box;\n}\n.scaler-carousel *,\n.scaler-carousel *::before,\n.scaler-carousel *::after {\n  box-sizing: border-box;\n}\n\n\/* Header *\/\n.scaler-header {\n  text-align: center;\n  margin-bottom: 20px;\n}\n.scaler-header-title {\n  font-size: 22px;\n  font-weight: 700;\n  color: #1a1a2e;\n  margin: 0 0 6px;\n  line-height: 1.2;\n}\n.scaler-header-subtitle {\n  font-size: 14px;\n  color: #6b7280;\n  margin: 0;\n  font-weight: 500;\n}\n\n\/* Swiper *\/\n.swiper.scaler-swiper {\n  padding-bottom: 48px;\n}\n.scaler-swiper .swiper-slide {\n  height: auto;\n  display: flex;\n  align-items: stretch;\n}\n\/* Navigation arrows \u2014 styled to match the topics HorizontalScroll controls *\/\n.scaler-swiper .swiper-button-next,\n.scaler-swiper .swiper-button-prev {\n  width: 46px;\n  height: 46px;\n  border-radius: 8px;\n  background: #ffffff;\n  box-shadow: 0 8px 16px 0 rgba(50, 71, 102, 0.16);\n  top: calc(50% - 24px); \/* centre on the cards, ignoring the pagination space below *\/\n  transform: translateY(-50%);\n  margin-top: 0;\n}\n.scaler-swiper .swiper-button-prev { left: 10px; }\n.scaler-swiper .swiper-button-next { right: 10px; }\n\/* hide Swiper's default font-icon arrow and draw the topics chevron via a mask *\/\n.scaler-swiper .swiper-button-next::after,\n.scaler-swiper .swiper-button-prev::after {\n  content: \"\";\n  width: 20px;\n  height: 20px;\n  background-color: #61738e;\n  -webkit-mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 32 32'%3E%3Cpath d='M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z'\/%3E%3C\/svg%3E\") no-repeat center \/ contain;\n  mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 32 32'%3E%3Cpath d='M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z'\/%3E%3C\/svg%3E\") no-repeat center \/ contain;\n}\n.scaler-swiper .swiper-button-prev::after { transform: rotate(-90deg); }\n.scaler-swiper .swiper-button-next::after { transform: rotate(90deg); }\n.scaler-swiper .swiper-button-disabled {\n  opacity: 0.35;\n  pointer-events: none;\n}\n.scaler-swiper .swiper-pagination-bullet-active {\n  background: #255aad;\n}\n\n\/* Card *\/\n.scaler-card {\n  display: flex;\n  flex-direction: column;\n  gap: 14px;\n  width: 100%;\n  background: #ffffff;\n  border: 1px solid #e5e7eb;\n  border-radius: 16px;\n  padding: 24px;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n  transition: box-shadow 0.2s ease;\n}\n.scaler-card:hover {\n  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.10);\n}\n\n\/* NSDC badge *\/\n.scaler-badge {\n  display: inline-flex;\n  align-items: center;\n  align-self: flex-start;\n  background: #f3f4f6;\n  color: #111827;\n  font-size: 12px;\n  font-weight: 600;\n  padding: 4px 10px;\n  border-radius: 20px;\n  white-space: nowrap;\n  letter-spacing: 0.1px;\n}\n\n\/* Top: icon + title + description *\/\n.scaler-card-top {\n  display: flex;\n  align-items: flex-start;\n  gap: 12px;\n  min-height: 100px;\n}\n.scaler-icon-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 64px;\n  height: 64px;\n  border-radius: 12px;\n  background: #f3f4f6;\n  color: #374151;\n  flex-shrink: 0;\n}\n.scaler-icon-wrap svg {\n  width: 26px;\n  height: 26px;\n}\n.scaler-card-top-content {\n  flex: 1;\n  min-width: 0;\n  display: flex;\n  flex-direction: column;\n  gap: 5px;\n}\n.scaler-title {\n  font-size: 16px;\n  font-weight: 700;\n  color: #111827;\n  margin: 0;\n  line-height: 1.35;\n}\n.scaler-desc {\n  font-size: 13px;\n  color: #6b7280;\n  margin: 0;\n  line-height: 1.45;\n}\n\n\/* Stats row *\/\n.scaler-stats {\n  display: flex;\n  border-top: 1px solid #e5e7eb;\n  border-bottom: 1px solid #e5e7eb;\n  padding: 12px 0;\n}\n.scaler-stat {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 2px;\n  flex: 1;\n  min-width: 0;\n  text-align: center;\n}\n.scaler-stat:not(:last-child) {\n  border-right: 1px solid #d1d5db;\n}\n.scaler-stat-value {\n  font-size: 14px;\n  font-weight: 700;\n  color: #111827;\n  white-space: nowrap;\n}\n.scaler-stat-label {\n  font-size: 12px;\n  color: #9ca3af;\n}\n\n\/* Company logos *\/\n.scaler-logos {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  flex-wrap: nowrap;\n}\n.scaler-company-logo {\n  height: 20px !important;\n  width: auto !important;\n  max-width: 70px;\n  object-fit: contain;\n  display: inline-block;\n}\n.scaler-logo-more {\n  font-size: 12px;\n  color: #9ca3af;\n  white-space: nowrap;\n}\n.scaler-logo-strip {\n  display: block;\n  width: 100% !important;\n  max-width: 100%;\n  min-width: 0;\n  height: auto !important;\n  object-fit: contain;\n}\n\n\/* CTA *\/\n.scaler-card-btns {\n  margin-top: auto;\n}\n.scaler-card-btns button {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  width: 100%;\n  padding: 12px 16px;\n  border: none;\n  border-radius: 10px;\n  background-color: #255aad;\n  color: #ffffff;\n  font-family: 'Plus Jakarta Sans', sans-serif;\n  font-size: 14px;\n  font-weight: 600;\n  cursor: pointer;\n  text-decoration: none;\n  transition: opacity 0.15s ease;\n}\n.scaler-card-btns button:hover,\n.scaler-card-btns button:focus {\n  opacity: 0.88;\n  color: #ffffff;\n}\n.scaler-card-btns button svg {\n  flex-shrink: 0;\n}\n\n@media (max-width: 1000px) {\n  .scaler-carousel { max-width: 96vw; }\n}\n<\/style>\n\n\n<div class=\"scaler-carousel\">\n  <div class=\"scaler-header\">\n    <h2 class=\"scaler-header-title\"><span class=\"ez-toc-section\" id=\"transform-your-career\"><\/span>Transform Your Career<span class=\"ez-toc-section-end\"><\/span><\/h2>\n    <p class=\"scaler-header-subtitle\">Choose from our industry-leading programs designed for career success<\/p>\n  <\/div>\n\n  <div class=\"swiper scaler-swiper\">\n    <div class=\"swiper-wrapper\">\n\n      <!-- CARD 1 -->\n      <div class=\"swiper-slide\">\n        <div class=\"scaler-card\">\n          <div class=\"scaler-badge\">NSDC Certified<\/div>\n          <div class=\"scaler-card-top\">\n            <div class=\"scaler-icon-wrap\">\n              <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg>\n            <\/div>\n            <div class=\"scaler-card-top-content\">\n              <h3 class=\"scaler-title\">Modern Software and AI Engineering Program<\/h3>\n              <p class=\"scaler-desc\">Master full-stack development with AI integration<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"scaler-stats\">\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">12 Months<\/span><span class=\"scaler-stat-label\">Duration<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">AI-Led<\/span><span class=\"scaler-stat-label\">Curriculum<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">Career Support<\/span><span class=\"scaler-stat-label\">Support<\/span><\/div>\n          <\/div>\n          <div class=\"scaler-logos\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/2\/2f\/Google_2015_logo.svg\" alt=\"Google\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/a9\/Amazon_logo.svg\" alt=\"Amazon\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/4\/42\/Paytm_logo.png\" alt=\"Paytm\" loading=\"lazy\">\n            <span class=\"scaler-logo-more\">+1000 more<\/span>\n          <\/div>\n          <div class=\"scaler-card-btns\">\n            <button onclick=\"window.open('https:\/\/www.scaler.com\/academy\/', '_blank')\">\n              Go to Program\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8H13M13 8L9 4M13 8L9 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- CARD 2 -->\n      <div class=\"swiper-slide\">\n        <div class=\"scaler-card\">\n          <div class=\"scaler-badge\">NSDC Certified<\/div>\n          <div class=\"scaler-card-top\">\n            <div class=\"scaler-icon-wrap\">\n              <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"\/><path d=\"M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5\"\/><path d=\"M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3\"\/><\/svg>\n            <\/div>\n            <div class=\"scaler-card-top-content\">\n              <h3 class=\"scaler-title\">Modern Data Science and ML with specialisation in AI<\/h3>\n              <p class=\"scaler-desc\">Advanced data science techniques with AI specialization<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"scaler-stats\">\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">12 Months<\/span><span class=\"scaler-stat-label\">Duration<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">AI-Led<\/span><span class=\"scaler-stat-label\">Curriculum<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">Career Support<\/span><span class=\"scaler-stat-label\">Support<\/span><\/div>\n          <\/div>\n          <div class=\"scaler-logos\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/2\/2f\/Google_2015_logo.svg\" alt=\"Google\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/a9\/Amazon_logo.svg\" alt=\"Amazon\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/4\/42\/Paytm_logo.png\" alt=\"Paytm\" loading=\"lazy\">\n            <span class=\"scaler-logo-more\">+1000 more<\/span>\n          <\/div>\n          <div class=\"scaler-card-btns\">\n            <button onclick=\"window.open('https:\/\/www.scaler.com\/data-science-course\/', '_blank')\">\n              Go to Program\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8H13M13 8L9 4M13 8L9 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- CARD 3 -->\n      <div class=\"swiper-slide\">\n        <div class=\"scaler-card\">\n          <div class=\"scaler-badge\">NSDC Certified<\/div>\n          <div class=\"scaler-card-top\">\n            <div class=\"scaler-icon-wrap\">\n              <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L13.5 8.5L20 10L13.5 11.5L12 18L10.5 11.5L4 10L10.5 8.5L12 2Z\"\/><\/svg>\n            <\/div>\n            <div class=\"scaler-card-top-content\">\n              <h3 class=\"scaler-title\">Advanced AIML with Specialisation in Agentic AI<\/h3>\n              <p class=\"scaler-desc\">Deep dive into AIML with focus on Agentic systems<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"scaler-stats\">\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">12 Months<\/span><span class=\"scaler-stat-label\">Duration<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">AI-Led<\/span><span class=\"scaler-stat-label\">Curriculum<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">Career Support<\/span><span class=\"scaler-stat-label\">Support<\/span><\/div>\n          <\/div>\n          <div class=\"scaler-logos\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/2\/2f\/Google_2015_logo.svg\" alt=\"Google\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/a9\/Amazon_logo.svg\" alt=\"Amazon\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/4\/42\/Paytm_logo.png\" alt=\"Paytm\" loading=\"lazy\">\n            <span class=\"scaler-logo-more\">+1000 more<\/span>\n          <\/div>\n          <div class=\"scaler-card-btns\">\n            <button onclick=\"window.open('https:\/\/www.scaler.com\/ai-machine-learning-course\/', '_blank')\">\n              Go to Program\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8H13M13 8L9 4M13 8L9 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- CARD 4 -->\n      <div class=\"swiper-slide\">\n        <div class=\"scaler-card\">\n          <div class=\"scaler-badge\">NSDC Certified<\/div>\n          <div class=\"scaler-card-top\">\n            <div class=\"scaler-icon-wrap\">\n              <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <path d=\"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z\" \/>\n                <path d=\"M9.2 15.2a3 3 0 1 0 4.24-4.24\" \/>\n              <\/svg>\n            <\/div>\n            <div class=\"scaler-card-top-content\">\n              <h3 class=\"scaler-title\">DevOps, Cloud &#038; AI Platform Engineering<\/h3>\n              <p class=\"scaler-desc\">Build and manage AI-powered cloud infrastructure<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"scaler-stats\">\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">12 Months<\/span><span class=\"scaler-stat-label\">Duration<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">AI-Led<\/span><span class=\"scaler-stat-label\">Curriculum<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">Career Support<\/span><span class=\"scaler-stat-label\">Support<\/span><\/div>\n          <\/div>\n          <div class=\"scaler-logos\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/2\/2f\/Google_2015_logo.svg\" alt=\"Google\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/a9\/Amazon_logo.svg\" alt=\"Amazon\" loading=\"lazy\">\n            <img decoding=\"async\" class=\"scaler-company-logo\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/4\/42\/Paytm_logo.png\" alt=\"Paytm\" loading=\"lazy\">\n            <span class=\"scaler-logo-more\">+1000 more<\/span>\n          <\/div>\n          <div class=\"scaler-card-btns\">\n            <button onclick=\"window.open('https:\/\/www.scaler.com\/devops-course\/', '_blank')\">\n              Go to Program\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8H13M13 8L9 4M13 8L9 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- CARD 5 -->\n      <div class=\"swiper-slide\">\n        <div class=\"scaler-card\">\n          <div class=\"scaler-badge\">NSDC Certified<\/div>\n          <div class=\"scaler-card-top\">\n            <div class=\"scaler-icon-wrap\">\n              <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <line x1=\"3\" y1=\"22\" x2=\"21\" y2=\"22\" \/>\n                <line x1=\"6\" y1=\"18\" x2=\"6\" y2=\"11\" \/>\n                <line x1=\"10\" y1=\"18\" x2=\"10\" y2=\"11\" \/>\n                <line x1=\"14\" y1=\"18\" x2=\"14\" y2=\"11\" \/>\n                <line x1=\"18\" y1=\"18\" x2=\"18\" y2=\"11\" \/>\n                <polygon points=\"12 2 20 7 4 7\" \/>\n              <\/svg>\n            <\/div>\n            <div class=\"scaler-card-top-content\">\n              <h3 class=\"scaler-title\">AI Engineering Advanced Certification by IIT-Roorkee<\/h3>\n              <p class=\"scaler-desc\">Premier AI engineering certification from IIT-Roorkee<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"scaler-stats\">\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">3 Months<\/span><span class=\"scaler-stat-label\">Duration<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">AI-Led<\/span><span class=\"scaler-stat-label\">Curriculum<\/span><\/div>\n            <div class=\"scaler-stat\"><span class=\"scaler-stat-value\">Career Support<\/span><span class=\"scaler-stat-label\">Support<\/span><\/div>\n          <\/div>\n          <div class=\"scaler-logos\">\n            <img decoding=\"async\" class=\"scaler-logo-strip\" src=\"https:\/\/scaler-blog-prod-wp-content.s3.ap-south-1.amazonaws.com\/wp-content\/uploads\/2026\/07\/08135139\/iitr-icons-strip.png\" alt=\"Program highlights\" loading=\"lazy\">\n          <\/div>\n          <div class=\"scaler-card-btns\">\n            <button onclick=\"window.open('https:\/\/www.scaler.com\/iit-roorkee-advanced-ai-engineering-course\/', '_blank')\">\n              Go to Program\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8H13M13 8L9 4M13 8L9 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Continue for remaining cards (6\u20138) using same pattern -->\n\n    <\/div>\n    <div class=\"swiper-button-next\"><\/div>\n    <div class=\"swiper-button-prev\"><\/div>\n    <div class=\"swiper-pagination\"><\/div>\n  <\/div>\n<\/div>\n\n<!-- Swiper.js -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  const pathParts = window.location.pathname.split(\"\/\").filter(Boolean);\n  const slug = pathParts[pathParts.length - 1] || \"\";\n  const readableSlug = encodeURIComponent(slug);\n  const buttons = document.querySelectorAll(\".scaler-card-btns button\");\n\n  buttons.forEach((btn) => {\n    const baseURL = btn.getAttribute(\"onclick\").match(\/'(.*?)'\/)[1];\n    if (!baseURL.includes(\"utm_source=\")) {\n      const separator = baseURL.includes(\"?\") ? \"&\" : \"?\";\n      const updatedURL = `${baseURL}${separator}utm_source=blog&utm_medium=program_carousel&utm_content=${readableSlug}`;\n      btn.setAttribute(\"onclick\", `window.open('${updatedURL}', '_blank')`);\n    }\n  });\n\n  new Swiper(\".scaler-swiper\", {\n    slidesPerView: 1,\n    spaceBetween: 28,\n    grabCursor: true,\n    navigation: { nextEl: \".swiper-button-next\", prevEl: \".swiper-button-prev\" },\n    pagination: { el: \".swiper-pagination\", dynamicBullets: true, clickable: true },\n    breakpoints: { 1000: { slidesPerView: 2 } },\n    keyboard: { enabled: true },\n  });\n});\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"what-a-deep-learning-engineer-does\"><\/span><strong>What a Deep Learning Engineer Does<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A deep learning engineer might start with a model, but a lot of the work happens before and after training. You may spend hours checking the data, fixing a preprocessing pipeline, investigating a failed run, or comparing where the model is making mistakes. Even when the training looks good, you still have to check inference time, memory usage, serving, and whether you can reproduce the result.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An interviewer will likely ask you to take a walk through the architecture you&#8217;ve designed, based on a research paper, but the conversation will typically extend beyond that. You may need to describe why the architecture was unsuccessful, what you looked at, what changes you made, and what you found that was successful.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Research scientist positions are different and often require a PhD because developing new methods and publishing research are a central part of the role. Applied roles are more focused on implementation, experimentation, debugging, and getting models to work reliably.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Deep Learning Engineer vs Machine Learning Engineer vs AI Engineer<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">One company may call a role AI Engineer while another uses ML Engineer for very similar work. The responsibilities in the job description are a better indicator of the actual role than the title. You can build your <a href=\"https:\/\/www.scaler.com\/blog\/skills-for-machine-learning\/\">machine learning skills<\/a>, which can also help you become eligible for more of these roles.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Aspect<\/strong><\/td><td><strong>Deep Learning Engineer<\/strong><\/td><td><strong>Machine Learning Engineer<\/strong><\/td><td><strong>AI Engineer<\/strong><\/td><\/tr><tr><td><strong>Typical scope<\/strong><\/td><td>Neural network training, model optimisation, computer vision\/NLP, inference, and foundation-model adaptation<\/td><td>End-to-end ML systems, data pipelines, feature engineering, modelling, deployment, and monitoring<\/td><td>Building AI-powered products using models, APIs, agents, ML systems, and foundation models<\/td><\/tr><tr><td><strong>What they&#8217;re screened for<\/strong><\/td><td>DL fundamentals, architectures, PyTorch, training\/debugging, GPU usage, and inference<\/td><td>ML fundamentals, statistics, modelling, data handling, deployment, and system thinking<\/td><td>Applied AI knowledge, model selection, evaluation, APIs, integration, and LLM workflows<\/td><\/tr><tr><td><strong>Common tools<\/strong><\/td><td>PyTorch, TensorFlow\/Keras, CUDA, Hugging Face, experiment trackers<\/td><td>Python, scikit-learn, PyTorch\/TensorFlow, SQL, MLflow, cloud platforms<\/td><td>Python, model APIs, Hugging Face, LLM frameworks, vector databases, cloud platforms<\/td><\/tr><tr><td><strong>Where the title appears in Indian job posts<\/strong><\/td><td>More often in specialised vision, NLP, research, and model-development teams<\/td><td>The broadest of the three, with roles across product companies, services firms, and GCCs<\/td><td>Increasingly common in AI-first companies and teams building generative-AI products<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A job titled \u201cML Engineer\u201d can involve deep learning every day. If the JD asks you to train vision models, optimise inference, work with CUDA, and fine-tune foundation models, the work is clearly deep-learning-heavy. An \u201cAI Engineer\u201d role that mainly involves integrating model APIs into an existing product calls for a different set of skills.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The Indian Market Reality<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pure deep-learning roles at the fresher level are more specialised than you might expect. The skills are being hired, but the job title may be Machine Learning Engineer, AI Engineer, Applied Scientist, Computer Vision Engineer, NLP Engineer, or Software Engineer, AI\/ML.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The work is spread across product companies, AI-first startups, global capability centres (GCCs), and services firms. One team might train computer-vision models, another might adapt foundation models, while another might need an engineer who can deploy and maintain models developed by a research team.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Salary searches can be misleading for the same reason. If you are researching deep learning engineer salary india, compare roles based on the company, location, experience level, and responsibilities, not just the job title.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can read more about this at: <a href=\"https:\/\/www.scaler.com\/blog\/ai-ml-engineer-salary\/\">AI and ML engineer salaries in India<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Searching only for \u201cdeep learning engineer\u201d can make the market look smaller than it is. So, it\u2019s best to search for the kind of work you want to do, then read the responsibilities and requirements before deciding whether the role fits your skills.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"the-deep-learning-engineer-skills-map-eight-tiers\"><\/span><strong>The Deep Learning Engineer Skills Map: Eight Tiers<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tiers 1 &#8211; 3 cover the skills required for deep learning, 4 &#8211; 6 focus on putting those skills into practice, and 7 &#8211; 8 move into areas that require a stronger skill set than most entry-level roles. Look at where you currently stand and use the next tier as a guide for what to work on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a step-by-step learning path, check out the <a href=\"https:\/\/www.scaler.com\/blog\/deep-learning-roadmap\/\">Deep Learning Roadmap<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 1: Maths Foundations, at the Depth Actually Needed<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The main deep learning prerequisites are not as extensive as they may seem. You need enough maths to understand what the model is doing and to recognise when something has gone wrong.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>Linear algebra<\/td><td>Tensors, matrix multiplication, and shape operations sit underneath neural networks<\/td><td>Explain tensor shapes, matrix multiplication, or broadcasting<\/td><td>Implement a small neural network in NumPy and explain the shapes<\/td><\/tr><tr><td>Calculus<\/td><td>Backpropagation relies on the chain rule<\/td><td>Walk through how a gradient is calculated<\/td><td>Implement backpropagation by hand<\/td><\/tr><tr><td>Probability<\/td><td>Helps with distributions, expectation, uncertainty, and classification losses<\/td><td>Explain probability distributions or why cross-entropy is used<\/td><td>Include the mathematical reasoning behind a classification project<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Try looking at a training curve or stack trace and working out what could be happening mathematically inside the model. You should be able to connect the behaviour you see to things like the loss function, gradients, activations, or parameter updates, even if you\u2019re not deriving every equation from scratch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also refer to the <a href=\"https:\/\/www.scaler.com\/topics\/machine-learning\/perceptron-learning-algorithm\/\">Perceptron Learning Algorithm<\/a> to understand the basics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As an exercise, you can try to implement backpropagation for a two-layer neural network in NumPy by hand. Once you have traced the forward pass, calculated the gradients, and updated the weights yourself, the mechanics become much easier to reason about.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Explore:<\/strong> <a href=\"https:\/\/www.scaler.com\/topics\/course\/mathematics-for-machine-learning-free-course\/\"><strong>Free Mathematics for Machine Learning Online Certification Course<\/strong><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 2: Core Deep Learning Mechanics<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You should be able to describe the entire training process without hiding behind .fit(): forward pass, loss calculation, backward pass, and parameter update.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>Forward and backward pass<\/td><td>Shows whether you understand how a network learns<\/td><td>Explain backpropagation using a concrete example<\/td><td>Write your own training loop<\/td><\/tr><tr><td>Loss functions<\/td><td>The loss determines what the model is optimising<\/td><td>Compare cross-entropy and MSE and explain when each fits<\/td><td>Justify the loss function in a project<\/td><\/tr><tr><td>Optimisers<\/td><td>Optimisation affects whether and how quickly a model learns<\/td><td>Compare SGD, momentum, Adam, and AdamW<\/td><td>Show experiments with different optimisers<\/td><\/tr><tr><td>Learning rate<\/td><td>It is often the most consequential hyperparameter when training a model<\/td><td>Explain what happens when the learning rate is too high or too low<\/td><td>Document learning-rate experiments<\/td><\/tr><tr><td>Regularisation<\/td><td>Helps control overfitting<\/td><td>Explain dropout or another regularisation technique<\/td><td>Show how validation performance changed<\/td><\/tr><tr><td>Initialisation and normalisation<\/td><td>Poor initialisation or normalisation can make training unstable<\/td><td>Explain why zero initialisation breaks a neural network or compare batch norm with layer norm<\/td><td>Include the reasoning behind training choices<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">When you\u2019re asked to explain backpropagation, start with a concrete example and trace the process backwards using the chain rule. Show how the error reaches a specific parameter and how that parameter is updated. You should be able to follow that calculation through the network rather than stopping at the definition that backpropagation updates the weights.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To understand how neural networks are structured, check out <a href=\"https:\/\/www.scaler.com\/blog\/artificial-neural-network-architecture-how-it-works\/\">Artificial Neural Network Architecture: How It Works<\/a>.<\/p>\n\n\n<meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n    <!-- Source Sans Pro (topics font) -->\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Source+Sans+3:wght@400;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\">\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\n\n    <style>\n      :root {\n        \/* topics design tokens (variables.scss) *\/\n        --scaler-primary: #005bb3;          \/* primary-color-80 *\/\n        --scaler-primary-30: #8acaff;       \/* primary-color-30 *\/\n        --scaler-brand-blue: #255aad;\n        --scaler-live: #ee001d;             \/* accent-v5-60 *\/\n        --scaler-live-bg: #ffe6e9;          \/* accent-v5-10 *\/\n        --scaler-card-bg: #ffffff;          \/* neutral-scale-0 *\/\n        --scaler-surface: #f4f6f9;          \/* neutral-scale-2 *\/\n        --scaler-text-primary: #1a2c47;     \/* neutral-scale-12 *\/\n        --scaler-text-secondary: #61738e;   \/* neutral-scale-9 *\/\n        --scaler-border: #d6dee5;           \/* neutral-scale-4 *\/\n        --scaler-radius: 16px;\n        --scaler-radius-sm: 8px;\n        --scaler-shadow: 0 8px 16px 0 rgba(50, 71, 102, 0.16);\n      }\n\n      .scaler-events-carousel * { box-sizing: border-box; }\n\n      .scaler-events-carousel {\n        font-family: \"Source Sans 3\", \"Source Sans Pro\", \"Roboto\", Arial, sans-serif;\n        padding: 24px;\n        position: relative;\n        width: 100%;\n      }\n      .scaler-events-carousel__inner {\n        max-width: 1000px;\n        margin: 0 auto;\n        position: relative;\n        width: 100%;\n      }\n\n      \/* Header \u2014 calendar icon + \"Live Masterclasses\" *\/\n      .scaler-events-header {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n        margin-bottom: 8px;\n        padding: 8px 0;\n      }\n      .scaler-events-header__icon { display: inline-flex; color: var(--scaler-text-primary); }\n      .scaler-events-header__icon svg { width: 24px; height: 24px; }\n      .scaler-events-header__title {\n        font-size: 18px;\n        font-weight: 700;\n        color: var(--scaler-text-primary);\n        line-height: 1.3;\n        margin: 0;\n      }\n\n      \/* Swiper wrap (holds side arrows) *\/\n      .scaler-events-swiper-wrap { position: relative; }\n      .scaler-events-carousel .swiper { width: 100%; padding: 4px; }\n      .scaler-event-swiper .swiper-slide {\n        width: 296px;          \/* topics card_container width *\/\n        height: auto;\n        display: flex;\n      }\n\n      \/* Event Card \u2014 matches topics EventCard *\/\n      .scaler-event-card {\n        background: var(--scaler-card-bg);\n        border: 1px solid var(--scaler-border);\n        border-radius: var(--scaler-radius);\n        padding: 16px;\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n        width: 100%;\n        cursor: pointer;\n      }\n\n      \/* Header row: headshot + title\/name *\/\n      .scaler-event-card__header { display: flex; align-items: flex-start; }\n      .scaler-event-card__image-wrapper {\n        position: relative;\n        width: 88px;\n        height: 88px;\n        min-width: 88px;\n        border-radius: var(--scaler-radius-sm);\n        overflow: hidden;\n        background: var(--scaler-primary-30);\n      }\n      .scaler-event-card__image {\n        position: absolute;\n        top: 0; left: 0;\n        width: 100%; height: 100%;\n        object-fit: cover;\n      }\n      \/* attendee-count footer (default) *\/\n      .scaler-event-card__img-footer {\n        position: absolute;\n        left: 0; right: 0; bottom: 0;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 4px;\n        padding: 1px 8px;\n        background: var(--scaler-surface);\n        color: var(--scaler-text-primary);\n        font-size: 13px;\n        line-height: 22px;\n      }\n      .scaler-event-card__img-footer svg { width: 14px; height: 14px; }\n      \/* live chip (shown when status === current) *\/\n      .scaler-event-card__live-badge {\n        position: absolute;\n        left: 0; right: 0; bottom: 0;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 5px;\n        padding: 1px 8px;\n        background: var(--scaler-live-bg);\n        color: var(--scaler-live);\n        font-size: 12px;\n        line-height: 22px;\n        text-transform: uppercase;\n        letter-spacing: 0.18em;\n      }\n      .scaler-event-card__live-badge::before {\n        content: \"\";\n        width: 6px; height: 6px;\n        background: var(--scaler-live);\n        border-radius: 50%;\n      }\n      .scaler-event-card__text { margin-left: 16px; min-width: 0; }\n      .scaler-event-card__title {\n        font-size: 20px;\n        font-weight: 600;\n        color: var(--scaler-text-primary);\n        margin: 0;\n        line-height: 1.4;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n      }\n      .scaler-event-card__speaker {\n        margin-top: 8px;\n        font-size: 14px;\n        line-height: 1.4;\n        color: var(--scaler-text-primary);\n      }\n\n      \/* Takeaways *\/\n      .scaler-event-card__takeaways {\n        margin-top: 12px;\n        min-height: 50px;\n        max-height: 50px;\n        overflow: hidden;\n      }\n      .scaler-event-card__takeaway-item {\n        display: flex;\n        align-items: flex-start;\n        gap: 6px;\n      }\n      .scaler-event-card__dot {\n        width: 4px; height: 4px;\n        min-width: 4px;\n        border-radius: 50%;\n        background: var(--scaler-text-secondary);\n        margin-top: 11px;\n      }\n      .scaler-event-card__takeaway-text {\n        flex: 1;\n        min-width: 0;\n        font-size: 14px;\n        line-height: 24px;\n        color: var(--scaler-text-primary);\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      }\n      .scaler-event-card__knowmore,\n      .scaler-event-card__knowmore:link,\n      .scaler-event-card__knowmore:visited {\n        flex-shrink: 0;\n        font-size: 14px;\n        line-height: 24px;\n        color: var(--scaler-primary) !important;\n        text-decoration: none;\n        white-space: nowrap;\n      }\n      .scaler-event-card__knowmore:hover { text-decoration: underline; }\n\n      \/* Date + duration *\/\n      .scaler-event-card__meta {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        margin-top: 20px;\n        font-size: 13px;\n        line-height: 24px;\n        color: var(--scaler-text-primary);\n      }\n      .scaler-event-card__duration {\n        display: flex;\n        align-items: center;\n        gap: 4px;\n      }\n      .scaler-event-card__duration svg { width: 15px; height: 15px; }\n\n      .scaler-event-card__spacer { flex-grow: 1; min-height: 4px; }\n\n      \/* CTA \u2014 outlined \"Register with 1-Click\" *\/\n      .scaler-event-card__cta,\n      .scaler-event-card__cta:link,\n      .scaler-event-card__cta:visited {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 100%;\n        margin-top: 16px;\n        padding: 8px;\n        background: transparent;\n        color: var(--scaler-primary) !important;\n        font-family: inherit;\n        font-size: 14px;\n        font-weight: 600;\n        line-height: 24px;\n        text-decoration: none;\n        border: 1px solid var(--scaler-primary);\n        border-radius: var(--scaler-radius-sm);\n        cursor: pointer;\n        transition: background 0.2s ease, color 0.2s ease;\n      }\n      .scaler-event-card__cta:hover,\n      .scaler-event-card__cta:focus {\n        background: var(--scaler-primary);\n        color: #fff !important;\n      }\n\n      \/* Side navigation arrows *\/\n      .scaler-events-nav__btn {\n        position: absolute !important;\n        top: 50% !important;\n        transform: translateY(-50%) !important;\n        z-index: 2;\n        width: 46px !important;\n        height: 46px !important;\n        min-width: 46px;\n        display: flex !important;\n        align-items: center;\n        justify-content: center;\n        padding: 0 !important;\n        background: var(--scaler-card-bg) !important;\n        border: none !important;\n        border-radius: var(--scaler-radius-sm) !important;\n        box-shadow: var(--scaler-shadow) !important;\n        color: var(--scaler-text-secondary) !important;\n        cursor: pointer;\n        transition: opacity 0.2s ease, visibility 0.2s ease;\n      }\n      .scaler-nav-prev { left: 8px !important; }\n      .scaler-nav-next { right: 8px !important; }\n      .scaler-events-nav__btn svg {\n        width: 20px !important;\n        height: 20px !important;\n        fill: var(--scaler-text-secondary) !important;\n      }\n      .scaler-events-nav__btn.swiper-button-disabled {\n        opacity: 0;\n        visibility: hidden;\n        pointer-events: none;\n      }\n\n      \/* View All Events *\/\n      .scaler-events-viewall,\n      .scaler-events-viewall:link,\n      .scaler-events-viewall:visited {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 6px;\n        margin-top: 12px;\n        font-size: 14px;\n        font-weight: 600;\n        color: var(--scaler-brand-blue) !important;\n        text-decoration: none;\n      }\n      .scaler-events-viewall:hover { text-decoration: underline; }\n      .scaler-events-viewall svg { width: 16px; height: 16px; fill: var(--scaler-brand-blue); }\n\n      \/* hide swiper defaults *\/\n      .scaler-events-pagination { display: none; }\n      .scaler-events-carousel .swiper-button-prev,\n      .scaler-events-carousel .swiper-button-next { display: none; }\n\n      \/* Skeleton & Empty States *\/\n      .scaler-event-card--skeleton { pointer-events: none; }\n      .scaler-event-card--skeleton .scaler-event-card__image-wrapper,\n      .scaler-event-card--skeleton .scaler-event-card__title,\n      .scaler-event-card--skeleton .scaler-event-card__speaker,\n      .scaler-event-card--skeleton .scaler-event-card__takeaways,\n      .scaler-event-card--skeleton .scaler-event-card__meta,\n      .scaler-event-card--skeleton .scaler-event-card__cta {\n        background: linear-gradient(90deg, var(--scaler-border) 25%, var(--scaler-surface) 50%, var(--scaler-border) 75%);\n        background-size: 200% 100%;\n        animation: shimmer 1.5s infinite;\n        color: transparent !important;\n        border-color: transparent !important;\n        border-radius: 4px;\n      }\n      .scaler-event-card--skeleton .scaler-event-card__title { min-height: 44px; }\n      .scaler-event-card--skeleton .scaler-event-card__speaker { min-height: 16px; }\n      .scaler-event-card--skeleton .scaler-event-card__meta { min-height: 24px; }\n      .scaler-event-card--skeleton .scaler-event-card__cta { min-height: 40px; }\n      .scaler-event-card--skeleton .scaler-event-card__image,\n      .scaler-event-card--skeleton .scaler-event-card__img-footer,\n      .scaler-event-card--skeleton .scaler-event-card__live-badge { display: none; }\n\n      @keyframes shimmer {\n        0% { background-position: 200% 0; }\n        100% { background-position: -200% 0; }\n      }\n\n      .scaler-events-empty {\n        text-align: center;\n        padding: 40px 20px;\n        color: var(--scaler-text-secondary);\n        font-size: 15px;\n      }\n\n      @media (max-width: 768px) {\n        .scaler-events-carousel { padding: 16px; }\n        .scaler-event-swiper .swiper-slide { width: calc(100vw - 52px); }\n        .scaler-events-nav__btn { display: none; }\n      }\n    <\/style>\n\n\n\n    <div class=\"scaler-events-carousel js-scaler-carousel\">\n\n      <template class=\"js-event-card-template\">\n        <div class=\"swiper-slide\">\n          <article class=\"scaler-event-card\">\n            <div class=\"scaler-event-card__header\">\n              <div class=\"scaler-event-card__image-wrapper\">\n                <img decoding=\"async\" src=\"\" alt=\"\" class=\"scaler-event-card__image\" loading=\"lazy\">\n                <div class=\"scaler-event-card__img-footer\">\n                  <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M11.199 7.957c-3.086 0-5.588 2.502-5.588 5.588s2.502 5.588 5.588 5.588c3.086 0 5.588-2.502 5.588-5.588s-2.502-5.588-5.588-5.588zM3.611 13.545c0-4.191 3.397-7.588 7.588-7.588s7.588 3.397 7.588 7.588c0 4.191-3.397 7.588-7.588 7.588s-7.588-3.397-7.588-7.588z\"\/><path d=\"M21.090 6.369h0.003c1.989 0 3.897 0.79 5.303 2.197s2.197 3.314 2.197 5.303-0.79 3.897-2.197 5.303c-1.406 1.407-3.314 2.197-5.303 2.197-0.552 0-1-0.448-1-1s0.448-1 1-1c1.459 0 2.858-0.579 3.889-1.611s1.611-2.43 1.611-3.889c0-1.459-0.58-2.858-1.611-3.889s-2.429-1.611-3.888-1.611c-0.507 0.002-1.013 0.070-1.502 0.203-0.533 0.145-1.082-0.17-1.227-0.703s0.17-1.082 0.703-1.227c0.659-0.179 1.339-0.27 2.021-0.272z\"\/><path d=\"M10.906 21.364c-1.605 0-3.186 0.386-4.61 1.126s-2.649 1.811-3.572 3.124c-0.318 0.452-0.941 0.561-1.393 0.243s-0.561-0.941-0.243-1.393c1.107-1.576 2.577-2.862 4.286-3.749s3.606-1.351 5.532-1.351 3.823 0.463 5.532 1.351c1.709 0.888 3.179 2.174 4.286 3.749 0.318 0.452 0.209 1.076-0.243 1.393s-1.076 0.209-1.393-0.243c-0.923-1.313-2.148-2.385-3.572-3.124s-3.005-1.126-4.61-1.126z\"\/><\/svg>\n                  <span class=\"js-event-count\"><\/span>\n                <\/div>\n                <div class=\"scaler-event-card__live-badge\" style=\"display: none;\">Live<\/div>\n              <\/div>\n              <div class=\"scaler-event-card__text\">\n                <h3 class=\"scaler-event-card__title\"><\/h3>\n                <div class=\"scaler-event-card__speaker js-event-speaker\"><\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"scaler-event-card__takeaways js-event-takeaways\"><\/div>\n\n            <div class=\"scaler-event-card__spacer\"><\/div>\n\n            <div class=\"scaler-event-card__meta\">\n              <span class=\"js-event-date\"><\/span>\n              <span class=\"scaler-event-card__duration\">\n                <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M16 6.333c6.443 0 11.667 5.223 11.667 11.667s-5.223 11.667-11.667 11.667c-6.443 0-11.667-5.223-11.667-11.667v0c0.008-6.44 5.226-11.659 11.666-11.667h0.001zM16 28.333c5.707 0 10.333-4.626 10.333-10.333s-4.626-10.333-10.333-10.333c-5.707 0-10.333 4.626-10.333 10.333v0c0.007 5.704 4.629 10.326 10.333 10.333h0.001z\"\/><path d=\"M16 18.667c-0 0-0.001 0-0.001 0-0.184 0-0.35-0.074-0.471-0.195v0c-0.121-0.121-0.195-0.287-0.195-0.471s0.075-0.351 0.195-0.471l4.951-4.952c0.121-0.121 0.287-0.195 0.471-0.195s0.351 0.075 0.471 0.195v0c0.121 0.121 0.195 0.287 0.195 0.471s-0.075 0.351-0.195 0.471l-4.949 4.951c-0.121 0.121-0.288 0.196-0.472 0.196v0z\"\/><path d=\"M19 3.667h-6c-0.368 0-0.667-0.298-0.667-0.667v0c0-0.368 0.298-0.667 0.667-0.667v0h6c0.368 0 0.667 0.298 0.667 0.667v0c0 0.368-0.298 0.667-0.667 0.667v0z\"\/><\/svg>\n                <span class=\"js-event-duration\"><\/span>\n              <\/span>\n            <\/div>\n\n            <a href=\"#\" class=\"scaler-event-card__cta js-event-cta\">Register with 1-Click<\/a>\n          <\/article>\n        <\/div>\n      <\/template>\n\n      <div class=\"scaler-events-carousel__inner\">\n        <header class=\"scaler-events-header\">\n          <span class=\"scaler-events-header__icon\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 33 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M6.406 6.8c-0.11 0-0.2 0.090-0.2 0.2v20c0 0.11 0.090 0.2 0.2 0.2h20c0.11 0 0.2-0.090 0.2-0.2v-20c0-0.11-0.090-0.2-0.2-0.2h-20zM4.606 7c0-0.994 0.806-1.8 1.8-1.8h20c0.994 0 1.8 0.806 1.8 1.8v20c0 0.994-0.806 1.8-1.8 1.8h-20c-0.994 0-1.8-0.806-1.8-1.8v-20z\"\/><path d=\"M22.406 3.2c0.442 0 0.8 0.358 0.8 0.8v4c0 0.442-0.358 0.8-0.8 0.8s-0.8-0.358-0.8-0.8v-4c0-0.442 0.358-0.8 0.8-0.8z\"\/><path d=\"M10.406 3.2c0.442 0 0.8 0.358 0.8 0.8v4c0 0.442-0.358 0.8-0.8 0.8s-0.8-0.358-0.8-0.8v-4c0-0.442 0.358-0.8 0.8-0.8z\"\/><path d=\"M4.606 12c0-0.442 0.358-0.8 0.8-0.8h22c0.442 0 0.8 0.358 0.8 0.8s-0.358 0.8-0.8 0.8h-22c-0.442 0-0.8-0.358-0.8-0.8z\"\/><path d=\"M21.488 16.451c0.303 0.322 0.288 0.828-0.034 1.131l-5.838 5.5c-0.309 0.291-0.791 0.29-1.099-0.002l-3.162-3c-0.321-0.304-0.334-0.81-0.030-1.131s0.81-0.334 1.131-0.030l2.614 2.48 5.287-4.981c0.322-0.303 0.828-0.288 1.131 0.034z\"\/><\/svg>\n          <\/span>\n          <h2 class=\"scaler-events-header__title\"><span class=\"ez-toc-section\" id=\"live-masterclasses\"><\/span>Live Masterclasses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n        <\/header>\n\n        <div class=\"scaler-events-swiper-wrap\">\n          <div class=\"swiper scaler-event-swiper\">\n            <div class=\"swiper-wrapper scaler-events-wrapper\"><\/div>\n            <div class=\"swiper-pagination scaler-events-pagination\"><\/div>\n          <\/div>\n\n          <button class=\"scaler-events-nav__btn scaler-nav-prev\" aria-label=\"Previous slide\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(-90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"\/><\/svg>\n          <\/button>\n          <button class=\"scaler-events-nav__btn scaler-nav-next\" aria-label=\"Next slide\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"\/><\/svg>\n          <\/button>\n        <\/div>\n\n        <a class=\"scaler-events-viewall\" href=\"https:\/\/www.scaler.com\/events\/\">\n          <span>View All Events<\/span>\n          <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n\n      const monthNames = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];\n\n      function formatTime(st) {\n        const t = new Date(st);\n        const date = t.getDate();\n        const month = monthNames[t.getMonth()];\n        const year = t.getFullYear();\n        const h = t.getHours();\n        const m = String(t.getMinutes()).padStart(2, \"0\");\n        let time;\n        if (h === 0) time = `12:${m} AM`;\n        else if (h === 12) time = `12:${m} PM`;\n        else if (h > 12) time = `${h - 12}:${m} PM`;\n        else time = `${h}:${m} AM`;\n        return `${date} ${month} ${year} | ${time}`;\n      }\n\n      const carouselInstances = document.querySelectorAll('.js-scaler-carousel');\n\n      carouselInstances.forEach(container => {\n\n          if(container.dataset.initialized === \"true\") return;\n          container.dataset.initialized = \"true\";\n\n          const swiperElement = container.querySelector(\".scaler-event-swiper\");\n          const swiperWrapper = container.querySelector(\".scaler-events-wrapper\");\n          const template = container.querySelector(\".js-event-card-template\");\n          const nextBtn = container.querySelector(\".scaler-nav-next\");\n          const prevBtn = container.querySelector(\".scaler-nav-prev\");\n          const paginationEl = container.querySelector(\".scaler-events-pagination\");\n\n          if (!swiperWrapper || !template) {\n             console.error(\"Scaler Carousel: Missing required elements inside container\");\n             return;\n          }\n\n          const swiper = new Swiper(swiperElement, {\n            slidesPerView: \"auto\",\n            spaceBetween: 16,\n            grabCursor: true,\n            observer: true,\n            observeParents: true,\n            pagination: {\n                el: paginationEl,\n                clickable: true,\n                dynamicBullets: true\n            },\n            navigation: {\n                nextEl: nextBtn,\n                prevEl: prevBtn\n            },\n          });\n\n          function showSkeletons(count = 4) {\n            swiperWrapper.innerHTML = \"\";\n            for (let i = 0; i < count; i++) {\n              const clone = template.content.cloneNode(true);\n              const card = clone.querySelector(\".scaler-event-card\");\n              card.classList.add(\"scaler-event-card--skeleton\");\n              swiperWrapper.appendChild(clone);\n            }\n            swiper.update();\n          }\n\n          function renderEvents(events) {\n            swiperWrapper.innerHTML = \"\";\n\n            if (events.length === 0) {\n              swiperWrapper.innerHTML = `<div class=\"scaler-events-empty\">No upcoming masterclasses found.<\/div>`;\n              return;\n            }\n\n            const pathParts = location.pathname.split(\"\/\").filter(Boolean);\n            const currentSlug = pathParts.length > 0 ? pathParts[pathParts.length - 1] : \"homepage\";\n\n            events.forEach(event => {\n              const attr = event.attributes;\n              const cd = attr.custom_data || {};\n              const clone = template.content.cloneNode(true);\n              const joinUrl = `\/event\/${attr.slug}\/?utm_source=blog&utm_medium=master_class&utm_content=${currentSlug}`;\n\n              \/\/ Instructor headshot\n              const instructor = (cd.instructors && cd.instructors[0]) || {};\n              const img = clone.querySelector(\".scaler-event-card__image\");\n              img.src = instructor.media_url || attr.image_url ||\n                \"https:\/\/images.unsplash.com\/photo-1531891437562-4301cf35b7e4?w=200&h=200&fit=crop\";\n              img.alt = instructor.name || attr.instructor_name || attr.title;\n\n              \/\/ Title + speaker\n              clone.querySelector(\".scaler-event-card__title\").textContent = attr.title;\n              clone.querySelector(\".js-event-speaker\").textContent = instructor.name || attr.instructor_name || \"\";\n\n              \/\/ Live chip vs attendee count\n              const isLive = attr.status === \"current\";\n              const footer = clone.querySelector(\".scaler-event-card__img-footer\");\n              const liveBadge = clone.querySelector(\".scaler-event-card__live-badge\");\n              if (isLive) {\n                footer.style.display = \"none\";\n                liveBadge.style.display = \"flex\";\n                liveBadge.textContent = \"Live\";\n              } else if (attr.registration_count) {\n                clone.querySelector(\".js-event-count\").textContent = attr.registration_count;\n              } else {\n                footer.style.display = \"none\";\n              }\n\n              \/\/ Takeaways (up to 2, Know More on the last)\n              const takeaways = (cd.takeaways || []).slice(0, 2);\n              const listEl = clone.querySelector(\".js-event-takeaways\");\n              listEl.innerHTML = \"\";\n              takeaways.forEach((t, idx) => {\n                const item = document.createElement(\"div\");\n                item.className = \"scaler-event-card__takeaway-item\";\n                const dot = document.createElement(\"span\");\n                dot.className = \"scaler-event-card__dot\";\n                const txt = document.createElement(\"span\");\n                txt.className = \"scaler-event-card__takeaway-text\";\n                txt.textContent = t;\n                item.appendChild(dot);\n                item.appendChild(txt);\n                if (idx === takeaways.length - 1) {\n                  const km = document.createElement(\"a\");\n                  km.className = \"scaler-event-card__knowmore\";\n                  km.textContent = \"Know More\";\n                  km.href = joinUrl;\n                  item.appendChild(km);\n                }\n                listEl.appendChild(item);\n              });\n\n              \/\/ Date + duration\n              clone.querySelector(\".js-event-date\").textContent = formatTime(attr.start_time);\n              let hrs = \"\";\n              if (attr.duration) {\n                hrs = (attr.duration \/ 60).toFixed(2);\n              } else if (attr.end_time) {\n                hrs = (Math.abs(new Date(attr.start_time) - new Date(attr.end_time)) \/ 3600000).toFixed(2);\n              }\n              clone.querySelector(\".js-event-duration\").textContent = hrs ? `${hrs} Hrs` : \"\";\n\n              \/\/ CTA\n              clone.querySelector(\".js-event-cta\").href = joinUrl;\n\n              swiperWrapper.appendChild(clone);\n            });\n\n            swiper.update();\n            swiper.slideTo(0);\n          }\n\n          async function fetchEvents() {\n            try {\n              showSkeletons();\n              const res = await fetch(\n                \"https:\/\/www.scaler.com\/api\/v4\/events?event_type[]=company&distributor=scaler&type=upcoming&serializer_mode=L2&limit=8&program[]=software_development&program[]=data_science&program[]=devops&program[]=ai_ml\"\n              );\n              const json = await res.json();\n              const events = json.data || [];\n              renderEvents(events);\n            } catch (error) {\n              console.error(\"Failed to load events:\", error);\n              if(swiperWrapper) swiperWrapper.innerHTML = `<div class=\"scaler-events-empty\">Failed to load events.<\/div>`;\n            }\n          }\n\n          fetchEvents();\n      });\n    });\n    <\/script>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 3: Architectures Worth Knowing in 2026<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here, you should know why the major families exist, what problem they address, and where they fit.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>CNNs<\/td><td>They remain fundamental for computer vision and are still widely tested<\/td><td>Explain convolutions, pooling, receptive fields, and why CNNs work well for images<\/td><td>Build and evaluate a CNN rather than only calling a pretrained model<\/td><\/tr><tr><td>RNNs and LSTMs<\/td><td>Older architectures, but still common in interview questions<\/td><td>Explain recurrence, hidden state, vanishing gradients, and how LSTMs address them<\/td><td>Reproduce a small sequence-modelling example<\/td><\/tr><tr><td>Transformers and attention<\/td><td>They underpin much of modern NLP and foundation-model work<\/td><td>Explain self-attention and why it handles sequence dependencies differently from RNNs<\/td><td>Fine-tune or adapt a transformer and explain the architecture<\/td><\/tr><tr><td>Diffusion models<\/td><td>Relevant to modern generative AI<\/td><td>Discuss the basic idea and where diffusion models are used<\/td><td>A small implementation or informed project discussion is enough<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">CNNs are still core. RNNs and LSTMs are largely historical for new work, but they remain heavily tested in Indian campus and service-company interviews. Know them, expect to be asked about them, but do not assume you need to build new systems with them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Transformers and attention are the centre of gravity. You should be able to explain what attention is doing and why it addressed limitations that made recurrent architectures difficult to scale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diffusion models only need to be at conversation depth unless you are specifically targeting generative-model research or engineering roles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a closer look at attention-based models, check: <a href=\"https:\/\/www.scaler.com\/blog\/transformer-architecture-explained-how-attention-powers-modern-ai\/\">Transformer Architecture Explained: How Attention Powers Modern Ai<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 4: Frameworks, PyTorch First and TensorFlow as the Incumbent<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you are deciding between pytorch vs tensorflow, learn PyTorch first. It is the better default for learning modern deep learning and building fluency with the mechanics of training.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TensorFlow and Keras are still used across enterprise systems and GCC production environments in India. Being able to read, debug, and maintain existing TensorFlow code is often part of working with production systems.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>PyTorch<\/td><td>Widely used for model development and research<\/td><td>Write or modify a training loop, custom module, or data pipeline<\/td><td>Build a project without relying entirely on high-level training abstractions<\/td><\/tr><tr><td>TensorFlow\/Keras<\/td><td>Still present in many production codebases<\/td><td>Read existing code or explain the Keras training workflow<\/td><td>Show that you can work with an existing TensorFlow\/Keras project<\/td><\/tr><tr><td>Hugging Face<\/td><td>Common interface for pretrained transformer and foundation models<\/td><td>Load, fine-tune, evaluate, or modify a pretrained model<\/td><td>Build a reproducible fine-tuning project<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">With PyTorch, you should be able to build the main pieces of a training pipeline yourself. That includes writing a custom nn.Module, creating a Dataset and DataLoader, and putting together the training loop. You should also understand what autograd, .to(device), optimizer.zero_grad(), and model.eval() are doing at each stage, so you can debug the pipeline when something goes wrong.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can build on this with the <a href=\"https:\/\/www.scaler.com\/topics\/course\/pytorch-for-deep-learning-free-course\/\">Free PyTorch for Deep Learning Certification Course Online<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 5: Training Craft, the Tier That Separates Hires from Applicants<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is one of the least taught parts of deep learning and one of the areas employers can probe very quickly. A model that trains on a clean tutorial dataset tells them very little about how you handle a model that behaves badly.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>Data pipelines<\/td><td>Bad inputs can make a good model look broken<\/td><td>Debug preprocessing, labels, batching, and transformations<\/td><td>Show the data pipeline and validation checks<\/td><\/tr><tr><td>Data leakage<\/td><td>Leakage can produce suspiciously strong results<\/td><td>Identify how information from validation\/test data entered training<\/td><td>Explain how you prevented leakage<\/td><\/tr><tr><td>Augmentation<\/td><td>Poor augmentation can destroy the signal or corrupt labels<\/td><td>Decide whether a transformation is appropriate for the task<\/td><td>Compare results with and without augmentation<\/td><\/tr><tr><td>Hyperparameter tuning<\/td><td>Poor settings can prevent a model from learning<\/td><td>Explain which parameter you would change first<\/td><td>Document controlled experiments<\/td><\/tr><tr><td>Loss-curve analysis<\/td><td>Curves often reveal the problem before the code does<\/td><td>Diagnose training behaviour from graphs<\/td><td>Include training and validation curves<\/td><\/tr><tr><td>Class imbalance and metrics<\/td><td>Accuracy can hide poor performance on minority classes<\/td><td>Choose appropriate metrics before training<\/td><td>Explain metric selection and baseline performance<\/td><\/tr><tr><td>Experiment tracking<\/td><td>Reproducibility is part of engineering, not paperwork<\/td><td>Explain how you would reproduce a previous experiment<\/td><td>Track configurations, metrics, seeds, and results<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Learning rate is usually the first tuning variable worth investigating. If the training loss falls while validation loss rises, suspect overfitting. If both remain flat, the model may not be learning. A spiky loss curve can point to a learning rate that is too high. If validation loss is consistently below training loss, do not automatically celebrate. Check the training and validation pipelines for differences or bugs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You should also decide how you will measure success before training. A model with 94% accuracy may be poor if 94% of the dataset belongs to the majority class.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And keep an experiment log. If you cannot reproduce the result you got last week, you do not really have a result.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a practical overview of model evaluation, refer to <a href=\"https:\/\/www.scaler.com\/topics\/performance-metrics-machine-learning\/\">Performance Metrics in Machine Learning Explained<\/a>.<\/p>\n\n\n<meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n    <!-- Source Sans Pro (topics font) -->\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Source+Sans+3:wght@400;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\">\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\n\n    <style>\n      :root {\n        --cl-primary: #005bb3;\n        --cl-brand-blue: #255aad;\n        --cl-card-bg: #ffffff;\n        --cl-surface: #f6f7f8;\n        --cl-border: #d6dee5;\n        --cl-text-primary: #1a2c47;   \/* neutral-scale-12 *\/\n        --cl-text-secondary: #61738e; \/* neutral-scale-9 *\/\n        --cl-radius: 16px;\n        --cl-radius-sm: 8px;\n        --cl-shadow: 0 8px 16px 0 rgba(50, 71, 102, 0.16);\n      }\n\n      .scaler-courses * { box-sizing: border-box; }\n\n      .scaler-courses {\n        font-family: \"Source Sans 3\", \"Source Sans Pro\", \"Roboto\", Arial, sans-serif;\n        padding: 24px;\n        width: 100%;\n      }\n      .scaler-courses__inner {\n        max-width: 1000px;\n        margin: 0 auto;\n        position: relative;\n        width: 100%;\n      }\n\n      \/* Header *\/\n      .scaler-courses__header {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n        margin-bottom: 8px;\n        padding: 8px 0;\n      }\n      .scaler-courses__header-icon { display: inline-flex; color: var(--cl-text-primary); }\n      .scaler-courses__header-icon svg { width: 24px; height: 24px; }\n      .scaler-courses__title {\n        font-size: 18px;\n        font-weight: 700;\n        color: var(--cl-text-primary);\n        line-height: 1.3;\n        margin: 0;\n      }\n\n      \/* Swiper *\/\n      .scaler-courses__swiper-wrap { position: relative; }\n      .scaler-courses .swiper { width: 100%; padding: 4px; }\n      .scaler-courses-swiper .swiper-slide {\n        width: 296px;\n        height: auto;\n        display: flex;\n      }\n\n      \/* Card *\/\n      .scaler-course-card {\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n        height: 100%;\n        min-height: 336px;\n        background: var(--cl-card-bg);\n        border: 1px solid var(--cl-border);\n        border-radius: var(--cl-radius);\n        overflow: hidden;\n        text-decoration: none;\n        cursor: pointer;\n        transition: box-shadow 0.2s ease;\n      }\n      .scaler-course-card:hover { box-shadow: 0 2px 12px rgba(50, 71, 102, 0.12); }\n\n      .scaler-course-card__image {\n        width: 100%;\n        height: 128px;\n        min-height: 128px;\n        object-fit: cover;\n        background: var(--cl-surface);\n        display: block;\n      }\n\n      .scaler-course-card__detail {\n        display: flex;\n        flex-direction: column;\n        flex: 1 1 auto;\n        padding: 16px 16px 8px;\n      }\n      .scaler-course-card__heading,\n      .scaler-course-card__heading:link,\n      .scaler-course-card__heading:visited {\n        font-size: 20px;\n        font-weight: 600;\n        line-height: 1.4;\n        color: var(--cl-text-primary) !important;\n        margin: 0 0 8px;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      }\n      .scaler-course-card__instructor {\n        font-size: 14px;\n        line-height: 1.86;\n        color: var(--cl-text-primary);\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      }\n      .scaler-course-card__instructor b { font-weight: 700; }\n      .scaler-course-card__desc {\n        flex-grow: 1;\n        margin-top: 8px;\n        margin-bottom: 12px;\n        font-size: 16px;\n        line-height: 1.5;\n        color: var(--cl-text-secondary);\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n      }\n\n      .scaler-course-card__footer {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        width: 100%;\n      }\n      .scaler-course-card__stat {\n        display: flex;\n        align-items: center;\n        gap: 4px;\n        font-size: 14px;\n        color: var(--cl-text-primary);\n      }\n      .scaler-course-card__stat svg { width: 18px; height: 18px; flex-shrink: 0; }\n      .scaler-course-card__stat img { width: 20px; height: 20px; flex-shrink: 0; }\n\n      \/* Side arrows *\/\n      .scaler-courses__nav {\n        position: absolute !important;\n        top: 50% !important;\n        transform: translateY(-50%) !important;\n        z-index: 2;\n        width: 46px !important; height: 46px !important; min-width: 46px;\n        display: flex !important; align-items: center; justify-content: center;\n        padding: 0 !important;\n        background: var(--cl-card-bg) !important;\n        border: none !important;\n        border-radius: var(--cl-radius-sm) !important;\n        box-shadow: var(--cl-shadow) !important;\n        color: var(--cl-text-secondary) !important;\n        cursor: pointer;\n        transition: opacity 0.2s ease, visibility 0.2s ease;\n      }\n      .scaler-courses__nav--prev { left: 8px !important; }\n      .scaler-courses__nav--next { right: 8px !important; }\n      .scaler-courses__nav svg { width: 20px !important; height: 20px !important; fill: var(--cl-text-secondary) !important; }\n      .scaler-courses__nav.swiper-button-disabled { opacity: 0; visibility: hidden; pointer-events: none; }\n\n      .scaler-courses .swiper-button-prev,\n      .scaler-courses .swiper-button-next,\n      .scaler-courses .swiper-pagination { display: none; }\n\n      \/* Skeleton *\/\n      .scaler-course-card--skeleton { pointer-events: none; }\n      .scaler-course-card--skeleton .scaler-course-card__image,\n      .scaler-course-card--skeleton .scaler-course-card__heading,\n      .scaler-course-card--skeleton .scaler-course-card__instructor,\n      .scaler-course-card--skeleton .scaler-course-card__desc,\n      .scaler-course-card--skeleton .scaler-course-card__footer {\n        background: linear-gradient(90deg, var(--cl-border) 25%, var(--cl-surface) 50%, var(--cl-border) 75%);\n        background-size: 200% 100%;\n        animation: cl-shimmer 1.5s infinite;\n        color: transparent !important;\n        border-radius: 4px;\n      }\n      .scaler-course-card--skeleton .scaler-course-card__heading { height: 24px; margin: 0 0 8px; }\n      .scaler-course-card--skeleton .scaler-course-card__instructor { height: 16px; }\n      .scaler-course-card--skeleton .scaler-course-card__footer { height: 20px; }\n      @keyframes cl-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }\n\n      .scaler-courses__empty { display: none; }\n\n      @media (max-width: 768px) {\n        .scaler-courses { padding: 16px; }\n        .scaler-courses-swiper .swiper-slide { width: 260px; }\n        .scaler-courses__nav { display: none !important; }\n      }\n    <\/style>\n\n\n    <div class=\"scaler-courses js-scaler-courses\">\n\n      <template class=\"js-course-card-template\">\n        <div class=\"swiper-slide\">\n          <a class=\"scaler-course-card js-course-link\" href=\"#\" target=\"_blank\" rel=\"noopener\">\n            <img decoding=\"async\" class=\"scaler-course-card__image js-course-image\" src=\"\" alt=\"\" loading=\"lazy\">\n            <div class=\"scaler-course-card__detail\">\n              <div class=\"scaler-course-card__heading js-course-title\"><\/div>\n              <div class=\"scaler-course-card__instructor js-course-instructor\"><\/div>\n              <div class=\"scaler-course-card__desc js-course-desc\"><\/div>\n              <div class=\"scaler-course-card__footer\">\n                <span class=\"scaler-course-card__stat js-course-star\">\n                  <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M14.83 2.868c0.342-0.239 0.75-0.368 1.168-0.368s0.826 0.128 1.168 0.368c0.338 0.236 0.596 0.569 0.741 0.955l2.759 6.936c0.003 0.007 0.007 0.013 0.013 0.017s0.013 0.007 0.020 0.007l7.402 0.476c0.411 0.036 0.802 0.194 1.124 0.452s0.559 0.607 0.683 1 0.127 0.815 0.011 1.211c-0.116 0.396-0.347 0.748-0.664 1.013l-5.655 4.714c-0.013 0.011-0.022 0.025-0.028 0.040s-0.006 0.032-0.002 0.047l1.821 7.163c0.107 0.395 0.094 0.812-0.037 1.2-0.133 0.391-0.38 0.734-0.71 0.983s-0.727 0.393-1.14 0.413c-0.413 0.020-0.822-0.084-1.175-0.3l-0.015-0.009-6.307-4.005c-0.004-0.003-0.009-0.004-0.014-0.004s-0.009 0.001-0.013 0.004l-5.876 3.721c-0.389 0.235-0.839 0.347-1.292 0.323s-0.889-0.184-1.251-0.459c-0.361-0.275-0.632-0.652-0.777-1.082-0.143-0.426-0.157-0.885-0.038-1.319l1.684-6.629c0.004-0.016 0.003-0.033-0.002-0.049s-0.015-0.030-0.027-0.040l-5.653-4.714c-0.317-0.264-0.548-0.617-0.664-1.013s-0.112-0.817 0.011-1.211c0.124-0.394 0.361-0.742 0.683-1s0.713-0.416 1.124-0.452l0.023-0.002 7.38-0.476c0.007-0 0.014-0.003 0.020-0.007s0.010-0.010 0.013-0.017l0.008-0.020 2.746-6.913c0.145-0.386 0.403-0.719 0.741-0.956z\"\/><\/svg>\n                  <span class=\"js-course-star-val\"><\/span>\n                <\/span>\n                <span class=\"scaler-course-card__stat\">\n                  <img decoding=\"async\" src=\"https:\/\/d19zaobb0foqu6.cloudfront.net\/topics\/images\/user-check-dark.svg\" alt=\"Enrolled\" loading=\"lazy\">\n                  <span class=\"js-course-reg\"><\/span>\n                <\/span>\n              <\/div>\n            <\/div>\n          <\/a>\n        <\/div>\n      <\/template>\n\n      <div class=\"scaler-courses__inner\">\n        <div class=\"scaler-courses__header\">\n          <span class=\"scaler-courses__header-icon\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M26.259 23.289h-20.518c-1.193 0-2.16-0.967-2.16-2.16v0-14.588c0-1.193 0.967-2.16 2.16-2.16v0h20.518c1.193 0 2.16 0.967 2.16 2.16v0 14.588c0 1.193-0.967 2.16-2.16 2.16v0zM5.741 5.501c-0.574 0-1.040 0.466-1.040 1.040v0 14.588c0 0.574 0.466 1.040 1.040 1.040v0h20.518c0.574 0 1.040-0.466 1.040-1.040v0-14.588c0-0.574-0.466-1.040-1.040-1.040v0z\"\/><path d=\"M19.764 27.619h-7.53c-0.309 0-0.56-0.251-0.56-0.56v0c0-0.309 0.251-0.56 0.56-0.56h7.53c0.309 0 0.56 0.251 0.56 0.56v0c0 0.309-0.251 0.56-0.56 0.56v0z\"\/><path d=\"M14.023 9.322c0.116 0 0.223 0.035 0.312 0.096l-0.002-0.001 5.93 3.953c0.151 0.102 0.249 0.272 0.249 0.466s-0.098 0.364-0.247 0.465l-0.002 0.001-5.93 3.953c-0.087 0.059-0.195 0.094-0.31 0.094-0.309 0-0.56-0.25-0.56-0.559v-7.906c0-0.309 0.251-0.56 0.56-0.56v0zM18.943 13.835l-4.36-2.906v5.813z\"\/><\/svg>\n          <\/span>\n          <h2 class=\"scaler-courses__title\"><span class=\"ez-toc-section\" id=\"free-courses-by-top-scaler-instructors\"><\/span>Free Courses by top Scaler instructors<span class=\"ez-toc-section-end\"><\/span><\/h2>\n        <\/div>\n\n        <div class=\"scaler-courses__swiper-wrap\">\n          <div class=\"swiper scaler-courses-swiper\">\n            <div class=\"swiper-wrapper js-courses-wrapper\"><\/div>\n            <div class=\"swiper-pagination\"><\/div>\n          <\/div>\n\n          <button class=\"scaler-courses__nav scaler-courses__nav--prev js-courses-prev\" aria-label=\"Previous\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(-90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"\/><\/svg>\n          <\/button>\n          <button class=\"scaler-courses__nav scaler-courses__nav--next js-courses-next\" aria-label=\"Next\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"\/><\/svg>\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n      const EXTRA_COUNT_ADDED = 1000;\n\n      \/\/ Mirrors getInstructorStar(): first token of the headline.\n      function getInstructorStar(headline) {\n        return (headline || \"\").toString().split(\" \")[0] || \"\";\n      }\n\n      document.querySelectorAll(\".js-scaler-courses\").forEach(container => {\n        if (container.dataset.initialized === \"true\") return;\n        container.dataset.initialized = \"true\";\n\n        const swiperElement = container.querySelector(\".scaler-courses-swiper\");\n        const wrapper = container.querySelector(\".js-courses-wrapper\");\n        const template = container.querySelector(\".js-course-card-template\");\n        const nextBtn = container.querySelector(\".js-courses-next\");\n        const prevBtn = container.querySelector(\".js-courses-prev\");\n\n        if (!wrapper || !template) return;\n\n        const swiper = new Swiper(swiperElement, {\n          slidesPerView: \"auto\",\n          spaceBetween: 16,\n          grabCursor: true,\n          observer: true,\n          observeParents: true,\n          navigation: { nextEl: nextBtn, prevEl: prevBtn },\n        });\n\n        const pathParts = location.pathname.split(\"\/\").filter(Boolean);\n        const currentSlug = pathParts.length > 0 ? pathParts[pathParts.length - 1] : \"homepage\";\n\n        function showSkeletons(count = 4) {\n          wrapper.innerHTML = \"\";\n          for (let i = 0; i < count; i++) {\n            const clone = template.content.cloneNode(true);\n            clone.querySelector(\".scaler-course-card\").classList.add(\"scaler-course-card--skeleton\");\n            wrapper.appendChild(clone);\n          }\n          swiper.update();\n        }\n\n        function renderCourses(courses) {\n          wrapper.innerHTML = \"\";\n          if (!courses.length) { container.style.display = \"none\"; return; }\n\n          courses.forEach(item => {\n            const a = item.attributes || {};\n            const clone = template.content.cloneNode(true);\n            const instructor = (a.instructors_data && a.instructors_data[0]) || {};\n\n            clone.querySelector(\".js-course-link\").href =\n              `https:\/\/www.scaler.com\/topics\/course\/${a.slug}\/?utm_source=blog&utm_medium=free_courses&utm_content=${currentSlug}`;\n\n            const img = clone.querySelector(\".js-course-image\");\n            img.src = a.cover_image_thumbnail || a.featured_image || \"\";\n            img.alt = a.title || \"\";\n\n            clone.querySelector(\".js-course-title\").textContent = a.title || \"\";\n\n            const instrEl = clone.querySelector(\".js-course-instructor\");\n            if (instructor.name) {\n              instrEl.innerHTML = \"A Course by <b><\/b>\";\n              instrEl.querySelector(\"b\").textContent = instructor.name;\n            } else {\n              instrEl.style.display = \"none\";\n            }\n\n            clone.querySelector(\".js-course-desc\").textContent = a.description || \"\";\n\n            \/\/ Star\n            const star = getInstructorStar(instructor.star_headline);\n            const starWrap = clone.querySelector(\".js-course-star\");\n            if (star && star !== \"0\") clone.querySelector(\".js-course-star-val\").textContent = star;\n            else starWrap.style.display = \"none\";\n\n            \/\/ Enrolled count (+1000 like topics)\n            clone.querySelector(\".js-course-reg\").textContent =\n              ((a.user_registration_count || 0) + EXTRA_COUNT_ADDED).toLocaleString(\"en-US\");\n\n            wrapper.appendChild(clone);\n          });\n\n          swiper.update();\n          swiper.slideTo(0);\n        }\n\n        async function fetchCourses() {\n          try {\n            showSkeletons();\n            \/\/ Public same-origin endpoint (topics course search). Returns 6 free courses.\n            const res = await fetch(\"\/topics\/api\/v1\/search\/courses\", {\n              method: \"POST\",\n              headers: {\n                \"Content-Type\": \"application\/json\",\n                \"Accept\": \"application\/json\",\n                \"X-Requested-With\": \"XMLHttpRequest\",\n              },\n              body: JSON.stringify({\n                filters: {\n                  q: \"\",\n                  page: { limit: 6, current_page: 1 },\n                  sort: { key: \"user_registration_count\", order: \"desc\" },\n                  filter_type: null,\n                  tags: [],\n                  program: [],\n                  level: [],\n                  category_type: [],\n                },\n              }),\n            });\n            const json = await res.json();\n            const courses = (json && json.data) || [];\n            renderCourses(courses);\n          } catch (error) {\n            console.error(\"Failed to load courses:\", error);\n            container.style.display = \"none\";\n          }\n        }\n\n        fetchCourses();\n      });\n    });\n    <\/script>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 6: Compute, GPUs, Memory, and Training at Scale<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You should understand how your hardware affects training and what happens when a model runs out of GPU memory. This includes checking memory usage, choosing an appropriate batch size, moving tensors and models between devices, and using techniques such as gradient accumulation or mixed precision when needed. As your models and datasets grow, you can then move into distributed training.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>GPU memory<\/td><td>Model size, batch size, activations, and gradients can exceed available VRAM<\/td><td>Diagnose a CUDA out-of-memory error<\/td><td>Document how you reduced memory usage<\/td><\/tr><tr><td>CUDA basics<\/td><td>GPU acceleration depends on the software and hardware stack<\/td><td>Explain why a model or tensor needs to be moved to the GPU<\/td><td>Show GPU-based training in a project<\/td><\/tr><tr><td>Mixed precision<\/td><td>Reduces memory use and can speed up compatible workloads<\/td><td>Explain what mixed-precision training does<\/td><td>Use it in a training experiment<\/td><\/tr><tr><td>Gradient accumulation<\/td><td>Allows effective larger batches without holding the entire batch in memory<\/td><td>Explain how accumulated gradients work<\/td><td>Show a memory-constrained training setup<\/td><\/tr><tr><td>Gradient checkpointing<\/td><td>Trades computation for lower activation memory<\/td><td>Explain when it helps<\/td><td>Use it when training a memory-heavy model<\/td><\/tr><tr><td>Distributed training<\/td><td>Relevant when models or datasets outgrow a single device<\/td><td>Explain basic terms such as data parallelism<\/td><td>Know the concepts; hands-on multi-GPU experience is a bonus<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">When you see CUDA out of memory, the standard responses are straightforward: reduce the batch size, use gradient accumulation, enable mixed precision, or use gradient checkpointing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Distributed training is used when a model or dataset is too large to handle on a single GPU. You should understand the basic idea of splitting training across multiple devices and why techniques such as data parallelism are used. For most entry-level deep learning roles, that foundation is enough unless the role specifically involves distributed training. You can build your core training skills on a single GPU first and move to multi-GPU setups as the scale of your work increases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also read: <a href=\"https:\/\/www.scaler.com\/blog\/mlops-roadmap\/\">MLOps Roadmap<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 7: Production, Shipping a Model That Serves Predictions<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A trained model still needs to be integrated into an application before it can serve predictions to users. You should know how to expose a model through an API, handle input and output formats, load the model for inference, and make the service reliable outside your development environment.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>Model serving<\/td><td>Production systems need a reliable way to request predictions<\/td><td>Explain how you would expose a model through an API<\/td><td>Deploy an endpoint that accepts input and returns predictions<\/td><\/tr><tr><td>Quantisation<\/td><td>Smaller models can reduce memory use and inference cost<\/td><td>Explain the trade-off between model size, speed, and accuracy<\/td><td>Compare inference before and after quantisation<\/td><\/tr><tr><td>Distillation<\/td><td>A smaller student model can approximate a larger teacher<\/td><td>Explain why you would use knowledge distillation<\/td><td>Show a teacher-student experiment<\/td><\/tr><tr><td>ONNX<\/td><td>Provides a route for model interoperability and deployment<\/td><td>Explain where ONNX fits in an inference pipeline<\/td><td>Export and run a model using ONNX<\/td><\/tr><tr><td>Monitoring and drift<\/td><td>A model can degrade without producing an obvious software error<\/td><td>Explain how you would detect changing data or model performance<\/td><td>Monitor input distributions or prediction quality<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A trained model is only part of what you need to run predictions in a real application. Once it is deployed, it has to accept inputs, return predictions in a defined format, handle failures, and respond within a reasonable amount of time. Even a small deployment on a free tier lets you work with these parts of the system, including packaging the model, handling requests, measuring latency, and dealing with errors when they occur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To see how the pieces of an ML workflow fit together, take a look at <a href=\"https:\/\/www.scaler.com\/blog\/machine-learning-pipelines\/\">What is a Machine Learning Pipeline?<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tier 8: Emerging, Fine-Tuning and Working with Foundation Models<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This tier changes quickly as new foundation models, fine-tuning methods, and supporting tools continue to develop. Focus on understanding how these techniques work, when to use them, and the trade-offs involved in choosing one approach over another.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Skill<\/strong><\/td><td><strong>Why employers screen for it<\/strong><\/td><td><strong>How it&#8217;s tested in interviews<\/strong><\/td><td><strong>How to evidence it<\/strong><\/td><\/tr><tr><td>Transfer learning<\/td><td>Starting from a pretrained model reduces the data and compute needed<\/td><td>Explain why pretrained representations help<\/td><td>Compare a pretrained model with a model trained from scratch<\/td><\/tr><tr><td>Full fine-tuning<\/td><td>Useful when you have enough data and compute to update the whole model<\/td><td>Explain when full fine-tuning makes sense<\/td><td>Document the dataset, compute, and evaluation setup<\/td><\/tr><tr><td>PEFT<\/td><td>Parameter-efficient methods reduce the number of trainable parameters<\/td><td>Compare PEFT with full fine-tuning<\/td><td>Fine-tune a model using a PEFT method<\/td><\/tr><tr><td>LoRA and QLoRA<\/td><td>Make foundation-model adaptation more practical on modest hardware<\/td><td>Explain what parameters are actually being updated<\/td><td>Show a reproducible LoRA or QLoRA experiment<\/td><\/tr><tr><td>Dataset curation<\/td><td>Fine-tuning quality depends heavily on the data<\/td><td>Explain how you selected, cleaned, and evaluated training examples<\/td><td>Document dataset construction and filtering<\/td><\/tr><tr><td>Retrieval vs fine-tuning<\/td><td>Not every knowledge or behaviour problem requires changing model weights<\/td><td>Explain when retrieval is a better choice<\/td><td>Compare a retrieval-based approach with fine-tuning<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Transfer learning lets you take a model that has already learned useful representations and adapt it to a new task. The way you adapt it depends on how much of the model you want to update. Full fine-tuning updates the model\u2019s parameters, while parameter-efficient fine-tuning (PEFT) updates a smaller set of parameters or adds trainable components such as LoRA adapters. QLoRA combines LoRA with quantisation, reducing the hardware required for this process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whichever approach you use, the quality of the training data affects what the adapted model learns. Your dataset needs examples that represent the task you are targeting, along with a separate set of examples for evaluation. You can then compare the adapted model with the original model to see whether fine-tuning actually improved its performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re moving into foundation models and LLMs, our <a href=\"https:\/\/www.scaler.com\/blog\/llm-roadmap-2026-how-to-learn-large-language-models-from-scratch\/\">LLM roadmap<\/a> can help you see which concepts to learn next and how they connect.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"the-job-ready-gap-what-modelfit-doesnt-teach-you\"><\/span><strong>The Job-Ready Gap: What model.fit() Doesn&#8217;t Teach You<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">model.fit() is great when the data is clean, the labels are correct, the architecture makes sense, and the training setup has already been chosen for you. In a project, you have to check those things yourself and decide what needs to change when something is not working.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You are given a problem, some data, and a model that may not behave the way you expect. Nobody has written the next five steps for you. That is where you start applying what you know to diagnose problems, make decisions, and improve the training process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Five Gaps That Show Up in Interviews<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. You have never diagnosed a failed model<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Getting a model to train is very different from figuring out why it refuses to learn.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An interviewer might give you a loss curve that has been flat for 20 epochs and ask what you would check. If your first response is \u201cchange the model,\u201d you are probably working from trial and error. A stronger approach is to check the data, labels, learning rate, gradients, loss function, and training loop before touching the architecture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You need to have actually experienced these failures. Otherwise, debugging answers become difficult.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. You cannot explain why you chose the architecture<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cI used a CNN because the data is images\u201d is a starting point, but can\u2019t be used as a justification.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose you are working with images. You should be able to explain that the input has local spatial structure, making convolution a sensible inductive bias. Better still, show that you tested the assumption. If an MLP baseline performed worse, that comparison gives your architecture choice some evidence behind it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same principle applies to transformers, LSTMs, pretrained models, and everything else. Do not just know what an architecture does. Know what problem made you choose it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. You have only worked with clean datasets<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MNIST and CIFAR are excellent for learning model mechanics, but they are not good tests of whether you can handle a difficult data pipeline.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bigger and more complex datasets can contain duplicate records, missing values, inconsistent labels, corrupted inputs, unexpected categories, class imbalance, and preprocessing errors. Sometimes the model is fine, and the data is the problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A project becomes much more convincing when you can say, \u201cHere was the data problem, here is how I found it, and here is what changed after I fixed it.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. You report a number without proving that it means anything<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A model achieving 94% accuracy doesn\u2019t include everything that was done.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What does the majority-class baseline achieve? Is the dataset imbalanced? How does precision compare with recall? Which classes are being misclassified? Was the test set kept completely separate from training?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Remember that good evaluation is not about collecting as many metrics as possible. It is about knowing whether the number you are reporting actually represents model performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. You have never taken a model beyond the notebook<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A training notebook is not the end of the project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Put an input into a small API and return a prediction. Deploy it somewhere. Measure inference time. Handle an invalid input. Reload the saved model and make sure it still works.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It does not have to be production infrastructure. The point is to prove that you can take something you trained and make it usable by something outside your notebook.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Knowing When Not to Use Deep Learning<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">There is another gap that you might not find in tutorials: knowing when not to use a neural network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have a small tabular dataset, a gradient-boosted tree may be a better choice. It can give you strong performance with less data, less tuning, lower infrastructure requirements, and easier interpretation. Using a neural network simply because you are preparing for a deep learning role is not a good reason to use one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before choosing the model, ask:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>What kind of data do I have? Images, audio, and text often benefit from deep learning. Small structured datasets may not.<\/li>\n\n\n\n<li>How much data do I have? A neural network may be unnecessary when the dataset is small.<\/li>\n\n\n\n<li>Do I need interpretability? If you need to explain individual predictions, a simpler model may be easier to work with.<\/li>\n\n\n\n<li>What can I afford at inference time? Model size, latency, memory, and compute all matter once predictions have to be served.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">For example, you could say, \u201cI would establish a gradient-boosted baseline first. If a neural network gives me a meaningful improvement that justifies its added complexity and inference cost, then I would use it.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And don&#8217;t worry about coming off as being less ambitious. In fact, an answer like this shows that you chose a model based on the problem and its requirements, instead of defaulting to what you already know how to train.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Learn how the two approaches differ: <a href=\"https:\/\/www.scaler.com\/blog\/difference-between-machine-learning-and-deep-learning\/\">Difference between Machine Learning and Deep Learning<\/a>.<\/p>\n\n\n<style data-wp-block-html=\"css\">\n<style>\n      :root {\n        --sp-brand: #255aad;            \/* brand blue *\/\n        --sp-brand-hover: #19468c;\n        --sp-card-bg: #ffffff;          \/* neutral-scale-0 *\/\n        --sp-surface: #f4f6f9;          \/* neutral-scale-2 *\/\n        --sp-pill-bg: #f8fafc;\n        --sp-border: #d6dee5;           \/* neutral-scale-4 *\/\n        --sp-text-primary: #1a2c47;     \/* neutral-scale-12 *\/\n        --sp-text-secondary: #61738e;   \/* neutral-scale-9 *\/\n      }\n\n      .scaler-placement * { box-sizing: border-box; }\n\n      .scaler-placement {\n        font-family: \"Source Sans 3\", \"Source Sans Pro\", \"Roboto\", Arial, sans-serif;\n        width: 100%;\n        max-width: 100%;\n        margin: 24px auto;\n        display: flex;\n        flex-direction: column;\n      }\n\n      \/* ---- Placement report (OnlineCallout) ---- *\/\n      .scaler-placement__title {\n        font-size: 24px;\n        font-weight: 600;\n        line-height: 1.3;\n        color: var(--sp-text-primary);\n        margin: 0 0 16px;\n      }\n\n      .scaler-placement__card {\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n        background: var(--sp-card-bg);\n        border: 1px solid var(--sp-border);\n        border-radius: 20px;\n        padding: 16px;\n        box-shadow: 0 8px 32px rgba(37, 90, 173, 0.04);\n        overflow: hidden;\n        gap: 5px;\n      }\n\n      .scaler-placement__top {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        width: 100%;\n        gap: 18px;\n      }\n\n      .scaler-placement__stat-block {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n        align-items: center;\n        width: 30%;\n        min-width: 200px;\n        flex-shrink: 0;\n        background: var(--sp-surface);\n        border: 1px solid var(--sp-border);\n        border-radius: 16px;\n        padding: 16px 10px;\n        gap: 8px;\n      }\n      .scaler-placement__stat-number {\n        font-size: 48px;\n        font-weight: 600;\n        line-height: 1;\n        color: var(--sp-brand);\n        text-align: center;\n      }\n      .scaler-placement__stat-label {\n        font-size: 13px;\n        font-weight: 600;\n        line-height: 14px;\n        color: rgba(37, 90, 173, 0.85);\n        text-transform: uppercase;\n        letter-spacing: 0.8px;\n      }\n\n      .scaler-placement__info {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n        flex: 1;\n        gap: 10px;\n      }\n      .scaler-placement__proof-header {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        gap: 8px;\n      }\n      .scaler-placement__proof-header svg { width: 18px; height: 18px; flex-shrink: 0; }\n      .scaler-placement__proof-label {\n        font-size: 12px;\n        font-weight: 600;\n        line-height: 16px;\n        color: var(--sp-brand);\n        text-transform: uppercase;\n        letter-spacing: 1px;\n      }\n      .scaler-placement__body-text {\n        font-size: 16px;\n        font-weight: 400;\n        line-height: 24px;\n        color: var(--sp-text-primary);\n        margin: 0;\n      }\n\n      .scaler-placement__bottom {\n        display: flex;\n        flex-direction: column;\n        align-items: flex-start;\n        margin-left: calc(30% + 18px);\n        width: calc(70% - 18px);\n        gap: 12px;\n      }\n      .scaler-placement__stats-row {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        gap: 24px;\n      }\n      .scaler-placement__stat-item {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        gap: 8px;\n      }\n      .scaler-placement__stat-item > svg {\n        color: var(--sp-brand);\n        width: 18px;\n        height: 18px;\n        flex-shrink: 0;\n      }\n      .scaler-placement__stat-text {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        gap: 4px;\n      }\n      .scaler-placement__stat-value {\n        font-size: 16px;\n        font-weight: 600;\n        line-height: 24px;\n        color: var(--sp-text-primary);\n      }\n      .scaler-placement__stat-desc {\n        font-size: 14px;\n        font-weight: 400;\n        line-height: 20px;\n        color: var(--sp-text-secondary);\n      }\n\n      .scaler-placement__cta,\n      .scaler-placement__cta:link,\n      .scaler-placement__cta:visited {\n        display: inline-flex;\n        align-items: center;\n        align-self: flex-start;\n        font-size: 14px;\n        font-weight: 600;\n        line-height: 20px;\n        color: var(--sp-brand) !important;\n        gap: 6px;\n        text-decoration: none;\n        cursor: pointer;\n        margin-top: 2px;\n        transition: color 0.25s ease;\n      }\n      .scaler-placement__cta:hover,\n      .scaler-placement__cta:focus { color: var(--sp-brand-hover) !important; }\n      .scaler-placement__cta svg {\n        width: 14px;\n        height: 14px;\n        fill: currentColor;\n        transition: transform 0.25s ease;\n      }\n      .scaler-placement__cta:hover svg { transform: translateX(3px); }\n\n      \/* ---- Hiring Partners ---- *\/\n      .scaler-hiring {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-wrap: wrap;\n        gap: 8px 12px;\n        margin: 24px 0 8px;\n        padding-top: 16px;\n        border-top: 1px solid var(--sp-border);\n      }\n      .scaler-hiring__label {\n        font-size: 14px;\n        color: var(--sp-text-secondary);\n        white-space: nowrap;\n      }\n      .scaler-hiring__pills {\n        display: flex;\n        align-items: center;\n        flex-wrap: wrap;\n        gap: 8px;\n      }\n      .scaler-hiring__pill {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        padding: 5px 12px 5px 5px;\n        background: var(--sp-pill-bg);\n        border-radius: 999px;\n      }\n      .scaler-hiring__badge {\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n        width: 24px;\n        height: 24px;\n        border-radius: 50%;\n        background: #ffffff;\n      }\n      .scaler-hiring__logo {\n        width: 16px !important;\n        height: 16px !important;\n        object-fit: contain;\n        margin: 0 !important;\n        display: block;\n      }\n      .scaler-hiring__name {\n        font-size: 14px;\n        font-weight: 600;\n        color: var(--sp-text-primary);\n      }\n      .scaler-hiring__more {\n        font-size: 14px;\n        color: var(--sp-text-secondary);\n      }\n\n      @media (max-width: 768px) {\n        .scaler-placement__title { font-size: 18px; margin-bottom: 12px; }\n        .scaler-placement__card { gap: 16px; border-radius: 16px; }\n        .scaler-placement__top { gap: 12px; }\n        .scaler-placement__stat-block { width: 35%; min-width: 110px; padding: 12px 8px; gap: 4px; }\n        .scaler-placement__stat-number { font-size: 24px; }\n        .scaler-placement__stat-label { font-size: 10px; }\n        .scaler-placement__body-text { font-size: 14px; line-height: 20px; }\n        .scaler-placement__bottom { margin-left: 0; width: 100%; gap: 16px; }\n        .scaler-placement__stats-row { flex-wrap: wrap; gap: 10px 16px; }\n        .scaler-placement__stat-value { font-size: 14px; line-height: 20px; }\n        .scaler-placement__stat-desc { font-size: 12px; line-height: 16px; }\n      }\n<\/style>\n\n<meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n    <!-- Source Sans Pro (topics font) -->\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Source+Sans+3:wght@400;600;700&#038;display=swap\" rel=\"stylesheet\">\n\n<div class=\"scaler-placement\">\n      <h2 class=\"scaler-placement__title\"><span class=\"ez-toc-section\" id=\"scaler-placement-report-and-statistics\"><\/span>Scaler Placement Report and Statistics<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n      <div class=\"scaler-placement__card\">\n        <div class=\"scaler-placement__top\">\n          <div class=\"scaler-placement__stat-block\">\n            <div class=\"scaler-placement__stat-number\">\u20b923L<\/div>\n            <div class=\"scaler-placement__stat-label\">AVG CTC<\/div>\n          <\/div>\n          <div class=\"scaler-placement__info\">\n            <div class=\"scaler-placement__proof-header\">\n              <svg viewBox=\"0 0 21 21\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M8.64 0 0 8.683V21h12.257l8.64-8.683V0H8.64zm-.11 17.257H3.725v-4.828H8.53v4.828zm7.901-1.88-4.174 4.194V8.684H1.447l4.076-4.14h10.914l-.006 10.83v.004z\" fill=\"#255aad\"><\/path><\/svg>\n              <span class=\"scaler-placement__proof-label\">SCALER PLACEMENT PROOF<\/span>\n            <\/div>\n            <p class=\"scaler-placement__body-text\">\n              Scaler learners achieved 2.5x salary growth with average post-Scaler CTC reaching \u20b923L.\n            <\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"scaler-placement__bottom\">\n          <div class=\"scaler-placement__stats-row\">\n            <div class=\"scaler-placement__stat-item\">\n              <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M11.199 7.957c-3.086 0-5.588 2.502-5.588 5.588s2.502 5.588 5.588 5.588c3.086 0 5.588-2.502 5.588-5.588s-2.502-5.588-5.588-5.588zM3.611 13.545c0-4.191 3.397-7.588 7.588-7.588s7.588 3.397 7.588 7.588c0 4.191-3.397 7.588-7.588 7.588s-7.588-3.397-7.588-7.588z\"><\/path><path d=\"M21.090 6.369h0.003c1.989 0 3.897 0.79 5.303 2.197s2.197 3.314 2.197 5.303-0.79 3.897-2.197 5.303c-1.406 1.407-3.314 2.197-5.303 2.197-0.552 0-1-0.448-1-1s0.448-1 1-1c1.459 0 2.858-0.579 3.889-1.611s1.611-2.43 1.611-3.889c0-1.459-0.58-2.858-1.611-3.889s-2.429-1.611-3.888-1.611c-0.507 0.002-1.013 0.070-1.502 0.203-0.533 0.145-1.082-0.17-1.227-0.703s0.17-1.082 0.703-1.227c0.659-0.179 1.339-0.27 2.021-0.272z\"><\/path><path d=\"M10.906 21.364c-1.605 0-3.186 0.386-4.61 1.126s-2.649 1.811-3.572 3.124c-0.318 0.452-0.941 0.561-1.393 0.243s-0.561-0.941-0.243-1.393c1.107-1.576 2.577-2.862 4.286-3.749s3.606-1.351 5.532-1.351 3.823 0.463 5.532 1.351c1.709 0.888 3.179 2.174 4.286 3.749 0.318 0.452 0.209 1.076-0.243 1.393s-1.076 0.209-1.393-0.243c-0.923-1.313-2.148-2.385-3.572-3.124s-3.005-1.126-4.61-1.126z\"><\/path><path d=\"M25.704 22.493c-1.424-0.74-3.005-1.125-4.61-1.124-0.552 0-1-0.447-1.001-0.999s0.447-1 0.999-1.001c1.926-0.001 3.824 0.462 5.533 1.349s3.179 2.174 4.286 3.751c0.317 0.452 0.208 1.076-0.244 1.393s-1.076 0.208-1.393-0.244c-0.922-1.313-2.147-2.385-3.571-3.125z\"><\/path><\/svg>\n              <div class=\"scaler-placement__stat-text\">\n                <span class=\"scaler-placement__stat-value\">11,000+<\/span>\n                <span class=\"scaler-placement__stat-desc\">placements<\/span>\n              <\/div>\n            <\/div>\n            <div class=\"scaler-placement__stat-item\">\n              <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M1.2 27.5c0-0.442 0.358-0.8 0.8-0.8h28c0.442 0 0.8 0.358 0.8 0.8s-0.358 0.8-0.8 0.8h-28c-0.442 0-0.8-0.358-0.8-0.8z\"><\/path><path d=\"M3.727 4.227c0.338-0.338 0.795-0.527 1.273-0.527h12c0.477 0 0.935 0.19 1.273 0.527s0.527 0.795 0.527 1.273v22c0 0.442-0.358 0.8-0.8 0.8s-0.8-0.358-0.8-0.8v-22c0-0.053-0.021-0.104-0.059-0.141s-0.088-0.059-0.141-0.059h-12c-0.053 0-0.104 0.021-0.141 0.059s-0.059 0.088-0.059 0.141v22c0 0.442-0.358 0.8-0.8 0.8s-0.8-0.358-0.8-0.8v-22c0-0.477 0.19-0.935 0.527-1.273z\"><\/path><path d=\"M17.2 12.5c0-0.442 0.358-0.8 0.8-0.8h9c0.477 0 0.935 0.19 1.273 0.527s0.527 0.795 0.527 1.273v14c0 0.442-0.358 0.8-0.8 0.8s-0.8-0.358-0.8-0.8v-14c0-0.053-0.021-0.104-0.059-0.141s-0.088-0.059-0.141-0.059h-9c-0.442 0-0.8-0.358-0.8-0.8z\"><\/path><path d=\"M7.2 9.5c0-0.442 0.358-0.8 0.8-0.8h4c0.442 0 0.8 0.358 0.8 0.8s-0.358 0.8-0.8 0.8h-4c-0.442 0-0.8-0.358-0.8-0.8z\"><\/path><path d=\"M9.2 17.5c0-0.442 0.358-0.8 0.8-0.8h4c0.442 0 0.8 0.358 0.8 0.8s-0.358 0.8-0.8 0.8h-4c-0.442 0-0.8-0.358-0.8-0.8z\"><\/path><path d=\"M7.2 22.5c0-0.442 0.358-0.8 0.8-0.8h4c0.442 0 0.8 0.358 0.8 0.8s-0.358 0.8-0.8 0.8h-4c-0.442 0-0.8-0.358-0.8-0.8z\"><\/path><path d=\"M21.2 22.5c0-0.442 0.358-0.8 0.8-0.8h2c0.442 0 0.8 0.358 0.8 0.8s-0.358 0.8-0.8 0.8h-2c-0.442 0-0.8-0.358-0.8-0.8z\"><\/path><path d=\"M21.2 17.5c0-0.442 0.358-0.8 0.8-0.8h2c0.442 0 0.8 0.358 0.8 0.8s-0.358 0.8-0.8 0.8h-2c-0.442 0-0.8-0.358-0.8-0.8z\"><\/path><\/svg>\n              <div class=\"scaler-placement__stat-text\">\n                <span class=\"scaler-placement__stat-value\">650+<\/span>\n                <span class=\"scaler-placement__stat-desc\">companies<\/span>\n              <\/div>\n            <\/div>\n            <div class=\"scaler-placement__stat-item\">\n              <svg viewBox=\"0 0 25 24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M5.60938 18.8906C4.74688 18.0281 5.31875 16.2188 4.87813 15.1594C4.4375 14.1 2.75 13.1719 2.75 12C2.75 10.8281 4.41875 9.9375 4.87813 8.84063C5.3375 7.74375 4.74688 5.97187 5.60938 5.10938C6.47187 4.24688 8.28125 4.81875 9.34063 4.37813C10.4 3.9375 11.3281 2.25 12.5 2.25C13.6719 2.25 14.5625 3.91875 15.6594 4.37813C16.7562 4.8375 18.5281 4.24688 19.3906 5.10938C20.2531 5.97187 19.6812 7.78125 20.1219 8.84063C20.5625 9.9 22.25 10.8281 22.25 12C22.25 13.1719 20.5813 14.0625 20.1219 15.1594C19.6625 16.2562 20.2531 18.0281 19.3906 18.8906C18.5281 19.7531 16.7188 19.1812 15.6594 19.6219C14.6 20.0625 13.6719 21.75 12.5 21.75C11.3281 21.75 10.4375 20.0813 9.34063 19.6219C8.24375 19.1625 6.47187 19.7531 5.60938 18.8906Z\" fill=\"#ffffff\" stroke=\"#255aad\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><path d=\"M16.625 9.75L11.1219 15L8.375 12.375\" stroke=\"#255aad\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n              <span class=\"scaler-placement__stat-desc\">Verified data<\/span>\n            <\/div>\n          <\/div>\n\n          <a class=\"scaler-placement__cta\" href=\"https:\/\/d2beiqkhq929f0.cloudfront.net\/public_assets\/assets\/000\/195\/869\/original\/Scaler_Career_Report.pdf?1778499863\" target=\"_blank\" rel=\"noopener\">\n            See full placement report\n            <svg viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"><\/path><\/svg>\n          <\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"scaler-hiring\">\n        <span class=\"scaler-hiring__label\">Hiring Partners:<\/span>\n        <div class=\"scaler-hiring__pills\">\n          <span class=\"scaler-hiring__pill\">\n            <span class=\"scaler-hiring__badge\"><img decoding=\"async\" class=\"scaler-hiring__logo\" src=\"https:\/\/d19zaobb0foqu6.cloudfront.net\/topics\/images\/googleicon_.svg\" alt=\"Google\" loading=\"lazy\"><\/span>\n            <span class=\"scaler-hiring__name\">Google<\/span>\n          <\/span>\n          <span class=\"scaler-hiring__pill\">\n            <span class=\"scaler-hiring__badge\"><img decoding=\"async\" class=\"scaler-hiring__logo\" src=\"https:\/\/d19zaobb0foqu6.cloudfront.net\/topics\/images\/amazonicon_.svg\" alt=\"Amazon\" loading=\"lazy\"><\/span>\n            <span class=\"scaler-hiring__name\">Amazon<\/span>\n          <\/span>\n          <span class=\"scaler-hiring__pill\">\n            <span class=\"scaler-hiring__badge\"><img decoding=\"async\" class=\"scaler-hiring__logo\" src=\"https:\/\/d19zaobb0foqu6.cloudfront.net\/topics\/images\/microsoft.svg\" alt=\"Microsoft\" loading=\"lazy\"><\/span>\n            <span class=\"scaler-hiring__name\">Microsoft<\/span>\n          <\/span>\n          <span class=\"scaler-hiring__pill\">\n            <span class=\"scaler-hiring__badge\"><img decoding=\"async\" class=\"scaler-hiring__logo\" src=\"https:\/\/d19zaobb0foqu6.cloudfront.net\/topics\/images\/flipkarticon_.svg\" alt=\"Flipkart\" loading=\"lazy\"><\/span>\n            <span class=\"scaler-hiring__name\">Flipkart<\/span>\n          <\/span>\n          <span class=\"scaler-hiring__pill\">\n            <span class=\"scaler-hiring__badge\"><img decoding=\"async\" class=\"scaler-hiring__logo\" src=\"https:\/\/d19zaobb0foqu6.cloudfront.net\/topics\/images\/adobeicon_.svg\" alt=\"Adobe\" loading=\"lazy\"><\/span>\n            <span class=\"scaler-hiring__name\">Adobe<\/span>\n          <\/span>\n          <span class=\"scaler-hiring__more\">1200+ more<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"how-to-improve-deep-learning-skills-a-deliberate-practice-path\"><\/span><strong>How to Improve Deep Learning Skills: A Deliberate-Practice Path<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There is a point where watching another course stops adding much. You know the terminology, you can follow an implementation, and you can recognise common architectures. What you have not developed yet is the instinct to make decisions when the answer is not sitting in front of you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These five exercises are designed to build that instinct by putting you in situations where you have to make those decisions yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re wondering how to become a deep learning engineer, the answer is not another list of courses. It comes from practising the parts that tutorials usually handle for you: choosing an approach, debugging failures, testing assumptions, and figuring out what to try next.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Reimplement a Paper from Scratch<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pick a paper with an architecture you can realistically understand and reproduce. Avoid Attention Is All You Need as a first attempt. It is too easy to spend your time wrestling with implementation details without learning how to read a research paper critically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use the paper as your starting point, not an existing GitHub implementation. Write down the architecture, preprocessing, loss, optimiser, training settings, and anything else you need before writing the code. When the paper leaves something unspecified, make the decision yourself and record it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As you build, pay attention to the details the paper leaves unstated. Identify at least three implementation decisions you had to make yourself, whether they involve preprocessing, architecture, optimisation, or training settings. If you cannot find any, you may have followed an existing implementation too closely to test your understanding of the paper.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Reproduce a Known Result Before Trying to Beat It<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Find a published result you can reproduce with the data and compute available to you. Treat the reported result as a target and focus on reproducing it before attempting improvements.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Match the experimental setup as closely as possible. Keep track of preprocessing, data splits, model configuration, optimiser, learning rate, random seeds, and evaluation. When your number differs, investigate the difference before changing the model.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Getting a slightly worse result is not a failure. Failing to explain it is.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The exercise has done its job when you can say why your result is different from the paper's, even if the explanation is simply a difference in hardware, preprocessing, training budget, or an implementation detail you could not reproduce exactly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Enter a Kaggle Competition Properly<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before your first submission, decide how you will validate the model, establish a baseline, choose the evaluation metric, and keep an experiment log so you can track what changed between runs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Build your own approach before looking at the highest-ranked notebooks. Once you have a result, compare it with stronger solutions and look at how they handled validation, feature engineering, model selection, and errors. This gives you a way to understand why their approaches performed differently from yours.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your validation setup should also give you some indication of how the model will perform on the leaderboard. If a change improves your validation score but consistently lowers your leaderboard score, look at what your validation setup is missing and adjust it accordingly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Debug Deliberately Broken Models<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Take a model that works and deliberately make it fail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Change one thing at a time:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Set the learning rate 100\u00d7 too high.&nbsp;<\/li>\n\n\n\n<li>Stop shuffling the data.&nbsp;<\/li>\n\n\n\n<li>Remove normalisation.&nbsp;<\/li>\n\n\n\n<li>Initialise the weights to zero.&nbsp;<\/li>\n\n\n\n<li>Shuffle the labels.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">And do not immediately fix each problem. First, run it and study the failure. What happens to the loss? Do the gradients explode or disappear? Does the model stop learning completely, or does it learn the wrong thing?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Keep a simple signature-to-cause file as you go. Over time, you\u2019ll build a personal reference for the failure patterns you have seen.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eventually, a loss curve should make you suspicious before you open the code. That is the point of the exercise.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Read Papers Systematically<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You do not need to read dozens of papers every month. You need to finish the ones you choose.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use three passes:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Get the problem, main idea, and result from the abstract, introduction, figures, and conclusion.&nbsp;<\/li>\n\n\n\n<li>Work through the method and experiments.&nbsp;<\/li>\n\n\n\n<li>Return to the sections you struggled with and follow the references that explain where the idea came from.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Try one paper a week and write a short note after each one: what problem did it solve, what did it change, what did it borrow from earlier work, and what remains unresolved?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After a few weeks, the papers should stop looking like isolated inventions. You should start recognising the line of work they belong to. That is a much better measure of progress than the number of PDFs in your downloads folder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Build your portfolio with these <a href=\"https:\/\/www.scaler.com\/blog\/neural-network-projects-to-boost-your-portfolio\/\">12 Neural Network Projects<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"why-your-model-wont-converge-a-diagnostic-checklist\"><\/span><strong>Why Your Model Won't Converge: A Diagnostic Checklist<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When training fails, changing the architecture is usually the wrong first move. Check the data, training loop, optimisation, and loss before deciding the model itself is the problem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 0: Can It Overfit a Single Batch?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Take 10 training examples, turn off augmentation and regularisation, and train on those same examples repeatedly. The loss should get close to zero within a few hundred steps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If it cannot, stop tuning. Something is wrong with the code, data pipeline, labels, or loss.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If it can, the basic system works. You can move on to optimisation, data volume, or generalisation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The test is helpful as it removes almost every variable except one: can this setup learn anything at all?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>x, y = next(iter(train_loader))\n\nx, y = x&#91;:10].to(device), y&#91;:10].to(device)\n\nfor _ in range(300):\n\n&nbsp;&nbsp;&nbsp;&nbsp;optimizer.zero_grad()\n\n&nbsp;&nbsp;&nbsp;&nbsp;loss = criterion(model(x), y)\n\n&nbsp;&nbsp;&nbsp;&nbsp;loss.backward()\n\n&nbsp;&nbsp;&nbsp;&nbsp;optimizer.step()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Check the Data and Pipeline<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before changing the model, check what is actually entering it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Look for shuffled labels, incorrect input scaling, missing normalisation, augmentation that changes the label, NaNs, leakage, or a DataLoader repeatedly returning the same batch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One quick check catches a surprising number of these problems: print five training examples with their labels after all transformations have been applied. Look at the tensors, not just the original files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To know more, check out: <a href=\"https:\/\/www.scaler.com\/blog\/data-cleaning-in-machine-learning\/\">Data Cleaning in Machine Learning<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Check Optimisation<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Start with the learning rate. Sweep it across several orders of magnitude before changing the architecture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then check optimizer.zero_grad(), weight initialisation, normalisation, vanishing or exploding gradients, and gradient clipping.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Logging gradient norms for each layer can tell you where the signal is disappearing. A layer with almost no gradient is a much better clue than randomly trying another optimiser.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Check the Architecture and Loss<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now check whether the model and loss actually match the task.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Look for the wrong number of outputs, an unsuitable loss function, incorrect final activation, or shape mismatches.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A common PyTorch mistake is applying softmax before CrossEntropyLoss. CrossEntropyLoss works with logits and handles the required normalisation internally.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cThe model is too small\u201d should be one of the last hypotheses, not the first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: It Trains, But Doesn't Generalise<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If training loss keeps falling while validation loss rises, the model is learning the training data too well.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check, roughly in this order:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>More or better data<\/li>\n\n\n\n<li>Better augmentation<\/li>\n\n\n\n<li>Regularisation<\/li>\n\n\n\n<li>A smaller model<\/li>\n\n\n\n<li>Early stopping<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Also check whether your training and validation sets come from different distributions. Distribution mismatch can look like ordinary overfitting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Reading the Loss Curve<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Signature<\/strong><\/td><td><strong>Likely cause<\/strong><\/td><td><strong>First thing to try<\/strong><\/td><\/tr><tr><td>Flat from the start<\/td><td>Learning rate, broken gradients, bad labels, or pipeline bug<\/td><td>Run the single-batch overfit test and inspect the data<\/td><\/tr><tr><td>Falls, then plateaus high<\/td><td>Learning rate too low, optimisation issue, or insufficient capacity<\/td><td>Check learning rate and gradient norms<\/td><\/tr><tr><td>Spiky<\/td><td>Learning rate too high or exploding gradients<\/td><td>Reduce learning rate and inspect gradients<\/td><\/tr><tr><td>NaN after N steps<\/td><td>Exploding gradients, invalid inputs, unstable operations<\/td><td>Check inputs for NaNs and reduce learning rate<\/td><\/tr><tr><td>Training loss falls, validation loss rises<\/td><td>Overfitting or distribution mismatch<\/td><td>Check the split, then augmentation and regularisation<\/td><\/tr><tr><td>Validation loss below training loss<\/td><td>Different train\/validation behaviour or pipeline bug<\/td><td>Compare preprocessing and verify train()\/eval() modes<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Use the failure signature to narrow the search before changing the model.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"compute-without-a-gpu-what-indian-learners-can-train-on\"><\/span><strong>Compute Without a GPU: What Indian Learners Can Train On<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A free notebook environment is enough for most learning exercises, smaller computer-vision projects, model fine-tuning, and experiments where you are working with pretrained models.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The right platform depends on what you are training and how long the run needs to stay alive.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Platform<\/strong><\/td><td><strong>Free tier<\/strong><\/td><td><strong>Realistic paid tier<\/strong><\/td><td><strong>What you can actually train on it<\/strong><\/td><td><strong>Main limitation<\/strong><\/td><\/tr><tr><td>Colab Free<\/td><td>Free access to changing GPU\/TPU availability<\/td><td>Colab Pro\/Pro+ for higher resource priority and longer access<\/td><td>CNNs, smaller transformers, coursework, pretrained-model experiments<\/td><td>Sessions and hardware availability can vary<\/td><\/tr><tr><td>Colab Pro\/Pro+<\/td><td>Paid Colab plans with increased compute access<\/td><td>Subscription-based, with usage depending on the plan and available resources<\/td><td>Larger experiments, longer training runs, fine-tuning<\/td><td>Still not the same as having a dedicated GPU<\/td><\/tr><tr><td>Kaggle Notebooks<\/td><td>Free GPU access with a weekly quota<\/td><td>No conventional paid notebook tier<\/td><td>CNNs, tabular ML, competitions, smaller transformer experiments<\/td><td>Weekly GPU quota and session limits<\/td><\/tr><tr><td>Lightning AI Studios<\/td><td>Free credits and a free Studio with limited runtime behaviour<\/td><td>Pay-as-you-go or paid plans<\/td><td>Deep learning experiments, fine-tuning, multi-GPU work<\/td><td>Free resources have usage and restart limits<\/td><\/tr><tr><td>Paperspace\/Gradient<\/td><td>Free account with limited resources<\/td><td>Paid plans plus hourly instance costs<\/td><td>GPU notebooks, model training, and larger experiments<\/td><td>GPU instances incur additional usage costs<\/td><\/tr><tr><td>RunPod or Vast.ai<\/td><td>No meaningful always-free GPU tier<\/td><td>Hourly GPU rental, including lower-cost options<\/td><td>Serious training and fine-tuning runs that need dedicated GPU memory<\/td><td>You pay while the instance is running, so an idle machine still costs money<\/td><\/tr><tr><td>College lab or HPC cluster<\/td><td>Often available to students at no additional cost<\/td><td>Usually covered by the institution<\/td><td>Larger experiments, shared GPU resources, research projects<\/td><td>Access, queues, software setup, and availability depend on your college<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Cloud GPU prices change frequently, so check the provider before committing to a run. Kaggle currently describes a weekly GPU quota that is typically around 30 hours, while Lightning currently offers free GPU credits and a free Studio with periodic restarts. Paperspace charges separately for paid instances, while RunPod and Vast.ai use usage-based GPU pricing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are paying for compute, do not leave an instance running while you are away. RunPod, for example, bills GPU instances by usage, while Vast.ai uses real-time, supply-and-demand pricing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">College labs and HPC clusters can also provide access to GPUs at no additional cost for students. Check with your department, lab administrator, or faculty working in AI\/ML about available resources. Some institutions have shared GPU machines that students can access through an internal login.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How to Work Within the Limits<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A few habits make free or inexpensive compute go much further:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prototype on a subset first. Make sure the data pipeline, loss, metrics, and training loop work before launching a full run.<\/li>\n\n\n\n<li>Checkpoint every epoch. If a session disconnects, losing one epoch is frustrating. Losing an entire 12-hour run is avoidable.<\/li>\n\n\n\n<li>Use mixed precision. It can reduce GPU memory use and speed up compatible workloads.<\/li>\n\n\n\n<li>Use gradient accumulation when the GPU cannot fit your desired batch size.<\/li>\n\n\n\n<li>Lower image or input resolution during development. You can increase it for the final experiment once everything works.<\/li>\n\n\n\n<li>Start with a pretrained model. Fine-tuning an existing model is usually far cheaper than training an equivalent model from scratch.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You can build strong deep learning skills without having access to expensive hardware. Working with limited compute also means learning to choose appropriate model sizes, manage GPU memory, optimise training, and make the most of the resources available. Those skills continue to matter as you move to larger machines and more demanding workloads.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Learn more for free with this: <a href=\"https:\/\/www.scaler.com\/topics\/course\/deep-learning-free-course\/\">Deep Learning Course with Certification<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"what-changed-in-2026-most-deep-learning-work-is-now-adaptation-not-invention\"><\/span><strong>What Changed in 2026: Most Deep Learning Work Is Now Adaptation, Not Invention<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The way deep learning models are built and used has changed considerably. Large-scale model training now requires substantial amounts of compute, data, and infrastructure, with industry producing more than <a href=\"https:\/\/hai.stanford.edu\/assets\/files\/ai_index_report_2026.pdf\" target=\"_blank\" rel=\"noopener\">90% of notable AI models in 2025<\/a>. At the same time, smaller and more efficient models have become increasingly capable, making it possible to start with a pretrained model and adapt it to a particular task instead of training everything from scratch. That changes some of the skills you should develop alongside the fundamentals.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Evaluation matters throughout the process. When you start with a pretrained model, you still need to establish whether it performs well on your task. That means choosing relevant test data and metrics, analysing errors, and comparing the model with a simpler baseline.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Data preparation matters just as much when you fine-tune a model. You need to select useful examples, clean the data, remove duplicates where necessary, handle labels correctly, and decide which examples belong in training and evaluation. Recent research also continues to show how much model performance can depend on data quality and curation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inference is part of the model decision. Accuracy is only one consideration when a model has to run inside an application. Model size, memory requirements, latency, quantisation, and inference cost can all affect which model makes sense for a particular use case. The cost of inference has also fallen sharply as smaller and more efficient models have improved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That also means you may have several models to choose from for the same task. Compare their performance, licensing, context limits, compute requirements, latency, and cost instead of assuming that the largest model is automatically the right choice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fundamentals still matter when you work with pretrained models. If a fine-tuned model starts performing worse, you need to understand learning rates, gradients, overfitting, loss curves, and validation to work out what changed. The API can run the fine-tuning process, but it cannot explain why your results deteriorated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Training models from scratch and designing new architectures remain important in research and specialised model-development work. For applied deep learning, however, knowing how to evaluate, adapt, optimise, and deploy existing models is becoming an increasingly important part of the skill set.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to see how these changes fit into the wider AI job market in India, you can also read Scaler\u2019s <a href=\"https:\/\/www.scaler.com\/blog\/india-ai-workforce-report-2026\/\">India AI Workforce Report 2026<\/a>, which looks at how AI skills and career paths are changing across the country.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"how-deep-learning-skills-are-tested-in-interviews\"><\/span><strong>How Deep Learning Skills Are Tested in Interviews<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For many deep learning roles in India, the interview may start with a DSA or coding round before moving into deep learning fundamentals. From there, the discussion can move to your projects, how you approached them, and, for some roles, ML system design.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first question is often only the starting point. Once you give an answer, you may be asked why you chose a particular approach, what you would change if the model stopped improving, or how you would handle a different set of constraints. These follow-up questions test how well you understand your decisions and whether you can reason through a problem when the original setup changes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What the Rounds Actually Look Like<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When you reach the part of the interview where your projects are being discussed, get ready to be asked about the tiniest details. If you\u2019ve mentioned that you fine-tuned a transformer, the interviewer can ask about the dataset, preprocessing, model choice, learning rate, evaluation, what went wrong during training, and why you made each decision.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The questions can get even more specific from there. Why did you choose that loss function? What happened when you changed the learning rate? How did you know the model was overfitting? You should be able to explain what you tried, what changed, and why you made those choices.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is where a project you simply followed from a tutorial can become difficult to discuss. You may know how the code works, but the smaller decisions behind it are much harder to explain when you never had to make them yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A typical process can look like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DSA or coding:<\/strong> problem solving, Python, data structures, algorithms<\/li>\n\n\n\n<li><strong>DL fundamentals:<\/strong> neural networks, backpropagation, optimisation, architectures, training behaviour<\/li>\n\n\n\n<li><strong>Project deep-dive:<\/strong> your decisions, experiments, failures, results, and trade-offs<\/li>\n\n\n\n<li><strong>ML system design:<\/strong> sometimes included for more experienced or production-focused roles<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Deep Learning Questions You Should Prepare For<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Interview question<\/strong><\/td><td><strong>What you should be able to explain<\/strong><\/td><\/tr><tr><td><strong>Explain backpropagation.<\/strong><\/td><td>Trace how the loss is differentiated with respect to the output and how the chain rule carries the gradients backwards through each layer. Explain how those gradients are used to update the model parameters.<\/td><\/tr><tr><td><strong>Why did you choose this architecture?<\/strong><\/td><td>Explain what about the data or task influenced your choice. For example, with image data, you could discuss the spatial structure that makes convolution useful and how the architecture compared with a simpler baseline.<\/td><\/tr><tr><td><strong>Your model is overfitting. What do you do?<\/strong><\/td><td>Start with the training and validation curves and check the data split. Then consider changes such as augmentation, more data, regularisation, a smaller model, or early stopping based on what the experiments show.<\/td><\/tr><tr><td><strong>How would you handle class imbalance?<\/strong><\/td><td>Look at the class distribution and choose metrics that reflect the problem. Depending on the dataset and model, consider class-weighted loss, targeted resampling, or augmentation, then compare each approach with the original baseline.<\/td><\/tr><tr><td><strong>Your training loss is flat. What is your first move?<\/strong><\/td><td>Try to overfit a single batch first. If the model cannot memorise a small set of examples, check the data, labels, loss, gradients, and training loop before changing the architecture.<\/td><\/tr><tr><td><strong>When would you not use deep learning?<\/strong><\/td><td>Consider the data type, dataset size, interpretability requirements, and inference budget. For small tabular datasets, for example, establish a gradient-boosted baseline before deciding whether a neural network is appropriate.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Keep this cheat sheet handy: <a href=\"https:\/\/www.scaler.com\/blog\/machine-learning-cheat-sheet\/\">Machine Learning Cheat Sheet<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"how-to-evidence-deep-learning-skills-to-a-recruiter\"><\/span><strong>How to Evidence Deep Learning Skills to a Recruiter<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A recruiter cannot tell how well you understand backpropagation from a list of technologies on your resume. Your projects and the way you describe them should show what you actually built, tested, improved, or deployed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A deployed model gives you something concrete to point to. A reproduced research result can show that you understood the paper and investigated the gap between your result and the published one. A Kaggle competition can show how you approached a problem, validated your models, and documented your experiments. A from-scratch implementation can show that you understood the concepts well enough to build them yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tutorial projects and certificates can still appear on your resume, but they carry less information about your practical experience. A certificate shows that you completed a course, while a project can show how you worked with data, debugged a training run, evaluated a model, or deployed it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What Makes a GitHub Project Worth Looking At?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A good repository should let someone understand the project without opening every notebook.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your README should answer four questions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What problem were you solving?<\/li>\n\n\n\n<li>What approach did you take?<\/li>\n\n\n\n<li>What result did you get?<\/li>\n\n\n\n<li>What baseline did your model beat?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Then make the project reproducible. Include the environment or dependency setup, instructions for running the code, the dataset source, and the main training and evaluation steps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also state what did not work. If your first model scored 78% and your final model reached 86%, explain what changed. If you could not reproduce a published result exactly, say why. That gives the project more credibility than presenting a perfectly clean final notebook with no explanation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A GitHub profile full of unexplained notebooks is not strong evidence. In some cases, it is worse than having fewer projects because the recruiter still cannot tell what you actually did.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Put Results on the Resume<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When you describe a deep learning project on your resume, include the problem you worked on, the approach you took, and what changed as a result. If you improved inference latency, mention the reduction. If you improved validation performance, include the metric and the size of the improvement. If you changed the model because of memory constraints, explain what you changed and how it affected the final result.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, a project entry could mention that you reduced inference latency by 4\u00d7 through quantisation while keeping accuracy within 1% of the original model. That gives someone reading your resume a clear idea of the problem, the technical decision, and the result.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Keep the technology stack relevant to the work you describe. PyTorch, TensorFlow, and other frameworks can be listed, but the project should also show what you actually did with them. Your experiments, results, debugging decisions, and trade-offs give the project substance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also check these: <a href=\"https:\/\/www.scaler.com\/blog\/10-ai-portfolio-projects-to-land-your-dream-job-2026\/\">10 AI Portfolio Projects<\/a>.<\/p>\n\n\n<meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n    <!-- Source Sans Pro (topics font) -->\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Source+Sans+3:wght@400;600;700&amp;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\">\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\n\n    <style>\n      :root {\n        --ss-primary: #005bb3;        \/* primary-color-80 *\/\n        --ss-card-bg: #ffffff;\n        --ss-border: #e6e6e6;\n        --ss-quote-bg: #f6f6f6;\n        --ss-text-dark: #1c1c1c;\n        --ss-text-mid: #6b6b6b;\n        --ss-text-muted: #9a9a9a;\n        --ss-radius: 12px;\n        --ss-radius-sm: 8px;\n        --ss-shadow: 0 8px 16px 0 rgba(50, 71, 102, 0.16);\n      }\n\n      .scaler-ss * { box-sizing: border-box; }\n\n      .scaler-ss {\n        font-family: \"Source Sans 3\", \"Source Sans Pro\", \"Roboto\", Arial, sans-serif;\n        padding: 24px;\n        width: 100%;\n      }\n      .scaler-ss__inner {\n        max-width: 1000px;\n        margin: 0 auto;\n        position: relative;\n        width: 100%;\n      }\n\n      \/* Heading *\/\n      .scaler-ss__heading {\n        font-size: 26px;\n        line-height: 34px;\n        font-weight: 700;\n        margin: 0 0 16px;\n        text-align: center;\n        color: var(--ss-text-dark);\n      }\n\n      \/* Swiper *\/\n      .scaler-ss__swiper-wrap { position: relative; }\n      .scaler-ss .swiper { width: 100%; padding: 4px; }\n      .scaler-ss-swiper .swiper-slide {\n        width: 300px;          \/* topics card width *\/\n        height: auto;\n        display: flex;\n      }\n\n      \/* Card *\/\n      .scaler-ss-card {\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n        border: 1px solid var(--ss-border);\n        border-radius: var(--ss-radius);\n        overflow: hidden;\n        background: var(--ss-card-bg);\n      }\n\n      .scaler-ss-card__hike {\n        padding: 8px 12px;\n        background: var(--ss-primary);\n        color: #ffffff;\n        font-size: 14px;\n        font-weight: 700;\n        text-align: center;\n        letter-spacing: 0.4px;\n      }\n\n      .scaler-ss-card__body {\n        display: flex;\n        flex: 1 1 auto;\n        flex-direction: column;\n        gap: 12px;\n        padding: 16px;\n      }\n\n      \/* Person *\/\n      .scaler-ss-card__person {\n        display: flex;\n        align-items: center;\n        gap: 10px;\n      }\n      .scaler-ss-card__avatar {\n        width: 44px;\n        height: 44px;\n        min-width: 44px;\n        border-radius: 50%;\n        object-fit: cover;\n        background: var(--ss-quote-bg);\n      }\n      .scaler-ss-card__name {\n        font-size: 16px;\n        font-weight: 700;\n        line-height: 20px;\n        color: var(--ss-text-dark);\n      }\n      .scaler-ss-card__city {\n        font-size: 13px;\n        line-height: 18px;\n        color: var(--ss-text-mid);\n      }\n\n      \/* Before \/ Now transition *\/\n      .scaler-ss-card__transition {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        gap: 8px;\n      }\n      .scaler-ss-card__col {\n        flex: 1;\n        min-width: 0;\n      }\n      .scaler-ss-card__col-label {\n        font-size: 11px;\n        font-weight: 600;\n        letter-spacing: 0.4px;\n        color: var(--ss-text-muted);\n        margin-bottom: 2px;\n      }\n      .scaler-ss-card__col-role {\n        font-size: 13px;\n        line-height: 18px;\n        color: var(--ss-text-mid);\n      }\n      .scaler-ss-card__col-company {\n        font-size: 14px;\n        font-weight: 700;\n        line-height: 20px;\n        color: var(--ss-text-dark);\n      }\n      .scaler-ss-card__company-logo {\n        margin-top: 2px;\n        max-width: 64px;\n        max-height: 20px;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        display: block;\n      }\n      .scaler-ss-card__arrow {\n        flex-shrink: 0;\n        width: 28px;\n        height: 8px;\n        color: var(--ss-text-mid);\n        fill: currentColor;\n      }\n\n      \/* Quote *\/\n      .scaler-ss-card__quote {\n        font-size: 13px;\n        font-style: italic;\n        line-height: 19px;\n        color: var(--ss-text-mid);\n        background: var(--ss-quote-bg);\n        border-radius: var(--ss-radius-sm);\n        padding: 8px 10px;\n      }\n\n      \/* View Profile *\/\n      .scaler-ss-card__cta,\n      .scaler-ss-card__cta:link,\n      .scaler-ss-card__cta:visited {\n        display: block;\n        margin-top: auto;\n        text-align: center;\n        font-size: 14px;\n        font-weight: 600;\n        color: var(--ss-primary) !important;\n        text-decoration: none;\n        border: 1px solid var(--ss-primary);\n        border-radius: var(--ss-radius-sm);\n        padding: 9px 12px;\n        cursor: pointer;\n        transition: background 0.2s ease, color 0.2s ease;\n      }\n      .scaler-ss-card__cta:hover,\n      .scaler-ss-card__cta:focus {\n        background: var(--ss-primary);\n        color: #ffffff !important;\n      }\n\n      \/* Side navigation arrows *\/\n      .scaler-ss__nav {\n        position: absolute !important;\n        top: 50% !important;\n        transform: translateY(-50%) !important;\n        z-index: 2;\n        width: 46px !important;\n        height: 46px !important;\n        min-width: 46px;\n        display: flex !important;\n        align-items: center;\n        justify-content: center;\n        padding: 0 !important;\n        background: var(--ss-card-bg) !important;\n        border: none !important;\n        border-radius: var(--ss-radius-sm) !important;\n        box-shadow: var(--ss-shadow) !important;\n        color: #61738e !important;\n        cursor: pointer;\n        transition: opacity 0.2s ease, visibility 0.2s ease;\n      }\n      .scaler-ss__nav--prev { left: 8px !important; }\n      .scaler-ss__nav--next { right: 8px !important; }\n      .scaler-ss__nav svg {\n        width: 20px !important;\n        height: 20px !important;\n        fill: #61738e !important;\n      }\n      .scaler-ss__nav.swiper-button-disabled {\n        opacity: 0;\n        visibility: hidden;\n        pointer-events: none;\n      }\n\n      .scaler-ss .swiper-button-prev,\n      .scaler-ss .swiper-button-next,\n      .scaler-ss .swiper-pagination { display: none; }\n\n      \/* Skeleton *\/\n      .scaler-ss-card--skeleton { pointer-events: none; }\n      .scaler-ss-card--skeleton .scaler-ss-card__hike,\n      .scaler-ss-card--skeleton .scaler-ss-card__avatar,\n      .scaler-ss-card--skeleton .scaler-ss-card__person-text,\n      .scaler-ss-card--skeleton .scaler-ss-card__transition,\n      .scaler-ss-card--skeleton .scaler-ss-card__quote,\n      .scaler-ss-card--skeleton .scaler-ss-card__cta {\n        background: linear-gradient(90deg, var(--ss-border) 25%, var(--ss-quote-bg) 50%, var(--ss-border) 75%);\n        background-size: 200% 100%;\n        animation: ss-shimmer 1.5s infinite;\n        color: transparent !important;\n        border-color: transparent !important;\n        border-radius: 4px;\n      }\n      .scaler-ss-card--skeleton .scaler-ss-card__person-text { flex: 1; height: 32px; }\n      .scaler-ss-card--skeleton .scaler-ss-card__transition { height: 56px; }\n      .scaler-ss-card--skeleton .scaler-ss-card__quote { height: 48px; }\n      .scaler-ss-card--skeleton .scaler-ss-card__cta { height: 38px; }\n\n      @keyframes ss-shimmer {\n        0% { background-position: 200% 0; }\n        100% { background-position: -200% 0; }\n      }\n\n      @media (max-width: 768px) {\n        .scaler-ss { padding: 16px; }\n        .scaler-ss__heading { font-size: 22px; line-height: 30px; }\n        .scaler-ss-swiper .swiper-slide { width: 270px; }\n        .scaler-ss__nav { display: none !important; }\n      }\n    <\/style>\n\n\n\n    <div class=\"scaler-ss js-scaler-ss\">\n\n      <template class=\"js-ss-card-template\">\n        <div class=\"swiper-slide\">\n          <article class=\"scaler-ss-card\">\n            <div class=\"scaler-ss-card__hike js-ss-hike\"><\/div>\n            <div class=\"scaler-ss-card__body\">\n              <div class=\"scaler-ss-card__person\">\n                <img decoding=\"async\" class=\"scaler-ss-card__avatar js-ss-avatar\" src=\"\" alt=\"\" loading=\"lazy\">\n                <div class=\"scaler-ss-card__person-text\">\n                  <div class=\"scaler-ss-card__name js-ss-name\"><\/div>\n                  <div class=\"scaler-ss-card__city js-ss-city\"><\/div>\n                <\/div>\n              <\/div>\n\n              <div class=\"scaler-ss-card__transition\">\n                <div class=\"scaler-ss-card__col\">\n                  <div class=\"scaler-ss-card__col-label\">BEFORE:<\/div>\n                  <div class=\"scaler-ss-card__col-role js-ss-before-role\"><\/div>\n                  <div class=\"scaler-ss-card__col-company js-ss-before-company\"><\/div>\n                <\/div>\n                <svg class=\"scaler-ss-card__arrow\" viewBox=\"0 0 32 8\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M31.3882 4.35355C31.5835 4.15829 31.5835 3.84171 31.3882 3.64645L28.2062 0.464466C28.011 0.269204 27.6944 0.269204 27.4991 0.464466C27.3039 0.659728 27.3039 0.976311 27.4991 1.17157L30.3276 4L27.4991 6.82843C27.3039 7.02369 27.3039 7.34027 27.4991 7.53553C27.6944 7.7308 28.011 7.7308 28.2062 7.53553L31.3882 4.35355ZM0.034668 4.5H31.0347V3.5H0.034668V4.5Z\"><\/path><\/svg>\n                <div class=\"scaler-ss-card__col\">\n                  <div class=\"scaler-ss-card__col-label\">NOW:<\/div>\n                  <div class=\"scaler-ss-card__col-role js-ss-now-role\"><\/div>\n                  <div class=\"js-ss-now-company\"><\/div>\n                <\/div>\n              <\/div>\n\n              <div class=\"scaler-ss-card__quote js-ss-quote\"><\/div>\n\n              <a class=\"scaler-ss-card__cta js-ss-cta\" href=\"#\" target=\"_blank\" rel=\"noopener\">View Profile<\/a>\n            <\/div>\n          <\/article>\n        <\/div>\n      <\/template>\n\n      <div class=\"scaler-ss__inner\">\n        <h2 class=\"scaler-ss__heading\"><span class=\"ez-toc-section\" id=\"scaler-alumni-and-their-success-stories\"><\/span>Scaler Alumni and Their Success Stories<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n        <div class=\"scaler-ss__swiper-wrap\">\n          <div class=\"swiper scaler-ss-swiper\">\n            <div class=\"swiper-wrapper js-ss-wrapper\"><\/div>\n          <\/div>\n\n          <button class=\"scaler-ss__nav scaler-ss__nav--prev js-ss-prev\" aria-label=\"Previous\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(-90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"><\/path><\/svg>\n          <\/button>\n          <button class=\"scaler-ss__nav scaler-ss__nav--next js-ss-next\" aria-label=\"Next\">\n            <svg fill=\"currentColor\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform: rotate(90deg);\"><path d=\"M5.313 16l10.688-10.688 10.688 10.688-1.938 1.875-7.438-7.438v16.25h-2.625v-16.25l-7.5 7.438z\"><\/path><\/svg>\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n\n      const ASSET_CDN = \"https:\/\/d2beiqkhq929f0.cloudfront.net\/public_assets\/assets\";\n      const AVATAR_FALLBACK =\n        \"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Ccircle cx='22' cy='22' r='22' fill='%23e6e6e6'\/%3E%3Ccircle cx='22' cy='17' r='7' fill='%23b9b9b9'\/%3E%3Cpath d='M8 40c0-8 6.3-13 14-13s14 5 14 13' fill='%23b9b9b9'\/%3E%3C\/svg%3E\";\n\n      \/\/ Mirrors buildAssetUrl(): pass through absolute urls, else build the CDN url.\n      function buildAssetUrl(raw) {\n        if (!raw) return \"\";\n        if (String(raw).startsWith(\"http\")) return raw;\n        return `${ASSET_CDN}\/${raw}\/original`;\n      }\n\n      const instances = document.querySelectorAll(\".js-scaler-ss\");\n\n      instances.forEach(container => {\n        if (container.dataset.initialized === \"true\") return;\n        container.dataset.initialized = \"true\";\n\n        const swiperElement = container.querySelector(\".scaler-ss-swiper\");\n        const wrapper = container.querySelector(\".js-ss-wrapper\");\n        const template = container.querySelector(\".js-ss-card-template\");\n        const nextBtn = container.querySelector(\".js-ss-next\");\n        const prevBtn = container.querySelector(\".js-ss-prev\");\n\n        if (!wrapper || !template) {\n          console.error(\"Scaler Success Stories: missing required elements\");\n          return;\n        }\n\n        const swiper = new Swiper(swiperElement, {\n          slidesPerView: \"auto\",\n          spaceBetween: 16,\n          grabCursor: true,\n          observer: true,\n          observeParents: true,\n          navigation: { nextEl: nextBtn, prevEl: prevBtn },\n        });\n\n        const pathParts = location.pathname.split(\"\/\").filter(Boolean);\n        const currentSlug = pathParts.length > 0 ? pathParts[pathParts.length - 1] : \"homepage\";\n        const profileUrl =\n          `https:\/\/www.scaler.com\/review\/?utm_source=blog&utm_medium=success_stories&utm_content=${currentSlug}`;\n\n        function showSkeletons(count = 4) {\n          wrapper.innerHTML = \"\";\n          for (let i = 0; i < count; i++) {\n            const clone = template.content.cloneNode(true);\n            clone.querySelector(\".scaler-ss-card\").classList.add(\"scaler-ss-card--skeleton\");\n            wrapper.appendChild(clone);\n          }\n          swiper.update();\n        }\n\n        function renderStories(stories) {\n          wrapper.innerHTML = \"\";\n          if (!stories.length) {\n            container.style.display = \"none\";   \/\/ match topics: render nothing when empty\n            return;\n          }\n\n          stories.forEach(story => {\n            const a = story.attributes || {};\n            const clone = template.content.cloneNode(true);\n\n            const hike = String(a.growth || \"\").replace(\"%\", \"\").trim() || \"150\";\n            clone.querySelector(\".js-ss-hike\").textContent = `${hike}% HIKE`;\n\n            \/\/ Avatar\n            const avatar = buildAssetUrl(a.image_url) || a.generated_thumbnail_url || \"\";\n            const img = clone.querySelector(\".js-ss-avatar\");\n            img.src = avatar || AVATAR_FALLBACK;\n            img.alt = a.name || \"Scaler alumnus\";\n            img.onerror = function () { this.onerror = null; this.src = AVATAR_FALLBACK; };\n\n            clone.querySelector(\".js-ss-name\").textContent = a.name || \"\";\n            const cityEl = clone.querySelector(\".js-ss-city\");\n            if (a.city) cityEl.textContent = a.city; else cityEl.style.display = \"none\";\n\n            \/\/ BEFORE\n            clone.querySelector(\".js-ss-before-role\").textContent = a.pre_scaler_role || a.pre_academy_company || \"\";\n            const beforeCompany = clone.querySelector(\".js-ss-before-company\");\n            if (a.pre_academy_company) beforeCompany.textContent = a.pre_academy_company;\n            else beforeCompany.style.display = \"none\";\n\n            \/\/ NOW\n            clone.querySelector(\".js-ss-now-role\").textContent = a.role || \"\";\n            const nowCompanyBox = clone.querySelector(\".js-ss-now-company\");\n            const companyLogo = buildAssetUrl(a.company_logo_url);\n            if (companyLogo) {\n              const logo = document.createElement(\"img\");\n              logo.className = \"scaler-ss-card__company-logo\";\n              logo.src = companyLogo;\n              logo.alt = a.post_academy_company || \"company\";\n              logo.loading = \"lazy\";\n              logo.onerror = function () {\n                this.onerror = null;\n                this.replaceWith(Object.assign(document.createElement(\"div\"), {\n                  className: \"scaler-ss-card__col-company\",\n                  textContent: a.post_academy_company || \"\",\n                }));\n              };\n              nowCompanyBox.appendChild(logo);\n            } else if (a.post_academy_company) {\n              nowCompanyBox.className = \"scaler-ss-card__col-company\";\n              nowCompanyBox.textContent = a.post_academy_company;\n            }\n\n            \/\/ Quote (clip to 110 chars like topics)\n            const quoteEl = clone.querySelector(\".js-ss-quote\");\n            quoteEl.textContent = `\u201c${String(a.content).slice(0, 110)}\u2026\u201d`;\n\n            \/\/ View Profile\n            clone.querySelector(\".js-ss-cta\").href = profileUrl;\n\n            wrapper.appendChild(clone);\n          });\n\n          swiper.update();\n          swiper.slideTo(0);\n        }\n\n        async function fetchStories() {\n          try {\n            showSkeletons();\n            \/\/ Same-origin POST on www.scaler.com (the blog canonical host).\n            \/\/ The endpoint only returns JSON when the Referer is a \/topics\/ page\n            \/\/ (a soft anti-hotlinking gate); a \/blog\/ referer gets a Turbolinks\n            \/\/ redirect. Since blog + topics are the same origin, we set the\n            \/\/ fetch referrer to a topics URL so the server serves the data.\n            const res = await fetch(\"\/success-stories\/testimonials\", {\n              method: \"POST\",\n              credentials: \"include\",\n              referrer: \"https:\/\/www.scaler.com\/topics\/\",\n              referrerPolicy: \"unsafe-url\",\n              headers: {\n                \"Content-Type\": \"application\/json\",\n                \"Accept\": \"application\/json\",\n                \"X-Requested-With\": \"XMLHttpRequest\",\n              },\n              \/\/ q:{} => all programs (no program filter)\n              body: JSON.stringify({\n                page_number: 1,\n                per_page: 12,\n                sort_by: \"eligible_for_qna\",\n                new_quick_filters: true,\n                quick_filter: [],\n                q: {},\n              }),\n            });\n            const json = await res.json();\n            const all = (json && json.data && json.data.data) || [];\n            \/\/ Only show stories that carry a testimonial quote (matches topics).\n            const withQuote = all.filter(s => s.attributes && s.attributes.content);\n            renderStories(withQuote);\n          } catch (error) {\n            console.error(\"Failed to load success stories:\", error);\n            container.style.display = \"none\";\n          }\n        }\n\n        fetchStories();\n      });\n    });\n    <\/script>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"common-deep-learning-mistakes\"><\/span><strong>Common Deep Learning Mistakes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Collecting courses instead of finishing projects:<\/strong> Another certificate will not teach you what happens when your model fails on data you have never seen before. Finish fewer projects and take them further.<\/li>\n\n\n\n<li><strong>Skipping the maths completely:<\/strong> You do not need advanced mathematics, but if you cannot connect gradients, loss, and optimisation to what your model is doing, debugging becomes guesswork.<\/li>\n\n\n\n<li><strong>Never writing a training loop:<\/strong> If model.fit() is the only way you have trained a model, you are missing part of the mechanics you will be expected to understand.<\/li>\n\n\n\n<li><strong>Using only clean datasets:<\/strong> MNIST and CIFAR are excellent calibration tools for learning whether your code works. They are weak portfolio evidence on their own. Spend some time with data that needs actual inspection and cleaning.<\/li>\n\n\n\n<li><strong>Chasing architectures instead of fixing the data:<\/strong> A transformer will not rescue incorrect labels. A deeper CNN will not fix a broken preprocessing pipeline. Check the inputs before adding complexity.<\/li>\n\n\n\n<li><strong>Never deploy anything:<\/strong> A model that only exists in a notebook leaves out the last part of the engineering problem. Put at least one model behind an endpoint and predict your training environment.<\/li>\n\n\n\n<li><strong>Tuning on the test set:<\/strong> Once you repeatedly make decisions based on test performance, it is no longer an unbiased measure of how your model generalises. Keep the test set untouched until the end.<\/li>\n\n\n\n<li><strong>Waiting until you feel ready:<\/strong> Nobody has all eight tiers mastered before applying for a job. The candidates who get hired usually have gaps too. They can show what they have built, explain what they know, and keep learning where they are weaker.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Also read:<\/strong> <a href=\"https:\/\/www.scaler.com\/blog\/how-to-become-a-machine-learning-engineer\/\"><strong>How to Become a Machine Learning Engineer in 2025?<\/strong><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"conclusion\"><\/span><strong>Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You do not become job-ready by finishing every course or memorising every architecture. You get there by building, debugging, evaluating, and deploying models yourself. Pick the skill gap that is holding you back and work on it through one project you can explain in detail.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You also do not need all eight tiers mastered before you apply. Find the tier where you are weakest and be specific about what is missing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This week, pick that tier and complete one exercise from the deliberate-practice section. Reimplement something from scratch, reproduce a result, enter a Kaggle competition, deliberately break a model, or finish a paper properly. One difficult project you can explain is worth more than another course you can only say you completed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"faqs\"><\/span><strong>FAQs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What skills are required to become a deep learning engineer?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You need maths foundations, core deep learning mechanics, architecture knowledge, framework fluency, training craft, compute skills, production skills, and foundation-model adaptation. Training craft and debugging are heavily tested in hiring, yet they are among the least practised areas in most courses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How much mathematics do I actually need for deep learning?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You should understand enough linear algebra, calculus, and probability to explain what is happening inside a model. When a training run fails, you should be able to look at the results, identify what could be going wrong, and form a reasonable hypothesis about where to investigate next.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is a deep learning engineer different from a machine learning engineer?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is heavy overlap, and Indian job boards often use these titles interchangeably. A deep learning role usually goes deeper into neural networks and model training, while ML roles can cover a broader range of systems. Read the responsibilities, not just the title.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Should I learn PyTorch or TensorFlow in 2026?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start with PyTorch if you\u2019re learning deep learning today. You should also be able to read TensorFlow and Keras code, especially if you\u2019re targeting enterprise roles where existing production systems may use them. This gives you a practical foundation in PyTorch while keeping you prepared to work with other frameworks when the role requires it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can I learn deep learning without a GPU?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Colab and Kaggle can handle many learning projects and smaller experiments. Work within their limits by checkpointing regularly, using mixed precision and gradient accumulation, and starting with pretrained models, which are far cheaper to run than training large models from scratch.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why is my deep learning model not converging?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Try to overfit 10 examples first. If the model cannot do that, look for a problem in the data, pipeline, labels, or loss. If it can, check the learning rate and optimisation setup. Leave architecture changes until you have ruled those out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do I need a master's or a PhD for deep learning jobs?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not usually. A PhD is often required for research-scientist roles focused on developing new methods. Most applied deep learning roles do not require one. Employers generally care more about implementation, experimentation, debugging, and evidence of practical work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How long does it take to become job-ready in deep learning?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is no reliable number of weeks or months. It depends on your existing foundation, the complexity of the projects you build, and how much real debugging and experimentation you do. Focus less on hours logged and more on whether you can work independently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Are deep learning engineers still in demand now that everyone uses foundation models?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, but much of the work has shifted toward adapting, evaluating, deploying, and optimising pretrained models. That makes fundamentals more valuable, not less. You still need to understand learning rates, gradients, overfitting, and evaluation when a fine-tuned model behaves badly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What projects prove deep learning skills to a recruiter?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pick projects where you had to make technical decisions yourself. Reproduce a research paper and investigate why your results differ from the published ones. Deploy a model and measure its latency, memory usage, and prediction quality. Reimplement a model from scratch and explain the choices you made when the paper left implementation details open.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These projects give you specific things to discuss in an interview: how you evaluated the model, what failed during training, which changes improved the results, and what trade-offs you had to make. A tutorial project or certificate can still sit on your resume, but it should not be the only evidence of your deep learning skills.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can finish three deep learning courses, build a CNN, and still find yourself stuck when the same model stops working on your own dataset. Maybe changing a few parameters does nothing, the validation loss starts behaving strangely, or the model simply refuses to learn. This is where you start moving from following a training [&hellip;]<\/p>\n","protected":false},"author":242,"featured_media":14484,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[339,316],"tags":[625],"class_list":["post-14476","post","type-post","status-publish","format-standard","has-post-thumbnail","category-deep-learning","category-artificial-intelligence","tag-deep-learning-skills"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts\/14476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/users\/242"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/comments?post=14476"}],"version-history":[{"count":2,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts\/14476\/revisions"}],"predecessor-version":[{"id":14494,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts\/14476\/revisions\/14494"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/media\/14484"}],"wp:attachment":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/media?parent=14476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/categories?post=14476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/tags?post=14476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}