{"templateName":"base-page-template54","cssClassNames":"page basicpage summit-page","canonicalLink":"https://www.snowflake.com/en/artificial-intelligence/computer-vision/image-classification/","robotsTags":[],"allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"description":"Image classification maps an image to one or more labels using CNNs and vision transformers. Learn how the models work, how to evaluate them and run them at scale.","language":"en","title":"What Is Image Classification? Methods & Models | Snowflake","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,":mappedPath":"/en/artificial-intelligence/computer-vision/image-classification/",":type":"snowflake-site/components/structure/page",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"markup_editor_928258845":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","markup_editor_597730182":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","experiencefragment":"aem-GridColumn aem-GridColumn--default--12","modal_container":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,":items":{"experiencefragment-banner":{"id":"experiencefragment-78ad27ab51","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/master.xfmodel.json"},"experiencefragment-header":{"id":"experiencefragment-5265f41be3","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master.xfmodel.json","languageNavPath":"/content/snowflake-site/global/en/artificial-intelligence/computer-vision/image-classification.languagenav.json"},"responsivegrid":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"flexible_column_cont_939100716":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont_1158003461":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont_663228916":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont_912630531":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont_1398138236":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont_1786318617":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont_1467213961":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont_1377146023":"aem-GridColumn aem-GridColumn--default--12","_":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,":items":{"flexible_column_cont":{"id":"flexible-column-container-9a44dbd36f","propertiesId":"hub-hero-breadcrumbs","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"small","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"page-section","backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-d1034a16c8",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"breadcrumb":{"id":"breadcrumb-31ee2d0714","items":[{"id":"breadcrumb-31ee2d0714-item-4b75ed29e6","link":{"valid":true,"url":"/en/artificial-intelligence/"},"active":false,"current":false,"title":"Artificial Intelligence",":type":"snowflake-site/components/structure/page","appliedCssClassNames":"summit-page"},{"id":"breadcrumb-31ee2d0714-item-4860d0b874","link":{"valid":true,"url":"/en/artificial-intelligence/computer-vision/"},"active":false,"current":false,"title":"Computer Vision",":type":"snowflake-site/components/structure/fundamentals-page","appliedCssClassNames":"summit-page"},{"id":"breadcrumb-31ee2d0714-item-2f6d1172c4","link":{"valid":true,"url":"/en/artificial-intelligence/computer-vision/image-classification/"},"active":true,"current":true,"title":"Image Classification",":type":"snowflake-site/components/structure/page","appliedCssClassNames":"summit-page"}],":type":"snowflake-site/components/breadcrumb"}},":itemsOrder":["breadcrumb"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-gray-10-bg"},"flexible_column_cont_939100716":{"id":"flexible-column-container-4e13690e8b","propertiesId":"hub-hero","type":"2-column-even","alignColumns":"center","containerMaxWidth":"extra-large","topPadding":"extra-small","bottomPadding":"extra-small","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"page-section","backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-0123409084",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"title_v2":{"id":"title-v2-0bee89633a","additionalClasses":"hub-hero__headline","type":"heading1","lines":["Image Classification: How It Works, Models and Production Considerations"],":type":"snowflake-site/components/title-v2","appliedCssClassNames":"left-alignment"},"text":{"id":"text-ce06269792","additionalClasses":"hub-hero__subheadline","text":"\u003Cp\u003EImage classification powers applications from defect detection to product tagging. Learn how CNNs and vision transformers process images, how teams evaluate their performance and what it takes to run reliable classification workflows in production.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-05"},"container":{"additionalClasses":"hub-hero__authors","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"content_chip_copy":"aem-GridColumn aem-GridColumn--default--12","content_chip":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-69bbd5fd1f",":type":"snowflake-site/components/container",":items":{"content_chip":{"id":"content-chip-16567b7709","cta":{"id":"cta","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/Laurie-Macpherson/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Read bio"},"image":{"id":"image","height":"800","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--a7e9fdff-6f08-4edc-9cd1-e213bb234aaa/laurie-macpherson.jpg?quality=85&preferwebp=true","alt":"Laurie MacPherson","lazyEnabled":true,"isLcpImage":true,"width":"800",":type":"snowflake-site/components/image"},"headline":{"id":"title","type":"heading5","lines":["Laurie MacPherson","Technical Writer, Snowflake"],":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/content-chip"},"content_chip_copy":{"id":"content-chip-fbb2683f21","cta":{"id":"cta","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/david-gaule/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Read bio"},"image":{"id":"image","height":"512","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--fd9454ea-3b59-4d19-95be-534774cbd226/david.jpg?quality=85&preferwebp=true","alt":"David Gaule","lazyEnabled":true,"isLcpImage":false,"width":"512",":type":"snowflake-site/components/image"},"headline":{"id":"title","type":"heading5","lines":["David Gaule","Technical Editor, Snowflake"],":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/content-chip"}},":itemsOrder":["content_chip","content_chip_copy"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"}},":itemsOrder":["title_v2","text","container"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small"},"flexible_column_content_container_2":{"additionalClasses":"hub-hero__video-column","layout":"SIMPLE","id":"container-9b0bb3018f",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"youtube":{"id":"embed-874c806177","youtubeVideoId":"-HWNc-Hd90U","layout":"responsive","youtubeAspectRatio":"56.25","youtubeAutoPlay":false,"youtubeLoop":false,"youtubeMute":false,"youtubePlaysInline":false,"youtubeRel":false,"embeddableResourceType":"core/wcm/components/embed/v1/embed/embeddable/youtube","type":"EMBEDDABLE",":type":"snowflake-site/components/youtube"}},":itemsOrder":["youtube"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-gray-10-bg"},"flexible_column_cont_1398138236":{"id":"flexible-column-container-ca47e3ab44","propertiesId":"hub-hero-related-topics","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"extra-small","bottomPadding":"medium","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"page-section","backgroundImageOption":"none","flexible_column_content_container_1":{"additionalClasses":"related-topics-outer-container border-top","layout":"SIMPLE","id":"container-960f06b198",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"text_894059747":{"id":"text-470b5e9b16","additionalClasses":"seo-hub-hero__related-topic-label","text":"\u003Cp\u003EArtificial Intelligence Topics:\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-05"},"text":{"id":"text-2604059dbc","additionalClasses":"related-topics ","text":"\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/agents/\"\u003EAI Agents\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/ai-governance/\"\u003EAI Governance\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/business/\"\u003EAI in Business\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/industries/\"\u003EAI in Industries\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/observability/\"\u003EAI Observability\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/transformation/\"\u003EAI Transformation\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/computer-vision/\"\u003EComputer Vision\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/generative-ai/\"\u003EGenerative AI\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/machine-learning/\"\u003EMachine Learning\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small"}},":itemsOrder":["text_894059747","text"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-gray-10-bg"},"_":{":type":"wcm/foundation/components/responsivegrid/new"},"flexible_column_cont_663228916":{"id":"flexible-column-container-f53015892f","propertiesId":"hub-body","type":"2-column-60-40","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"medium","bottomPadding":"medium","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"page-section","backgroundImageOption":"none","flexible_column_content_container_1":{"additionalClasses":"longform-content","layout":"SIMPLE","id":"hub-body-content",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"callout__0":{"id":"text-0801ee9b03","additionalClasses":"callout callout--general","text":"\u003Cp\u003E\u003Cstrong\u003EIMAGE CLASSIFICATION DEFINED\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EImage classification is a computer vision task in which a model maps an input image to one or more labels from a predefined set of classes, typically by estimating a score or probability for each class.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-05"},"text__0":{"id":"text-37d598e932","text":"\u003Cp\u003ETwo image classifiers with similar accuracy can behave very differently in production. Why?\u003C/p\u003E\n\u003Cp\u003EOverall accuracy compresses a great deal of behavior into one number. Two models can score similarly while differing in rare-class recall, calibration, robustness to changed image conditions, inference latency and GPU cost. Those differences emerge from the architecture, training data, \u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/agents/agent-evaluation/\"\u003Eevaluation\u003C/a\u003E design and serving environment around the classifier.\u003C/p\u003E\n\u003Cp\u003EBuilding a production classifier requires teams to account for all of those trade-offs across the full workflow: how the model learns visual features, which architecture fits the task, where performance can degrade and how training and inference will run at the required scale.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"title_what-is-image-classification":{"id":"title-v2-3db0fb4b20","additionalClasses":"anchor-title anchor-title--what-is-image-classification","type":"heading2","lines":["What is image classification?"],":type":"snowflake-site/components/title-v2"},"text_what-is-image-classification_0":{"id":"text-5c3ba195fc","text":"\u003Cp\u003EImage classification is a \u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/computer-vision/\"\u003Ecomputer vision\u003C/a\u003E process that uses a computational model to estimate which category or combination of categories best describes the visual content of an input image. Organizations use it for tasks such as \u003Ca href=\"https://www.snowflake.com/en/developers/solutions-center/medical-images-classification-using-pytorch-in-snowflake/\"\u003Eidentifying signs of disease in a medical scan\u003C/a\u003E, flagging images that may violate a content policy, identifying crop diseases from photographs of plant leaves, and assigning product categories or attributes to retail images.\u003C/p\u003E\n\u003Cp\u003EThe output depends on the classification setup:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EBinary classification\u003C/strong\u003E selects between two classes, such as defective or acceptable.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EMulticlass classification\u003C/strong\u003E assigns one label from several mutually exclusive options.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EMultilabel classification\u003C/strong\u003E assigns several labels to the same image.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EHierarchical classification\u003C/strong\u003E organizes predictions at hierarchical levels.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003EFor example, a quality-control system might classify a part as either defective or acceptable in a binary task. A multiclass system might assign the part one defect type, such as a crack, dent or discoloration. A multilabel system could assign both “crack” and “discoloration” when the same part contains more than one defect. A hierarchical system might first classify the issue as a surface defect or a structural defect, then assign a more specific label such as discoloration, dent or crack.\u003C/p\u003E\n\u003Cp\u003EMost modern image classifiers use deep learning to learn visual features from labeled data. During supervised learning, each training image is paired with its expected class label, and the model adjusts its parameters whenever its prediction differs from the correct answer.\u003C/p\u003E\n\u003Cp\u003E\u003Cem\u003ELearn how document AI company LandingAI helps companies use images, documents and video to support visual AI applications in manufacturing, healthcare and other industries\u003C/em\u003E\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"yt_what-is-image-classification_0":{"id":"embed-22b412256c","youtubeVideoId":"MSX_gbIZfmA","layout":"responsive","youtubeAspectRatio":"56.25","youtubeAutoPlay":false,"youtubeLoop":false,"youtubeMute":false,"youtubePlaysInline":false,"youtubeRel":false,"embeddableResourceType":"core/wcm/components/embed/v1/embed/embeddable/youtube","type":"EMBEDDABLE",":type":"snowflake-site/components/youtube"},"title_how-image-classification-works":{"id":"title-v2-4670b55a0c","additionalClasses":"anchor-title anchor-title--how-image-classification-works","type":"heading2","lines":["How image classification works"],":type":"snowflake-site/components/title-v2"},"text_how-image-classification-works_0":{"id":"text-a1e6c33cd2","text":"\u003Cp\u003EAn image classifier converts pixel data into an internal representation, then maps that representation to one or more class scores. The way it extracts visual features depends on the model architecture.\u003C/p\u003E\n\u003Cp\u003ETwo architecture families dominate modern image classification:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/artificial-intelligence/machine-learning/neural-network/convolutional-neural-network/\"\u003E\u003Cstrong\u003EConvolutional neural networks\u003C/strong\u003E\u003C/a\u003E (CNNs) learn spatial patterns by applying filters across local image regions.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EVision transformers\u003C/strong\u003E divide an image into patches and use attention to model relationships among them.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003ETheir feature-extraction mechanisms differ, but both ultimately produce a representation that a classification head maps to the target classes. Both can also be trained through supervised learning, adapted through transfer learning and evaluated against the same production requirements.\u003C/p\u003E\n\u003Ch3\u003EFeature extraction with convolutional neural networks\u003C/h3\u003E\n\u003Cp\u003EA CNN applies learned filters, also called kernels, across small regions of an image. Each filter responds to a particular visual pattern and produces a feature map showing where that pattern appears.\u003C/p\u003E\n\u003Cp\u003EEarlier CNN layers often respond to local patterns such as edges, color transitions and textures. Deeper layers combine information across larger parts of the image and can capture shapes, object parts and class-related patterns. These features are distributed across the network rather than forming a strict, easily interpreted hierarchy.\u003C/p\u003E\n\u003Cp\u003EAs the representation moves through the network, many CNNs reduce its spatial dimensions. Pooling layers can perform this downsampling by selecting the maximum value or calculating an average within a local region, while newer architectures often use \u003Ca href=\"https://deeplearningnotes.com/cnns/basics/down-sampling/strided-convolution\" target=\"_blank\"\u003Estrided convolution\u003C/a\u003E. Reducing resolution lowers the computational load in later layers and increases the portion of the image represented by each feature.\u003C/p\u003E\n\u003Cp\u003EThe downsampling pattern has to fit the task. If the classes differ through small defects, markings or anatomical details, reducing the image too aggressively can remove information the classifier needs. For example, a classifier inspecting circuit boards may need to detect a hairline crack that covers only a few pixels. If the network reduces the image resolution too early, that crack may disappear from the representation even though the rest of the board remains visible.\u003C/p\u003E\n\u003Ch3\u003EFeature extraction with vision transformers\u003C/h3\u003E\n\u003Cp\u003EThe \u003Ca href=\"https://github.com/google-research/vision_transformer\" target=\"_blank\"\u003Eoriginal Vision Transformer\u003C/a\u003E (ViT) divides an image into nonoverlapping patches, converts them into embeddings and uses attention to model the relationships among them. Newer transformer architectures may also use local attention, hierarchical representations or convolutional components.\u003C/p\u003E\n\u003Cp\u003EAttention allows the model to weigh information from different parts of the image when constructing its representation. A patch containing one feature can therefore be interpreted in relation to patches elsewhere in the frame, without requiring the information to pass through a long sequence of local convolutional operations. For example, when classifying a bird, the model can relate a patch containing the beak to patches containing the wings, body and surrounding habitat. No single patch will identify the species on its own, but the relationships among them can support the prediction.\u003C/p\u003E\n\u003Cp\u003EVision transformers often benefit from large-scale pretraining because they encode fewer assumptions about local image structure than CNNs. With sufficient pretraining, however, they can adapt effectively to a broad range of classification tasks. Hybrid architectures also exist, combining convolutional layers with transformer-based attention.\u003C/p\u003E\n\u003Ch3\u003EMapping the representation to class scores\u003C/h3\u003E\n\u003Cp\u003EAfter feature extraction, a classification head maps the model’s internal representation to the target classes. In a CNN, the head may use global average pooling followed by one or more fully connected layers. A vision transformer may use a dedicated classification token or a pooled representation of the patch embeddings.\u003C/p\u003E\n\u003Cp\u003EFor multiclass classification, the model commonly uses \u003Ca href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.softmax.html\" target=\"_blank\"\u003Esoftmax\u003C/a\u003E to turn its output scores into values that sum to one. These values are often treated as probabilities, but they may not reflect the model’s true level of confidence unless the model has been calibrated.\u003C/p\u003E\n\u003Cp\u003EMultilabel classification uses independent outputs because several classes can apply to the same image. A \u003Ca href=\"https://machinelearningmastery.com/a-gentle-introduction-to-sigmoid-function/\" target=\"_blank\"\u003Esigmoid function\u003C/a\u003E commonly converts each score into a separate value for each label. The system then needs a threshold for deciding when each label applies. Teams can use one threshold across all classes or tune separate thresholds by class based on validation results and the cost of different errors.\u003C/p\u003E\n\u003Ch3\u003ETraining the classifier\u003C/h3\u003E\n\u003Cp\u003EDuring supervised training, the model receives batches of images paired with their expected labels. A forward pass produces class scores, and a loss function measures the difference between those predictions and the correct answers. Cross-entropy loss is commonly used for multiclass classification, while multilabel tasks typically use a binary cross-entropy variant.\u003C/p\u003E\n\u003Cp\u003EBackpropagation calculates how the loss changes with respect to each trainable parameter. The optimizer uses those gradients to update the model’s weights, after which the model processes another batch. Repeating this sequence allows the feature extractor and classification head to learn together.\u003C/p\u003E\n\u003Cp\u003EA validation set contains images that don’t contribute to weight updates. Comparing training and validation results helps teams identify overfitting, tune hyperparameters and select a model checkpoint.\u003C/p\u003E\n\u003Cp\u003EThe test set should remain separate until the team has selected the architecture, hyperparameters, thresholds and checkpoint. Repeatedly using test results to make those decisions effectively turns the test set into another validation set.\u003C/p\u003E\n\u003Cp\u003EThe same basic training loop applies to CNNs and vision transformers, although the two architectures can differ in data requirements, memory use and optimization behavior.\u003C/p\u003E\n\u003Ch3\u003EAdapting a pretrained model\u003C/h3\u003E\n\u003Cp\u003EMost production projects begin with a pretrained model rather than randomly initialized weights. Through transfer learning, teams take a CNN or vision transformer trained on a large image collection and adapt it to a narrower set of domain-specific classes.\u003C/p\u003E\n\u003Cp\u003EThe pretrained model already contains broadly useful visual representations. Fine-tuning updates some or all of its weights using the target images, while the classification head is configured for the new label set. For example, a model pretrained on a broad image collection may respond to edges, textures and common shapes. A manufacturer can fine-tune those representations using a smaller collection of labeled product images rather than teaching the model every visual pattern from the beginning.\u003C/p\u003E\n\u003Cp\u003EWhen the pretrained model’s visual representations transfer well to the target domain, fine-tuning usually requires less labeled data and compute than training a model from randomly initialized weights.\u003C/p\u003E\n\u003Ch3\u003EEvaluating the model\u003C/h3\u003E\n\u003Cp\u003EFor binary and multiclass tasks, accuracy usually measures how often the model selects the correct class. Multilabel tasks are more complicated because each image can have several correct labels. A prediction might get some labels right and others wrong, so teams typically evaluate precision, recall and F1 score for each label or across the full data set.\u003C/p\u003E\n\u003Cp\u003EThe evaluation set should reflect the images, class frequencies and operating conditions expected in production. Depending on the workload, teams may also measure per-class recall, calibration, robustness, inference latency, throughput and GPU or memory use.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"callout_how-image-classification-works_0":{"id":"text-aed741b2ba","additionalClasses":"callout callout--tip","text":"\u003Cp\u003E\u003Cstrong\u003EQUICK TIP\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EReview metrics by class before comparing models by overall accuracy. A small improvement in total accuracy can hide a large decline in recall for a rare or high-consequence class.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-05"},"title_image-classification-approaches-and-model-architectures":{"id":"title-v2-7b5e620ddc","additionalClasses":"anchor-title anchor-title--image-classification-approaches-and-model-architectures","type":"heading2","lines":["Image-classification approaches and model architectures"],":type":"snowflake-site/components/title-v2"},"text_image-classification-approaches-and-model-architectures_0":{"id":"text-2b3b334ad0","text":"\u003Cp\u003EAfter defining the classification task, teams must decide how the model will learn and which specific architecture fits the workload. Those choices affect the amount of labeled data required, the compute used during training and inference, and the level of control teams have over the classifier.\u003C/p\u003E\n\u003Ch3\u003ELearning from labeled and unlabeled images\u003C/h3\u003E\n\u003Cp\u003EImage classifiers can learn through several setups:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003ESupervised learning\u003C/strong\u003E trains directly on image-label pairs. Its objective aligns closely with the eventual task, although assembling accurate labels can require considerable time and domain expertise.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EUnsupervised learning\u003C/strong\u003E works without predefined class labels. Clustering can group images based on similarities in their representations, helping teams explore a collection, find recurring patterns or organize data before annotation. Those groups may not match the categories the final application needs, however.\u003C/li\u003E\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/fundamentals/self-supervised-learning/\"\u003E\u003Cstrong\u003ESelf-supervised learning\u003C/strong\u003E\u003C/a\u003E derives a training signal from the images themselves. Depending on the method, a model might learn to match two augmented views of the same image, predict missing image regions or associate images with accompanying text. Teams can later fine-tune the resulting representations with a smaller labeled data set.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EZero-shot classification\u003C/strong\u003E uses a pretrained vision-language or multimodal model to assign natural-language classes without task-specific training. It’s useful for exploration and rapidly changing taxonomies, but may be less consistent than a domain-specific classifier when categories depend on subtle visual differences or specialized terminology.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch3\u003ECommon CNN architectures\u003C/h3\u003E\n\u003Cp\u003ECNN architectures use the convolutional feature-extraction process described earlier, but their designs emphasize different trade-offs:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EResNet\u003C/strong\u003E uses residual connections that allow information and gradients to bypass one or more layers. These shortcut paths make very deep CNNs easier to train and reduce the degradation problems seen in earlier deep networks.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EEfficientNet\u003C/strong\u003E scales network depth, width and input resolution together through a compound scaling method. The design seeks a more balanced use of compute than increasing only one dimension of the network.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EMobileNet\u003C/strong\u003E uses lightweight convolution operations designed for environments with constrained memory and processing capacity. It’s commonly considered for mobile, embedded and edge inference.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch3\u003ECommon vision transformer architectures\u003C/h3\u003E\n\u003Cp\u003EThe original ViT applies a standard transformer encoder to a sequence of image patches. Its larger variants can support high-capacity classification workloads, particularly when substantial pretrained weights and centralized compute are available.\u003C/p\u003E\n\u003Cp\u003EOther transformer designs modify how patches are created or how attention is calculated. Hierarchical models such as Swin Transformer progressively combine nearby patches and restrict some attention operations to local windows, improving efficiency while preserving the transformer architecture’s ability to model broader relationships.\u003C/p\u003E\n\u003Cp\u003EArchitecture selection depends on the task’s visual complexity, available training data, latency target, deployment hardware and accuracy requirements. A compact MobileNet may fit an inspection device that must return predictions locally, while a larger ResNet or vision transformer may suit centralized processing where additional compute produces a meaningful performance gain.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"card_v2_image-classification-approaches-and-model-architectures_0":{"id":"card-v2-5ab4e9adf7","additionalClasses":"seo-customer","configurationStatus":{"configured":true,"message":""},":type":"snowflake-site/components/card-v2","title":{"id":"title","type":"heading4","lines":["Customer story: Hot Topic"],":type":"snowflake-site/components/title-v2"},"button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/customers/all-customers/case-study/hot-topic/"},"linkTargetContentType":"DOCUMENT",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Read the full case study"},"image":{"id":"image","height":"351","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--89ee497a-e169-49c3-aa2a-1cd0bff98555/hot-topic%25403x.png?quality=85&preferwebp=true","alt":"Hot Topic Logo","lazyEnabled":true,"isLcpImage":false,"width":"624",":type":"snowflake-site/components/image"},"type":"content-card","text":{"id":"text","text":"\u003Cp\u003EHot Topic uses Snowflake’s AI Data Cloud and Robling’s retail analytics platform to unify product and customer data, improve customer 360 and create a more connected omnichannel shopping experience across ecommerce and 700+ stores. With Snowflake, Hot Topic empowered 1,000+ employees with data, accelerated queries by 10x, moved SKU-level reporting from three-day SLAs to self-service and saved more than $200,000 in one weekend by optimizing fulfillment decisions. [Results current as of Oct. 2024.]\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text"},"layoutStyle":"horizontal"},"title_challenges-and-limitations-of-image-classification":{"id":"title-v2-1536db33c5","additionalClasses":"anchor-title anchor-title--challenges-and-limitations-of-image-classification","type":"heading2","lines":["Challenges and limitations of image classification"],":type":"snowflake-site/components/title-v2"},"text_challenges-and-limitations-of-image-classification_0":{"id":"text-2e088673f7","text":"\u003Cp\u003EA production classifier encounters variation that a static benchmark can’t fully reproduce. Lighting changes, new equipment, different image compression or a shift in the underlying population can alter the input distribution, sometimes without changing the business definition of the task.\u003C/p\u003E\n\u003Ch3\u003ETraining data quality and coverage\u003C/h3\u003E\n\u003Cp\u003ETraining a deep classifier from random initialization typically requires a large volume of accurately labeled examples. Transfer learning and large-scale pretraining can reduce that requirement, but teams still need representative target-domain data for fine-tuning and evaluation. Labeling can be particularly demanding when annotations require a radiologist, engineer or another subject-matter expert.\u003C/p\u003E\n\u003Cp\u003EClass imbalance creates another problem. When a large percentage of training images belong to one category, a model can achieve high overall accuracy while performing poorly on the rarer class. Teams may address the imbalance through targeted data collection, sampling strategies, class-weighted loss functions or augmentation, depending on the source and severity of the gap.\u003C/p\u003E\n\u003Cp\u003EAdditionally, incorrect labels introduce conflicting training signals. An isolated error may have little effect in a large data set, while systematic ambiguity — two reviewers applying a category differently, for example — can prevent the model from learning a stable decision boundary. A documented annotation policy and reviewer agreement checks help expose those inconsistencies before training.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"callout_challenges-and-limitations-of-image-classification_0":{"id":"text-1de5592378","additionalClasses":"callout callout--warning","text":"\u003Cp\u003E\u003Cstrong\u003ECOMMON PITFALL\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EIt’s a mistake to allow near-duplicate images to appear in both training and evaluation sets. Frames from the same video, alternate crops of one photograph or repeated images of the same item can make test performance look better than the model’s ability to generalize.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-05"},"text_challenges-and-limitations-of-image-classification_1":{"id":"text-d97602ef5a","text":"\u003Ch3\u003EOverfitting and generalization\u003C/h3\u003E\n\u003Cp\u003EA high-capacity model can memorize details from its training images, including patterns that don’t hold outside that collection. Training accuracy might continue to rise, but validation performance will stall or decline.\u003C/p\u003E\n\u003Cp\u003EImage augmentation exposes the classifier to altered versions of the training images through operations such as cropping, rotation, color adjustment or noise injection. Appropriate transformations depend on the domain: A horizontal flip may preserve the label for a product photograph yet change the meaning of a medical or scientific image.\u003C/p\u003E\n\u003Cp\u003ERegularization, weight decay, dropout, early stopping and careful validation can also reduce overfitting. When the available data remains limited, transfer learning narrows the amount of task-specific information the model must learn from scratch.\u003C/p\u003E\n\u003Ch3\u003ECompute requirements\u003C/h3\u003E\n\u003Cp\u003ETraining deep CNNs and vision transformers involves repeated matrix operations across large image tensors. Higher image resolutions, larger batches and deeper networks increase GPU memory use and training time, while hyperparameter searches multiply the number of runs.\u003C/p\u003E\n\u003Cp\u003EInference introduces another scaling consideration. A production workload may need to handle thousands or millions of images within a defined time window. Meeting that throughput can require batching, parallel workers, GPU acceleration or a dedicated serving layer.\u003C/p\u003E\n\u003Cp\u003EFor latency-sensitive applications, the model’s forward pass is only part of the response time. The system must also retrieve and decode the image, apply the required resizing and normalization, transfer the resulting tensor to the model and return or store the prediction. A fast model can miss its latency target if the surrounding input pipeline can’t keep pace.\u003C/p\u003E\n\u003Ch3\u003EBias, domain shift and interpretability\u003C/h3\u003E\n\u003Cp\u003EImage classifiers can produce systematically different error rates across classes, demographic groups, devices or operating environments. Those disparities often reflect the training data: Some groups or conditions might be underrepresented, labels might contain systematic inconsistencies, or acquisition methods might encode patterns that correlate with the target class without generalizing beyond the development set.\u003C/p\u003E\n\u003Cp\u003EDomain shift is another issue that can affect accuracy. It occurs when the distribution of production images differs from the distributions used for training and validation. A manufacturing classifier trained at one facility may encounter different lighting, camera geometry or materials at another; a medical model may receive scans from devices, institutions or patient populations that were sparsely represented during development. The target classes remain the same, but the statistical properties of the inputs change.\u003C/p\u003E\n\u003Cp\u003ERobustness tests based on synthetic corruptions can’t fully capture that variation. Validation needs to include images drawn from the devices, locations, populations and operating conditions expected after deployment.\u003C/p\u003E\n\u003Cp\u003EInterpretability methods address a different question: which image regions or learned features influenced a particular prediction. Techniques such as saliency maps and class activation maps can help teams investigate spurious correlations or unexpected model behavior, but they don’t establish that the model is unbiased or robust.\u003C/p\u003E\n\u003Cp\u003EFor this reason, higher-consequence workflows typically combine interpretability with subgroup analysis, per-class metrics, domain-specific test sets, confidence thresholds and monitoring for changes in input and outcome distributions.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"title_how-to-build-image-classification-on-snowflake":{"id":"title-v2-406ae72610","additionalClasses":"anchor-title anchor-title--how-to-build-image-classification-on-snowflake","type":"heading2","lines":["How to build image classification on Snowflake"],":type":"snowflake-site/components/title-v2"},"text_how-to-build-image-classification-on-snowflake_0":{"id":"text-f578cdafe5","text":"\u003Cp\u003ESnowflake supports two approaches to image classification: training a custom CNN or vision transformer with labeled data, or using \u003Ca href=\"https://www.snowflake.com/en/developers/solutions-center/using-cortex-aisql-with-multimodal-data/\"\u003ECortex AISQL\u003C/a\u003E for zero-shot classification with a multimodal model. The right choice depends on the available labels, accuracy requirements and need for control.\u003C/p\u003E\n\u003Ch3\u003ETrain a custom classifier\u003C/h3\u003E\n\u003Cp\u003E\u003Ca href=\"https://www.snowflake.com/en/product/features/notebooks/\"\u003ESnowflake Notebooks\u003C/a\u003E on Container Runtime provide CPU or GPU environments for building image-classification workflows with frameworks such as PyTorch and TensorFlow. Teams can access image files and metadata in Snowflake, fine-tune a pretrained model, evaluate it and register the selected model in the Snowflake Model Registry.\u003C/p\u003E\n\u003Cp\u003EA typical workflow is to:\u003C/p\u003E\n\u003Col\u003E\n\u003Cli\u003ELoad and preprocess labeled images.\u003C/li\u003E\n\u003Cli\u003ESplit the data into training, validation and test sets.\u003C/li\u003E\n\u003Cli\u003EFine-tune a pretrained CNN or vision transformer.\u003C/li\u003E\n\u003Cli\u003ECompare models using overall and per-class metrics.\u003C/li\u003E\n\u003Cli\u003ERegister and deploy the selected model for batch or real-time inference.\u003C/li\u003E\n\u003C/ol\u003E\n\u003Cp\u003EContainer Runtime also supports distributed data loading and training for larger workloads. Performance depends on the model, data volume and compute configuration, and teams should confirm the availability of preview capabilities before designing around them.\u003C/p\u003E\n\u003Cp\u003EThis approach is best suited to stable classes, representative labeled data and applications that require control over architecture, thresholds and retraining.\u003C/p\u003E\n\u003Ch3\u003EClassify images with Cortex AISQL\u003C/h3\u003E\n\u003Cp\u003EWhen labeled data is unavailable, Cortex AISQL can use multimodal models to classify images stored in Snowflake. With \u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/complete-structured-outputs\"\u003EAI_COMPLETE\u003C/a\u003E, teams can define a set of categories, describe the classification criteria and request a label or structured response for each image.\u003C/p\u003E\n\u003Cp\u003EThis approach is useful for exploration, candidate-label generation and frequently changing taxonomies. Because the model isn’t fine-tuned on the organization’s examples, teams should validate its output on representative images before using it in consequential workflows.\u003C/p\u003E\n\u003Ch3\u003EChoose the right approach\u003C/h3\u003E\n\u003Cp\u003EUse a custom classifier when classes are stable, labeled data is available and consistent performance is required. Use zero-shot classification when the task is exploratory, labels are limited or categories change frequently. Both approaches can keep image references, metadata, labels, evaluation results and model outputs within Snowflake’s governed environment.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"title_carrying-model-performance-into-production":{"id":"title-v2-fc5659fd57","additionalClasses":"anchor-title anchor-title--carrying-model-performance-into-production","type":"heading2","lines":["Carrying model performance into production"],":type":"snowflake-site/components/title-v2"},"text_carrying-model-performance-into-production_0":{"id":"text-a2c9a9ab35","text":"\u003Cp\u003EAn image classifier’s production behavior reflects the full workflow used to create and run it. The training images and labels shape what the model learns; validation data and class-level metrics reveal where that learning holds; and the inference pipeline determines whether predictions arrive at the required volume, latency and cost. Keeping those parts connected makes the system easier to evaluate, reproduce and update as the image distribution changes.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"},"callout_carrying-model-performance-into-production_0":{"id":"text-12d194329d","additionalClasses":"callout callout--general","text":"\u003Cp\u003E\u003Cstrong\u003EKEY TAKEAWAY\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EA successful image-classification system depends on more than choosing a high-performing model. Teams also need representative data, task-appropriate evaluation, repeatable preprocessing and an inference workflow that meets the application’s latency, scale and governance requirements.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-05"}},":itemsOrder":["callout__0","text__0","title_what-is-image-classification","text_what-is-image-classification_0","yt_what-is-image-classification_0","title_how-image-classification-works","text_how-image-classification-works_0","callout_how-image-classification-works_0","title_image-classification-approaches-and-model-architectures","text_image-classification-approaches-and-model-architectures_0","card_v2_image-classification-approaches-and-model-architectures_0","title_challenges-and-limitations-of-image-classification","text_challenges-and-limitations-of-image-classification_0","callout_challenges-and-limitations-of-image-classification_0","text_challenges-and-limitations-of-image-classification_1","title_how-to-build-image-classification-on-snowflake","text_how-to-build-image-classification-on-snowflake_0","title_carrying-model-performance-into-production","text_carrying-model-performance-into-production_0","callout_carrying-model-performance-into-production_0"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-medium"},"flexible_column_content_container_2":{"additionalClasses":"hub-sidebar","layout":"SIMPLE","id":"hub-body-aside",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container":{"additionalClasses":"sticky-sidebar","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"text_943981956_copy_":"aem-GridColumn aem-GridColumn--default--12","text_copy":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-2e271fcab2",":type":"snowflake-site/components/container",":items":{"text_943981956_copy_":{"id":"text-b659f499d0","additionalClasses":"eyebrow-text","text":"\u003Cp\u003EIn This Guide\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular"},"text_copy":{"id":"text-8bcfa6edc6","additionalClasses":"page-toc","text":"\u003Cul\u003E\u003Cli data-anchor=\"what-is-image-classification\"\u003EWhat is image classification?\u003C/li\u003E\u003Cli data-anchor=\"how-image-classification-works\"\u003EHow image classification works\u003C/li\u003E\u003Cli data-anchor=\"image-classification-approaches-and-model-architectures\"\u003EImage-classification approaches and model architectures\u003C/li\u003E\u003Cli data-anchor=\"challenges-and-limitations-of-image-classification\"\u003EChallenges and limitations of image classification\u003C/li\u003E\u003Cli data-anchor=\"how-to-build-image-classification-on-snowflake\"\u003EHow to build image classification on Snowflake\u003C/li\u003E\u003Cli data-anchor=\"carrying-model-performance-into-production\"\u003ECarrying model performance into production\u003C/li\u003E\u003C/ul\u003E","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-05"}},":itemsOrder":["text_943981956_copy_","text_copy"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-medium"}},":itemsOrder":["container"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false},"flexible_column_cont_1786318617":{"id":"flexible-column-container-4b8d7f1192","propertiesId":"hub-faq","type":"2-column-40-60","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"large","bottomPadding":"large","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"hub-faq-intro",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"title_v2_copy":{"id":"title-v2-d47d9ebd00","additionalClasses":"hub-faq__headline","type":"heading2","lines":["Frequently Asked Questions"],":type":"snowflake-site/components/title-v2","appliedCssClassNames":"left-alignment"},"text_copy":{"id":"text-1f412bb015","additionalClasses":"hub-faq__subheadline","text":"\u003Cp\u003EYour common questions about image classification, answered by Snowflake experts.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"}},":itemsOrder":["title_v2_copy","text_copy"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small"},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"hub-faq-accordions",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"simple_snowflake_acc":{"id":"simple-snowflake-accordion-73f5ebaeb8","additionalClasses":"seo-hub__faqs","showDivider":false,"accordionItemsList":[{"title":"What is the difference between image classification and object detection?","richText":"\u003Cp\u003EImage classification assigns one or more labels to an entire image. Object detection identifies individual objects within an image and returns their locations, typically using bounding boxes. For example, classification might label an image “traffic,” while object detection could locate each car, bicycle and pedestrian in the scene.\u003C/p\u003E"},{"title":"How does an image-classification model recognize an image?","richText":"\u003Cp\u003EThe model converts the image’s pixel values into a learned representation and maps that representation to class scores. CNNs build the representation by combining local visual patterns through convolutional layers, while vision transformers divide the image into patches and use attention to model relationships among them.\u003C/p\u003E"},{"title":"Which model is best for image classification?","richText":"\u003Cp\u003EThere’s no single best architecture for every task. The right choice depends on the available training data, visual complexity, accuracy target, latency requirements and deployment hardware. A compact CNN may suit an edge device, while a larger CNN or vision transformer may provide better results for a centralized workload with more compute.\u003C/p\u003E"}],":type":"snowflake-site/components/simple-snowflake-accordion"}},":itemsOrder":["simple_snowflake_acc"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-gray-10-bg"},"flexible_column_cont_1467213961":{"id":"flexible-column-container-6b25c45ecb","propertiesId":"hub-explore-resources-header","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"large","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-c62092fb9a",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"title_v2":{"id":"title-v2-05bdcd74a0","additionalClasses":"hub-explore-resources-header__headline","type":"heading2","lines":["Explore AI Resources"],":type":"snowflake-site/components/title-v2","appliedCssClassNames":"left-alignment"}},":itemsOrder":["title_v2"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-gray-10-bg"},"flexible_column_cont_912630531":{"id":"flexible-column-container-41dab99e4b","propertiesId":"hub-explore-resources-grid","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"small","bottomPadding":"large","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"hub-explore-resources-grid-inner",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"resource_chip_1":{"id":"content-chip-d926248367","tagText":"GUIDE","tagColor":"#71D3DC","cta":{"id":"cta","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/developers/guides/image-recognition-snowpark-pytorch-streamlit-openai/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Read more"},"headline":{"id":"title-v2-b1d26f3263","type":"heading5","lines":["A Image Recognition App in Snowflake using Snowpark Python, PyTorch, Streamlit and OpenAI"],":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/content-chip","appliedCssClassNames":"snowflake-content-chip-white-bg"},"resource_chip_2":{"id":"content-chip-831e4ac575","tagText":"GUIDE","tagColor":"#71D3DC","cta":{"id":"cta","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/developers/guides/getting-started-with-running-distributed-pytorch-models-on-snowflake/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Read more"},"headline":{"id":"title-v2-17ed12675b","type":"heading5","lines":["Getting Started with Running Distributed PyTorch Models on Snowflake"],":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/content-chip","appliedCssClassNames":"snowflake-content-chip-white-bg"},"resource_chip_3":{"id":"content-chip-c3514d8317","tagText":"BLOG","tagColor":"#29B5E8","cta":{"id":"cta","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/blog/engineering/pytorch-conference-snowflake-accelerating-innovation/#snowflake-blog-author-chip-title"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Read more"},"headline":{"id":"title","type":"heading5","lines":["Accelerating PyTorch Innovation at Scale"],":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/content-chip","appliedCssClassNames":"snowflake-content-chip-white-bg"},"resource_chip_0":{"id":"content-chip-e6699b027f","tagText":"BLOG","tagColor":"#29B5E8","cta":{"id":"cta","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/blog/container-runtime-GPU-training-inference/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Read more"},"headline":{"id":"title","type":"heading5","lines":["Introducing Container Runtime: Enabling Flexible, Scalable Training and Inference on GPUs from a Snowflake Notebook"],":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/content-chip","appliedCssClassNames":"snowflake-content-chip-white-bg"}},":itemsOrder":["resource_chip_1","resource_chip_2","resource_chip_3","resource_chip_0"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-gray-10-bg"},"flexible_column_cont_1158003461":{"id":"flexible-column-container-f15b9bbdd6","propertiesId":"hub-explore-topics-header","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"large","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-0666a70461",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"title_v2_copy_copy":{"id":"title-v2-52525ef9c3","additionalClasses":"hub-explore-topics-header__headline","type":"heading2","lines":["Explore AI Topics"],":type":"snowflake-site/components/title-v2","appliedCssClassNames":"left-alignment"},"text_copy_copy":{"id":"text-a97c402819","additionalClasses":"hub-explore-topics-header__subheadline","text":"\u003Cp\u003EDeep dives into every aspect of artificial intelligence\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-color-text-05"}},":itemsOrder":["title_v2_copy_copy","text_copy_copy"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small"},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-white-bg"},"flexible_column_cont_1377146023":{"id":"flexible-column-container-249ab82a3d","propertiesId":"hub-explore-topics-grid","type":"3-column-even","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"small","bottomPadding":"large","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-6a4bbe96c1",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"topic_card_0":{"id":"card-v2-a9b4d0247d","configurationStatus":{"configured":true,"message":""},":type":"snowflake-site/components/card-v2","title":{"id":"title","type":"heading4","lines":["Machine Learning"],":type":"snowflake-site/components/title-v2"},"button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/artificial-intelligence/machine-learning/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Learn more"},"type":"content-card","text":{"id":"text","text":"\u003Cp\u003EDiscover how computers learn from data to make smarter predictions and decisions.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text"},"layoutStyle":"vertical"}},":itemsOrder":["topic_card_0"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-4c98177f63",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"topic_card_1":{"id":"card-v2-73b15ea303","configurationStatus":{"configured":true,"message":""},":type":"snowflake-site/components/card-v2","title":{"id":"title","type":"heading4","lines":["AI Agents"],":type":"snowflake-site/components/title-v2"},"button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/artificial-intelligence/agents/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Learn more"},"type":"content-card","text":{"id":"text","text":"\u003Cp\u003ELearn how intelligent systems can plan, act and complete tasks on your behalf.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text"},"layoutStyle":"vertical"}},":itemsOrder":["topic_card_1"]},"flexible_column_content_container_3":{"layout":"SIMPLE","id":"container-402a072329",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"topic_card_2":{"id":"card-v2-04695187d2","configurationStatus":{"configured":true,"message":""},":type":"snowflake-site/components/card-v2","title":{"id":"title","type":"heading4","lines":["AI Governance"],":type":"snowflake-site/components/title-v2"},"button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/artificial-intelligence/ai-governance/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Learn more"},"type":"content-card","text":{"id":"text","text":"\u003Cp\u003EExplore how organizations can build, deploy and manage AI responsibly, securely and transparently.\u003C/p\u003E","richText":true,":type":"snowflake-site/components/text"},"layoutStyle":"vertical"}},":itemsOrder":["topic_card_2"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":false,"appliedCssClassNames":"snowflake-flexible-column-container-white-bg"}},":itemsOrder":["flexible_column_cont","flexible_column_cont_939100716","flexible_column_cont_1398138236","_","flexible_column_cont_663228916","flexible_column_cont_1786318617","flexible_column_cont_1467213961","flexible_column_cont_912630531","flexible_column_cont_1158003461","flexible_column_cont_1377146023"],":type":"wcm/foundation/components/responsivegrid"},"modal_container":{"layout":"SIMPLE","id":"container-04470ade22",":type":"snowflake-site/components/modal/modal-container",":items":{},":itemsOrder":[]},"markup_editor_928258845":{"id":"markup-editor-b128fa4ab3","title":" ","cssContent":".snowflake-flexible-column-container-gray-10-bg\u003E.snowflake-flexible-column-container{background-color:var(--ui-background-05) !important}.text-size-regular:has(.seo-hub-hero__related-topic-label){display:flex;align-items:center}.hub-hero__headline span{text-transform:none !important}.hub-hero__subheadline p{max-width:70ch;margin-top:8px}.hub-hero__authors \u003E .container \u003E .cmp-container \u003E .aem-container{display:flex;flex-direction:row}.hub-hero__authors \u003E .container \u003E .cmp-container \u003E .aem-container \u003E div{width:auto !important;margin:24px 48px 0 0 !important}.hub-hero__authors .heading-5-v2{gap:var(--spacing-00)}.hub-hero__authors .snowflake-content-chip-button{display:none !important}.hub-hero__authors .snowflake-person-chip-content .body-2,.hub-hero__authors .snowflake-content-chip-content .snowflake-title-v2-line{font-size:16px !important;line-height:20px !important;font-family:\"Lato\",sans-serif !important;color:#000 !important;font-weight:600 !important}.hub-hero__authors .snowflake-person-chip-content .body-3,.hub-hero__authors .snowflake-content-chip-content .snowflake-title-v2-line:not(:first-child){font-weight:400 !important;color:var(--text-05) !important;font-size:16px !important}.hub-hero__authors .snowflake-image-container img{aspect-ratio:1 !important;border-radius:100%;overflow:hidden}.hub-hero__authors .snowflake-person-chip-avatar{width:56px;height:56px}.hub-hero__authors .snowflake-content-chip{align-items:center;display:inline-flex}.hub-hero__authors .snowflake-content-chip-image{max-width:56px;line-height:0;margin-right:var(--spacing-03)}.hub-hero__authors .snowflake-person-chip-inner-horizontal{gap:var(--spacing-03)}@media screen and (min-width:1367px){.hub-hero__headline .heading-1-v2{font-size:48px;line-height:44px}}#hub-explore-resources-grid-inner\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:24px}#hub-explore-resources-grid-inner\u003E.container\u003E.cmp-container\u003E.aem-container::before,#hub-explore-resources-grid-inner\u003E.container\u003E.cmp-container\u003E.aem-container::after{display:none}#hub-explore-resources-grid-inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(25% - 18px)}.text-color-text-05 .snowflake-text h2,.text-color-text-05.cq-Editable-dom h2,.text-color-text-05 .snowflake-text h3,.text-color-text-05.cq-Editable-dom h3,.text-color-text-05 .snowflake-text h4,.text-color-text-05.cq-Editable-dom h4,.text-color-text-05 .snowflake-text h5,.text-color-text-05.cq-Editable-dom h5,.text-color-text-05 .snowflake-text h6,.text-color-text-05.cq-Editable-dom h6{color:#000 !important}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"markup_editor_597730182":{"id":"markup-editor-97aca5bf1d","title":" ","cssContent":".sf-copy-markdown [data-copy-md]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-family:'Texta',sans-serif;text-transform:uppercase;font-weight:800 !important;font-size:14px;font-weight:500;color:#11567f;background:#f0faff;border:1px solid #b8e6f9;border-radius:24px;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.sf-copy-markdown [data-copy-md]:hover{background:#ddf3fc;border-color:#29b5e8}.sf-copy-markdown [data-copy-md][data-copied=\"1\"]{color:#0f7b3e;background:#ecfdf5;border-color:#6ee7a0;pointer-events:none}.sf-copy-markdown [data-copy-md] svg{flex-shrink:0}.longform-conten .snowflake-content-chip-white-bg .snowflake-content-chip{box-shadow:0 0 24px 4px rgba(0,0,0,.02),0 4px 8px 0 rgba(0,0,0,.04);flex-direction:row-reverse;align-items:center}.longform-conten .snowflake-content-chip-button{display:none}.longform-conten .snowflake-content-chip-image__inner{aspect-ratio:5 / 3;display:flex;justify-content:center;align-items:center;background-color:var(--ui-01);border-radius:4px}.longform-conten .snowflake-content-chip-image{margin-right:0;margin-left:48px}.longform-conten .snowflake-content-chip-image img{width:50%;border-radius:0 !important;object-fit:contain}.longform-content .black-blue-text-color .snowflake-title-v2-line:not(:first-child){font-size:14px !important;font-weight:400 !important;color:rgba(0,0,0,.6) !important;margin-top:8px !important}.page-toc ul li:first-child{padding-top:0 !important}.page-toc ul li:last-child{padding-bottom:0 !important}.seo-hub__top-bar \u003E .container \u003E .cmp-container \u003E .aem-container \u003E div:first-child{flex-grow:1}.sf-copy-markdown{margin-top:40px !important}.page-toc ul{margin-top:16px !important}.seo-hub__top-bar \u003E .container \u003E .cmp-container \u003E .aem-container{display:flex;justify-content:space-between}.sf-copy-markdown{}.callout.snowflake-text p:not(:first-child){margin-top:var(--spacing-01)}.callout \u003E span \u003E p:first-child \u003E strong,.callout \u003E span \u003E p:first-child \u003E b{text-transform:uppercase;font-family:'Texta',sans-serif;font-size:16px !important;color:var(--ui-01) !important}.seo-hub-hero__subheadline p{max-width:50ch}.tag-group ul{list-style-type:none;padding:0;margin:0;display:flex;flex-direction:row;row-gap:12px;column-gap:8px;align-items:center;flex-wrap:wrap}.tag-group ul li:first-child{flex-shrink:0}.tag-group ul li a{display:inline-block;padding:2px 12px;border-radius:48px;background-color:#ededed;color:#666;font-size:14px !important}@media screen and (min-width:1367px){.seo-hub-hero__headline span.snowflake-title-v2-line{font-size:56px !important}}.callout.snowflake-text p:not(:first-child){margin-top:var(--spacing-01)}.callout \u003E span \u003E p:first-child \u003E b{text-transform:uppercase;font-family:'Texta',sans-serif;font-size:16px !important;color:var(--ui-01) !important}.seo-hub-hero__subheadline p{max-width:80ch}#hero:has(.snowflake-youtube-lite) .seo-hub-hero__subheadline p{max-width:50ch}.tag-group ul{list-style-type:none;padding:0;margin:0;display:flex;flex-direction:row;row-gap:12px;column-gap:8px;align-items:center;flex-wrap:wrap}.tag-group ul li:first-child{width:100%;flex-shrink:0}.tag-group ul li a{display:inline-block;padding:2px 12px;border-radius:48px;background-color:#ededed;color:#666;font-size:14px !important}@media screen and (min-width:1367px){.seo-hub-hero__headline span.snowflake-title-v2-line{font-size:56px !important}}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"markup_editor":{"id":"markup-editor-19e87fc61a","title":" ","cssContent":"div.snowflake-breadcrumb a.snowflake-breadcrumb-item,.snowflake-breadcrumb div.snowflake-breadcrumb-item{text-transform:none;font-weight:500}.snowflake-breadcrumb svg{display:none !important}.snowflake-breadcrumb a:has(svg)::after{content:'/';margin:0 12px;color:#666}.hub-sidebar{padding:0 40px}.sticky-sidebar{max-width:340px;margin-left:auto}.page-toc ul{list-style-type:none;padding:0}.page-toc li{padding:8px 16px;border-left:4px solid var(--ui-01);cursor:pointer;transition:300ms ease all}.page-toc li:hover{color:var(--ui-01);border-color:#7fd3f1;transition:300ms ease all}.callout,.customer-card{background-color:#eef9fd;border-left:4px solid var(--ui-01);padding:24px 24px 24px 32px;border-radius:4px}.logo-container{max-width:180px}.longform-content li{margin-top:1rem !important}div.longform-content p{max-width:80ch}.bolder .snowflake-title-v2-line{font-weight:900 !important}.border-top\u003Ediv{border-top:1px solid #ccc;padding-top:48px}.related-topics ul{list-style-type:none;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap}.related-topics li{display:inline-block;border:1px solid #ccc;padding:4px 12px;border-radius:24px}div.longform-content .snowflake-text h2,div.longform-content .snowflake-text .heading-2-v2,div.longform-content .snowflake-text h3,div.longform-content .snowflake-text .heading-3-v2,div.longform-content .snowflake-title-v2 .heading-3-v2,div.longform-content .snowflake-text h4,div.longform-content .snowflake-text .heading-4-v2,div.longform-content .snowflake-title-v2 .heading-4-v2,div.longform-content .snowflake-text h5,div.longform-content .snowflake-text .heading-5-v2,div.longform-content .snowflake-title-v2 .heading-5-v2,div.longform-content .snowflake-text h6,div.longform-content .snowflake-title-v2 .heading-6-v2,div.longform-content .snowflake-text .heading-6-v2{text-transform:none !important}div.longform-content .snowflake-text h2,div.longform-content .snowflake-text .heading-2-v2,div.longform-content .snowflake-text h3,div.longform-content .snowflake-text .heading-3-v2,div.longform-content .snowflake-text h4,div.longform-content .snowflake-text .heading-4-v2,div.longform-content .snowflake-text h5,div.longform-content .snowflake-text .heading-5-v2,div.longform-content .snowflake-text h6,div.longform-content .snowflake-text .heading-6-v2{margin-top:1.5rem !important;line-height:1.1 !important}div.longform-content .snowflake-text h3,div.longform-content .snowflake-text .heading-3-v2,div.longform-content .snowflake-title-v2 .heading-3-v2,div.longform-content .snowflake-text h4,div.longform-content .snowflake-text .heading-4-v2,div.longform-content .snowflake-title-v2 .heading-4-v2,div.longform-content .snowflake-text h5,div.longform-content .snowflake-text .heading-5-v2,div.longform-content .snowflake-title-v2 .heading-5-v2,div.longform-content .snowflake-text h6,div.longform-content .snowflake-text .heading-6-v2,div.longform-content .snowflake-title-v2 .heading-6-v2{font-family:Lato,sans-serif !important;font-weight:800 !important}div.longform-content .snowflake-text h2,div.longform-content .snowflake-text .heading-2-v2,div.longform-content .snowflake-title-v2 .heading-2-v2{text-transform:none !important;font-size:28px !important}div.longform-content .snowflake-text h3,div.longform-content .snowflake-text .heading-3-v2,div.longform-content .snowflake-title-v2 .heading-3-v2{font-size:22px !important}div.longform-content .snowflake-text h4,div.longform-content .snowflake-text .heading-4-v2,div.longform-content .snowflake-title-v2 .heading-4-v2{font-size:18px !important}div.longform-content .snowflake-text h5,div.longform-content .snowflake-text .heading-5-v2,div.longform-content .snowflake-title-v2 .heading-5-v2{font-size:16px !important}div.longform-content .snowflake-text h6,div.longform-content .snowflake-text .heading-6-v2,div.longform-content .snowflake-title-v2 .heading-6-v2{font-size:14px !important}@media screen and (min-width:992px){div.longform-content .snowflake-text h2,div.longform-content .snowflake-text .heading-2-v2,div.longform-content .snowflake-title-v2 .heading-2-v2{font-size:38px !important}div.longform-content .snowflake-text h3,div.longform-content .snowflake-text .heading-3-v2,div.longform-content .snowflake-title-v2 .heading-3-v2{font-size:26px !important}div.longform-content .snowflake-text h4,div.longform-content .snowflake-text .heading-4-v2,div.longform-content .snowflake-title-v2 .heading-4-v2{font-size:22px !important}div.longform-content .snowflake-text h5,div.longform-content .snowflake-text .heading-5-v2,div.longform-content .snowflake-title-v2 .heading-5-v2{font-size:18px !important}div.longform-content .snowflake-text h6,div.longform-content .snowflake-text .heading-6-v2,div.longform-content .snowflake-title-v2 .heading-6-v2{font-size:16px !important}}.sticky-sidebar .page-toc li.is-active{font-weight:600;color:var(--snow-blue,#29b5e8)}.sticky-sidebar .page-toc li[data-anchor]{cursor:pointer}.longform-content table{margin-top:24px;margin-bottom:24px;width:100%;background-color:var(--ui-background-01);border-collapse:collapse;border:2px solid var(--ui-background-09);font-family:'Lato',sans-serif;color:var(--ui-background-09)}.longform-content table thead{background-color:var(--ui-01)}.longform-content th,.longform-content td{min-width:120px;border:2px solid var(--ui-background-09);padding:var(--spacing-01)}.longform-content ol{margin-top:0 !important}.longform-content ol li{margin-bottom:1rem !important}.longform-content ul li{margin:0;padding:0 0 0 32px;position:relative}.longform-content ul{list-style-type:none}.longform-content ul li::before{content:\"\";display:block;border-radius:100%;background:#29b5e8;width:18px;height:18px;position:absolute;top:4px;left:0;border:5px solid #e5f2f7;box-sizing:border-box}.seo-customer.snowflake-card-v2-advanced-horizontal .snowflake-card-v2-advanced-image-container{max-width:200px}.seo-customer.snowflake-card-v2-advanced-horizontal .snowflake-card-v2-advanced-image-container img{object-fit:contain}.related-topics-outer-container \u003E .container \u003E .cmp-container \u003E .aem-container{display:flex;flex-direction:row}.related-topics-outer-container \u003E .container \u003E .cmp-container \u003E .aem-container \u003E div{width:auto !important;margin:0 !important}.related-topics-outer-container \u003E .container \u003E .cmp-container \u003E .aem-container \u003E div:first-child{margin-right:16px !important;flex-shrink:0}","jsContent":"(function(){var OFFSET=100;if(window.gsap&&window.ScrollTrigger){gsap.registerPlugin(ScrollTrigger);var sidebar=document.querySelector('.sticky-sidebar');var body=document.querySelector('.longform-content');if(sidebar&&body){ScrollTrigger.create({trigger:sidebar,start:'top 100px',endTrigger:body,end:'bottom bottom',pin:sidebar,pinSpacing:false});}}document.addEventListener('click',function(e){var li=e.target.closest('li[data-anchor]');if(!li)return;var slug=li.getAttribute('data-anchor');var heading=document.querySelector('.anchor-title--'+CSS.escape(slug));if(!heading)return;e.preventDefault();var top=heading.getBoundingClientRect().top+window.pageYOffset-OFFSET;window.scrollTo({top:top,behavior:'smooth'});history.replaceState(null,'','#'+slug);},false);var headings=document.querySelectorAll('[class*=\"anchor-title--\"]');if(headings.length&&'IntersectionObserver'in window){var io=new IntersectionObserver(function(entries){entries.forEach(function(entry){if(!entry.isIntersecting)return;var cls=Array.from(entry.target.classList).find(function(c){return c.indexOf('anchor-title--')===0;});if(!cls)return;var slug=cls.replace('anchor-title--','');document.querySelectorAll('li[data-anchor]').forEach(function(li){li.classList.toggle('is-active',li.getAttribute('data-anchor')===slug);});});},{rootMargin:'-20% 0px -70% 0px',threshold:0});headings.forEach(function(h){io.observe(h);});}})();",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":true},"experiencefragment-footer":{"id":"experiencefragment-66aa502dce","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master.xfmodel.json"},"experiencefragment":{"id":"experiencefragment-3822619db0","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer-legal-disclaimers/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer-legal-disclaimers/master.xfmodel.json"}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","responsivegrid","modal_container","markup_editor_928258845","markup_editor_597730182","markup_editor","experiencefragment-footer","experiencefragment"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],":hierarchyType":"page",":path":"/content/snowflake-site/global/en/artificial-intelligence/computer-vision/image-classification","analyticsContentTags":["snowflake-site:taxonomy/content-type/fundamentals"],"analyticsEnabled":true,"isPasswordProtected":false,"coveoConfig":{"organizationId":"snowflakecomputingproduction8neljofn","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","pipeline":"snowflake.com","searchHub":"snowflake.com"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"base-page-template54","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/artificial-intelligence/computer-vision/image-classification","language":"en","category":"general","pageName":"Image Classification: How It Works, Models and Production Considerations","contentTags":["snowflake-site:taxonomy/content-type/fundamentals"]},"locale":"en"}
  