CINXE.COM
Deep Learning Archives | Open Data Science Conference
<!doctype html> <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> <!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> <!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> <!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]--> <!-- Consider adding a manifest.appcache: h5bp.com/d/Offline --> <!--[if gt IE 8]><!--><html class="no-js" lang="en-US"> <!--<![endif]--><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" ><meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1" /><meta name="apple-mobile-web-app-capable" content="yes" /><link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <style> #icon_wrapper .fuse_social_icons_links .fa { font-family: 'FontAwesome' !important; } .fb-awesome-social::before { content: "\f09a" !important; } #icon_wrapper { position: fixed; top: 25%; right: 0px; z-index: 99999; } .awesome-social { margin-top:2px; color: white !important; text-align: center !important; line-height: 25px !important; width: 24px !important; height: 24px !important; font-size: 1em !important; -moz-transition: width 0.5s, height 0.5s, -webkit-transform 0.5s; /* For Safari 3.1 to 6.0 */ -webkit-transition: width 0.5s, height 0.5s, -webkit-transform 0.5s; /* For Safari 3.1 to 6.0 */ transition: width 0.5s, height 0.5s, transform 0.5s; } .awesome-social:hover { -webkit-transform: rotate(360deg); /* Chrome, Safari, Opera */ transform: rotate(deg); -moz-transform: rotate(360deg); /* Chrome, Safari, Opera */ -ms-transform: rotate(360deg); /* Chrome, Safari, Opera */ } .fuse_social_icons_links { outline:0 !important; } .fuse_social_icons_links:hover{ text-decoration:none !important; } .fb-awesome-social { background: #3b5998; } .tw-awesome-social { background:#00aced; } .rss-awesome-social { background:#FA9B39; } .linkedin-awesome-social { background:#007bb6; } .youtube-awesome-social { background:#bb0000; } .flickr-awesome-social { background: #ff0084; } .pinterest-awesome-social { background:#cb2027; } .stumbleupon-awesome-social { background:#f74425 ; } .google-plus-awesome-social { background:#f74425 ; } .instagram-awesome-social { background: -moz-linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%); background: -webkit-linear-gradient(45deg, #f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%); background: linear-gradient(45deg, #f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f09433', endColorstr='#bc1888',GradientType=1 ); } .tumblr-awesome-social { background: #32506d ; } .vine-awesome-social { background: #00bf8f ; } .vk-awesome-social { background: #45668e ; } .soundcloud-awesome-social { background: #ff3300 ; } .reddit-awesome-social{ background: #ff4500 ; } .stack-awesome-social{ background: #fe7a15 ; } .behance-awesome-social{ background: #1769ff ; } .github-awesome-social{ background: #999999 ; } .envelope-awesome-social{ background: #ccc ; } /* Mobile */ /* Custom Background */ .awesome-social { background:#323840 !important; } .awesome-social{ -webkit-transition-property:color, text; -webkit-transition-duration: 0.25s, 0.25s; -webkit-transition-timing-function: linear, ease-in; -moz-transition-property:color, text; -moz-transition-duration:0.25s; -moz-transition-timing-function: linear, ease-in; -o-transition-property:color, text; -o-transition-duration:0.25s; -o-transition-timing-function: linear, ease-in; } .fb-awesome-social:hover { color: #3b5998 !important; } .tw-awesome-social:hover { color:#00aced !important; } .rss-awesome-social:hover { color:#FA9B39 !important; } .linkedin-awesome-social:hover { color:#007bb6 !important; } .youtube-awesome-social:hover { color:#bb0000 !important; } .flickr-awesome-social:hover { color: #ff0084 !important; } .pinterest-awesome-social:hover { color:#cb2027 !important; } .stumbleupon-awesome-social:hover { color:#f74425 !important; } .google-plus-awesome-social:hover { color:#f74425 !important; } .instagram-awesome-social:hover { color:#517fa4 !important; } .tumblr-awesome-social:hover { color: #32506d !important; } .vine-awesome-social:hover { color: #00bf8f !important; } .vk-awesome-social:hover { color: #45668e !important; } .soundcloud-awesome-social:hover { color: #ff3300 !important; } .reddit-awesome-social:hover{ color: #ff4500 !important; } .stack-awesome-social:hover{ color: #fe7a15 !important; } .behance-awesome-social:hover{ color: #1769ff !important; } .github-awesome-social:hover{ color: #999999 !important; } </style><meta name='robots' content='noindex, follow' /> <!-- Google Tag Manager for WordPress by gtm4wp.com --> <script data-cfasync="false" data-pagespeed-no-defer> var gtm4wp_datalayer_name = "dataLayer"; var dataLayer = dataLayer || []; </script> <!-- End Google Tag Manager for WordPress by gtm4wp.com --> <!-- This site is optimized with the Yoast SEO Premium plugin v23.6 (Yoast SEO v23.8) - https://yoast.com/wordpress/plugins/seo/ --><title>Deep Learning Archives | Open Data Science Conference</title><link rel="stylesheet" id="siteground-optimizer-combined-css-518a7a5fa74639197a615aa89ad5b0db" href="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/siteground-optimizer-combined-css-518a7a5fa74639197a615aa89ad5b0db.css" media="all" /><link rel="preload" href="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/siteground-optimizer-combined-css-518a7a5fa74639197a615aa89ad5b0db.css" as="style"><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="Deep Learning Archives" /><meta property="og:url" content="https://odsc.com/blog/category/deep-learning/" /><meta property="og:site_name" content="Open Data Science Conference" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@ODSC" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://odsc.com/blog/category/deep-learning/","url":"https://odsc.com/blog/category/deep-learning/","name":"Deep Learning Archives | Open Data Science Conference","isPartOf":{"@id":"https://odsc.com/#website"},"primaryImageOfPage":{"@id":"https://odsc.com/blog/category/deep-learning/#primaryimage"},"image":{"@id":"https://odsc.com/blog/category/deep-learning/#primaryimage"},"thumbnailUrl":"https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1.png","breadcrumb":{"@id":"https://odsc.com/blog/category/deep-learning/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://odsc.com/blog/category/deep-learning/#primaryimage","url":"https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1.png","contentUrl":"https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1.png","width":640,"height":300},{"@type":"BreadcrumbList","@id":"https://odsc.com/blog/category/deep-learning/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://odsc.com/"},{"@type":"ListItem","position":2,"name":"Deep Learning"}]},{"@type":"WebSite","@id":"https://odsc.com/#website","url":"https://odsc.com/","name":"Open Data Science Conference","description":"Data Science Conferences","publisher":{"@id":"https://odsc.com/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https://odsc.com/#organization","name":"ODSC","url":"https://odsc.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://odsc.com/#/schema/logo/image/","url":"https://odsc.com/wp-content/uploads/2015/12/HIGHRESODSCLOGO.png","contentUrl":"https://odsc.com/wp-content/uploads/2015/12/HIGHRESODSCLOGO.png","width":991,"height":302,"caption":"ODSC"},"image":{"@id":"https://odsc.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/OPENDATASCI","https://x.com/ODSC"]}]}</script> <!-- / Yoast SEO Premium plugin. --><link rel='dns-prefetch' href='//js.hs-scripts.com' /> <script type="text/javascript">var ajaxurl = 'https://odsc.com/wp-admin/admin-ajax.php';</script><link rel='stylesheet' id='bdp-widget-fontawesome-stylesheets-css' href='https://odsc.com/wp-content/plugins/blog-designer-pro/public/css/font-awesome.min.css' type='text/css' media='all' /> <style id='widget-for-eventbrite-api-display-eventbrite-events-style-inline-css' type='text/css'> </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <style id='wcs-timetable-inline-css' type='text/css'> .wcs-single__action .wcs-btn--action{color:rgba( 255,255,255,1);background-color:#BD322C} </style> <style id='wpex-timeline-dark-css-inline-css' type='text/css'> .wpex-timeline > li .wpex-timeline-icon .fa{font-weight: normal;} </style> <style id='wpgb-head-inline-css' type='text/css'> .wp-grid-builder:not(.wpgb-template),.wpgb-facet{opacity:0.01}.wpgb-facet fieldset{margin:0;padding:0;border:none;outline:none;box-shadow:none}.wpgb-facet fieldset:last-child{margin-bottom:40px;}.wpgb-facet fieldset legend.wpgb-sr-only{height:1px;width:1px} </style> <!-- Google Analytics --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-69911961-1', 'auto'); ga('send', 'pageview'); </script> <!-- End Google Analytics --> <script type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script> <script type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/blog-designer-pro/public/js/imagesloaded.pkgd.min.js" id="bdp-imagesloaded-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/blog-designer-pro/public/js/isotope.pkgd.min.js" id="bdp_isotope_script-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/blog-designer-pro/public/js/ticker.min.js" id="bdp-ticker-js"></script> <script type="text/javascript" id="be-gdpr-js-extra"> /* <![CDATA[ */ var beGdprConcerns = {"youtube":{"label":"Youtube","description":"Consent to display content from YouTube.","required":false},"vimeo":{"label":"Vimeo","description":"Consent to display content from Vimeo.","required":false},"gmaps":{"label":"Google Maps","description":"Consent to display content from Google Maps.","required":false}}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/be-gdpr.min.js" id="be-gdpr-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/svg-support/vendor/DOMPurify/DOMPurify.min.js" id="bodhi-dompurify-library-js"></script> <script type="text/javascript" id="widget-for-eventbrite-api-display-eventbrite-events-script-js-extra"> /* <![CDATA[ */ var wfea_freemius = {"current_plan":"PLAN_NAME","can_use_premium_code":"","is_plan_silver":"","is_plan_gold":"","is_plan_platinum":""}; var wfea_controls_meta = {"common":{"free":[{"name":"wfea_limit","label":"Number of Events to Display","type":"number","args":{"default":5}},{"name":"wfea_order_by","label":"Event Sort Order","type":"select2","args":{"options":{"asc":"Ascending Date","desc":"Descending Date","created_asc":"Created Date \u2013 ascending","created_desc":"Created Date \u2013 descending","published_asc":"EB Published Ascending","published_desc":"EB Published Descending"}}}]},"display":{"free":[{"name":"wfea_booknow","label":"Book Now button"},{"name":"wfea_date","label":"Event Date\/Time in Heading","args":{"condition":{"wfea_layout!":"short_date"}}},{"name":"wfea_excerpt","label":"Excerpt of Event Summary"},{"name":"wfea_thumb","label":"Image Display"},{"name":"wfea_thumb_original","label":"High Resolution Image","args":{"condition":{"wfea_thumb":["true"]}}},{"name":"wfea_readmore","label":"Read More Link on Excerpt","args":{"condition":{"wfea_layout!":["cal","cal_list"]}}}]},"enabling":{"free":[{"name":"wfea_newtab","label":"Link to EB in New Tab","args":{"default":"","condition":{"wfea_layout!":["cal","cal_list"]}}}]},"filtering":[],"selection":{"free":[{"name":"wfea_status","label":"Event Status","type":"select2","args":{"options":{"live":"Live","started":"Started","ended":"Ended","canceled":"Canceled","draft":"Draft","all":"All"},"default":"live","multiple":"true"}}]},"settings":{"free":[{"name":"wfea_booknow_text","label":"Book Now Wording","type":"text","args":{"default":"Register >>"}},{"name":"wfea_css_class","label":"Custom CSS Class","type":"text"},{"name":"wfea_cssID","label":"Custom CSS ID","type":"text"},{"name":"wfea_thumb_align","label":"Image Alignment","type":"select2","args":{"options":{"eaw-alignleft":"Left","eaw-alignright":"Right","eaw-aligncenter":"Center"},"condition":{"wfea_layout":"widget"},"default":"eaw-alignright"}},{"name":"wfea_length","label":"Length of Description","type":"number"},{"name":"wfea_thumb_width","label":"Image Width","type":"number","args":{"condition":{"wfea_layout":"widget"},"default":350,"max":""}},{"name":"wfea_thumb_default","label":"Default Image","type":"text"},{"name":"wfea_readmore_text","label":"Read More Wording","type":"text","args":{"default":"Read More >>","condition":{"wfea_layout!":["cal","cal_list"]}}}]},"ajaxurl":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","nonce":"de52649481"}; /* ]]> */ </script> <script defer type="text/javascript" id="cookie-notice-front-js-before"> /* <![CDATA[ */ var cnArgs = {"ajaxUrl":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","nonce":"9e10383cea","hideEffect":"fade","position":"bottom","onScroll":true,"onScrollOffset":100,"onClick":false,"cookieName":"cookie_notice_accepted","cookieTime":2592000,"cookieTimeRejected":2592000,"globalCookie":false,"redirection":false,"cache":false,"revokeCookies":true,"revokeCookiesOpt":"manual"}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/cookie-notice/js/front.min.js" id="cookie-notice-front-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/core.min.js" id="jquery-ui-core-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/bodhi_svg_inline.min.js" id="bodhi_svg_inline-js"></script> <script defer type="text/javascript" id="bodhi_svg_inline-js-after"> /* <![CDATA[ */ cssTarget={"Bodhi":"img.style-svg","ForceInlineSVG":"style-svg"};ForceInlineSVGActive="false";frontSanitizationEnabled="on"; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/tatsu/includes/typehub/public/js/webfont.min.js" id="webfontloader-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/oba_youtubepopup_plugin.min.js" id="oba_youtubepopup_plugin-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/oba_youtubepopup_activate.min.js" id="oba_youtubepopup_activate-js"></script> <script type="text/javascript" id="etn-public-pro-js-extra"> /* <![CDATA[ */ var etn_pro_public_object = {"ajax_url":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","location_map_nonce":"d0ad2e6485","scanner_nonce":"89f701ee2d","attendee_page_link":"https:\/\/odsc.com\/wp-admin\/edit.php?post_type=etn-attendee","scanner_common_msg":"Something went wrong! Please try again.","attendee_verification_style":"on","location_icon":"https:\/\/odsc.com\/wp-content\/plugins\/eventin-pro\/assets\/images\/location-icon.png","attendee_registration_option":"","event_expired_message":"This event has been expired."}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/etn-public-pro.min.js" id="etn-public-pro-js"></script> <script type="text/javascript" id="etn-rsvp-public-js-extra"> /* <![CDATA[ */ var localized_rsvp_data = {"ajax_url":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","attendee_title":"Attendee"}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/etn-rsvp-public.min.js" id="etn-rsvp-public-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/etn-google-public.min.js" id="etn-google-public-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/mouse.min.js" id="jquery-ui-mouse-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/resizable.min.js" id="jquery-ui-resizable-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/draggable.min.js" id="jquery-ui-draggable-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/controlgroup.min.js" id="jquery-ui-controlgroup-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/checkboxradio.min.js" id="jquery-ui-checkboxradio-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/button.min.js" id="jquery-ui-button-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/dialog.min.js" id="jquery-ui-dialog-js"></script> <script type="text/javascript" id="widget-for-eventbrite-api-js-extra"> /* <![CDATA[ */ var wfea_frontend = {"ajaxurl":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/widget-for-eventbrite-api.min.js" id="widget-for-eventbrite-api-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/themes/oshin/oshin/js/vendor/modernizr.min.js" id="modernizr-js"></script><link rel="https://api.w.org/" href="https://odsc.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://odsc.com/wp-json/wp/v2/categories/24" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://odsc.com/xmlrpc.php?rsd" /><meta name="generator" content="WordPress 6.7" /><meta name="framework" content="Redux 4.1.29" /><!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ /*.single-portfolio .butonici {display:none!important}*/</style> <!-- end Simple Custom CSS and JS --> <!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ /*.group-content__price__table.c_5 .price__table__column.column--ticket:nth-child(4) .column__title{ background: #00bcdd!important; } .group-content__price__table.c_5 .price__table__column.column--ticket:nth-child(4) .column__title:after { border-top: 8px solid #00bcdd!important; } .group-content__price__table.c_5 .price__table__column.column--ticket:nth-child(4) .button { border-radius: 5px!important; background-color: #00bcdd!important; padding: 8px 32px!important; } .group-content__price__table.c_5 .price__table__column.column--ticket:nth-child(4) .column__option .fa-check { color:#00bcdd; } .group-content__price__table.c_5 .price__table__column.column--ticket:nth-child(4) .button:hover { color:#15244a!important; } */ .secfocus { white-space: nowrap; } .etn-content-item{color:#e6d7d7!important} .schedule-tab-2 .etn-schedule-speaker-title { color: white!important; } .schedule-tab-2 .etn-schedule-single-speaker span { display: block; color: #1a9fe5; } .etn-icon.fa-linkedin:before { content: "\e904"!important; } .single-etn-speaker .etn-etn-icon.fa-linkedin:before{display:none!important} .single-etn-speaker .etn-schedule-location {display:none!important} .etn-event-item .etn-event-location, .etn-event-tag-list a:hover, .etn-schedule-wrap .etn-schedule-info .etn-schedule-time { color: #0057c1; /*display: none!important;*/ } .firstfocus{background:blue;padding: 7px 15px;margin: 5px;margin-right: 3px;border-radius: 10px;} .secfocus{background: #00bcdd;padding: 7px 15px;margin-left: 3px;border-radius: 10px;} .thirdtfocus{background: #00bcdd;padding: 7px 15px;margin-left: 3px;border-radius: 10px;} .locationvirtlive{margin-top: 20px;margin-left: 6px;font-weight: bold;font-size: 18px;} .etn-schedule-wrap .etn-schedule-info .etn-schedule-time { margin-bottom: 0px!important; } .etn-schedule-wrap .etn-schedule-info .etn-schedule-time { background: #1a9fe5; padding: 5px 18px!important;} .etn-schedule-wrap .etn-single-schedule-item { border-bottom: 1px solid #eaeaea; padding: 20px 0!important; margin: 0; } .etn-schedule-wrap .etn-schedule-info .etn-schedule-location { display: block; padding-left: 0px; font-size: .875rem; line-height: 2.25rem!important; position: relative; padding-top: 10px; } .etn-schedule-wrap .etn-schedule-info .etn-schedule-location i{display:none!important;} .etn-schedule-wrap .etn-schedule-info .etn-schedule-location { display: block; padding-left: 0px; font-size: .875rem; line-height: 1.25rem; position: relative; padding-top: 10px; } .etn-event-item .etn-event-location, .etn-event-tag-list a:hover, .etn-schedule-wrap .etn-schedule-info .etn-schedule-time { color: #0057c1; /* display: none;*/ } .etn-location:before { content: "\e916"!important; } .schedule-tab-wrapper .etn-nav { padding: 0; margin: 0 0 40px; margin: 0 auto; display: table; padding: 30px 0px; /* display: none!important;*/ } .schedule-tab-wrapper .etn-schedule-speaker .etn-schedule-single-speaker .etn-schedule-speaker-title { position: relative; left: 0; top: 0; padding: 0; background: #5d78ff; color: #fff; font-size: 20px; line-height: 30px; padding: 3px 10px; transition: all .4s ease; -webkit-transition: all .4s ease; -moz-transition: all .4s ease; -ms-transition: all .4s ease; opacity: 1; visibility: visible; margin: 0 auto; white-space: nowrap; display: table; } .schedule-tab-wrapper .etn-schedule-speaker .etn-schedule-single-speaker img { width: 200px; height: 200px; object-fit: cover; } .etn-schedule-wrap .etn-schedule-info .etn-schedule-time { background: #1a9fe5; padding: 10px 18px; border-radius: 36px; -webkit-border-radius: 36px; -ms-border-radius: 36px; color: white!important; font-size: 15px; font-weight: 700; display: inline-block; text-transform: uppercase; margin-bottom: 10px; } .schedule-tab-2 .etn-accordion-heading i { padding: 8px 10px; background: #ffeff5; color: #189fe5; border-radius: 5px; -webkit-border-radius: 5px; -ms-border-radius: 5px; } .etn-acccordion-contents {padding-right: 55px;} .schedule-tab-2 .etn-schedule-single-speaker img { border-radius: 5px; -webkit-border-radius: 5px; -ms-border-radius: 5px; width: 100px; height: 100px; object-fit: cover; } .schedule-tab-2 .etn-schedule-speaker-designation { font-size: 17px; line-height: 24px; } .schedule-tab-2 .etn-schedule-speaker-title { font-size: 18px; font-weight: 500; line-height: 28px; color: white; } .schedule-tab-2 .etn-schedule-single-speaker { margin-right: 20px; display: inline-block; text-align: left; } .etn-schedule-info{color: white;} .etn-schedule-wrap .etn-schedule-content .etn-title { margin-bottom: 10px; color: white; } .schedule-tab-wrapper .etn-nav li a .etn-day { font-size: .9375rem; color: #ffffff; font-weight: 500; text-align: center; } .schedule-tab-wrapper .etn-nav li a { font-size: 1.25rem; font-weight: 700; color: #ffffff;} .schedule-tab-wrapper .etn-nav { padding: 0; margin: 0 0 40px; margin: 0 auto; display: table;padding: 30px 0px; }</style> <!-- end Simple Custom CSS and JS --> <!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ .wp-grid-builder .wpgb-sidebar { flex-basis: 300px; min-width: 0; padding-left: 40px; } .wp-grid-builder .wpgb-scheme-dark .wpgb-idle-scheme-2, .wp-grid-builder .wpgb-scheme-dark [class^="wpgb-block-"].wpgb-hover-scheme-2:hover { color: #565656; margin-bottom: 30px; } .tcode-event-schedule .scheduled-days .scheduled-day .row-day { font-size: 18px!important; padding-top: 26px; line-break: normal; } @media only screen and (min-width: 767px) { .group-content__price__table.c_6 .price__table__column.column--ticket { width: 14.6%!important; } .group-content__price__table.c_6 .price__table__column.column--options { border-color: transparent; width: 280px!important; position: absolute; margin-left: -156px!important; } .group-content__price__table.c_6 { display: table; width: 100%!important; max-width: 100%!important; margin: 0 auto; margin-top: 35px; position: relative; padding-left: 150px; } .group-content__price__table.c_5 .price__table__column.column--options { border-color: transparent; width: 279px!important; position: absolute; margin-left: -149px!important; } } </style> <!-- end Simple Custom CSS and JS --> <!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ .envira-tags-filter-active{ border-radius: 0!important; background-color: transparent!important; color: black!important!important; border: 4px solid black!important; PADDING: 10PX 20PX!important;} .envira-tags-filter-link{ border-radius: 0!important; background-color: transparent!important; color: black!important; } .envira-tags-filter-list{ display: table!important; margin: 0 auto!important; padding-bottom: 40px!important;} .filters.rounded .sort { padding: 3px 20px; color: black!important; font-size: 18px; } .filters.rounded .current_choice { border-radius: 0!important; background-color: transparent!important; color: black!important; border: 4px solid black!important; } #portdark .thumb-wrap{pointer-events:none!important; cursor:normal!important}</style> <!-- end Simple Custom CSS and JS --> <!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ #tree-container { display: flex; justify-content: center; } .node { cursor: pointer; } .overlay { background-color: black!important; } .node circle { stroke: steelblue; stroke-width: 1.5px; } .node text { font-size: 14px; font-family: sans-serif; } .link { fill: none; } div.tooltip { position: absolute; padding: 10px 15px; font: 12px sans-serif; background: lightsteelblue; border: 0px; border-radius: 8px; z-index: 1; box-shadow: 0 5px 10px rgba(0,0,0,0.2); } div.tooltip:empty { padding: 0; } div.tooltip p { margin: 5px 0 0; } </style> <!-- end Simple Custom CSS and JS --> <!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ #ptsTableInitEditHtmlDlg{width:100%!important} .woocommerce div.product div.images, .woocommerce #content div.product div.images, .woocommerce-page div.product div.images, .woocommerce-page #content div.product div.images { margin-top: 0px; } .woocommerce div.product div.summary, .woocommerce #content div.product div.summary, .woocommerce-page div.product div.summary, .woocommerce-page #content div.product div.summary { margin-bottom: 2em; width: 48%; float: right; margin-top: 50px; } .woocommerce .product-single-boxed-content { margin-bottom: 0px; } .woocommerce .product-single-boxed-content { margin-bottom: 0px; background: #ebeff6; padding-top: 0; margin-bottom: 40px; } .woocommerce div.product form.cart .button, .woocommerce #content div.product form.cart .button, .woocommerce-page div.product form.cart .button, .woocommerce-page #content div.product form.cart .button { vertical-align: middle; float: left; background: #00bcdd!important; border: #00bcdd!important; color: white!important; } .woocommerce div.product form.cart, .woocommerce #content div.product form.cart, .woocommerce-page div.product form.cart, .woocommerce-page #content div.product form.cart { margin-bottom: 35px; margin-top: 20px; text-transform: uppercase; } .woocommerce-tabs{display:none!important} .woocommerce-variation-price .price{display:block!important} .entry-summary .price, .product_meta{display:none} .woocommerce-page.single.single-product #content div.product h1.product_title.entry-title{ font: 700 35px "Source Sans Pro","Open Sans","Arial",sans-serif!important; color: #515151!important; line-height: 42px!important; letter-spacing: 1px!important; text-transform: none!important; } .product-single-boxed-content .custom-share-button{display:none!important}</style> <!-- end Simple Custom CSS and JS --> <!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ .widgets_on_page>ul, .widgets_on_page>ul li { list-style: none; background: 0 0; padding-left: 0px; } .hbspt-form input[type="email"] {width: 100%!important;} .poster #navigation-right-side { width: 55%!important; padding-left:0px!important; } .poster #header-wrap .logo{display:none!important} .poster #header-top-bar{display:none!important} .poster #navigation-left-side a{display:none!important} .tatsu-divider-wrap.tatsu-animate{ visibility: visible!important; } .tatsu-shortcode-module .svg_container.big { padding: 20px; width: 80px; height: 80px; } a.glink img { margin: 0px 3px; } .menu-item-gtranslate:after{display:none!important} .paded{margin-top:40px!important; margin-bottom:40px!important;} #popmake-47777 .vc_column-inner{padding-top:0px!important;} #popmake-47777 .wpb_single_image.vc_align_left{margin-bottom:0px!important} #popmake-47777{ /* padding: 18px; border-radius: 0px!important; border: none!important; box-shadow: 0px 0px 30px 0px rgba( 2, 2, 2, 1.00 )!important; background-image: url(https://staging6.odsc.com/wp-content/uploads/2020/02/popup-2.jpg)!important;*/ padding-left: 0px!important; padding-top: 0px!important; padding-bottom: 0px!important;} .popi2 input[type="submit"] { background: #0072bc!important; color: white!important; text-transform: uppercase!important; font-size: 27px!important; font-weight: normal!important; padding: 19px 25px; text-align: center; width: 74%; margin: 0 auto; display: table; } .popi input[type="submit"] {background: #f7941d!important; color: white!important; text-transform: uppercase!important; font-size: 27px!important; font-weight: normal!important; padding: 19px 25px;} .hs-form-required{display:none!important} .texs{ border: 3px solid white; padding: 50px 40px;} /*.popmake-content p:first-child{display:none!important}*/ #popmake-47580{ padding: 18px; border-radius: 0px!important; border: none!important; box-shadow: 0px 0px 30px 0px rgba( 2, 2, 2, 1.00 )!important; /* background-color: rgba( 255, 255, 255, 1.00 ); */ background-image: url(https://staging6.odsc.com/wp-content/uploads/2020/02/popup-4.jpg)!important; } .icon-icon_plus:before { content: "\e806"; color: white; } #header .be-mobile-menu-icon span { background-color: #ffffff!important; } @media only screen and (max-width: 476px) { .schedule-tab-wrapper .etn-nav{display:none!important;} .ui-tabs .ui-tabs-nav li a { border-bottom: 2px solid; color: #1a9fe5; font-size: 30px; font-size: 20px!important; line-height: 30px!important; } .schedule-tab-2 .etn-schedule-single-speaker img { border-radius: 5px; -webkit-border-radius: 5px; -ms-border-radius: 5px; width: 50px; height: 50px; object-fit: cover; } } @media only screen and (max-width: 767px) { .etn-acccordion-contents { padding-right: 0px!important; } .nomob{display:none!important} #icon_wrapper { position: fixed; display:none!important; right: 0px; z-index: 99999; } .herojski{left: 0px!important;} } .column__option .fa-check{ color: #0054a6;} .butonici a{width:100%!important; padding-left:unset; padding-right:unset;} h6.gallery-side-heading { font-size: 26px!important; line-height: 32px; } .group-content__price__table { display: table; width: 100%; max-width: 920px; margin: 0 auto; margin-top: 35px; position: relative; padding-left: 150px; } .single-portfolio .onlyport{display:block!important;width: 100%;} .portfolio-details{padding: 0px 27px;} a.custom-share-button{font-size:20px!important} h6.gallery-side-heading { font-size: 26px!important; } .speaker-social-icons i{ font-size: 49px!important; width: 45px; height: 45px; line-height: 45px; margin: 0 auto; display: table; } .speaker-details-circle img { margin: 0 auto; display: table; } .speaks .tatsu-column{margin-bottom:10px!important;} .speaks p{margin-bottom: 20px!important;} .speaks .flip-wrap{width: 100px; float: right;} .speaks .thumb-overlay{display:none!important} .speaks .thumb-bg { display: none; } .single-post .post-title, .single-post .post-date-wrap{margin-top:40px;} .awsm-grid-wrapper .awsm-grid>.awsm-grid-card { min-height: 425px; } .awsm-personal-info h3{margin-bottom: 10px!important;} figcaption .awsm-personal-info{ border-bottom:none!important;} .awsm-personal-info{ padding-top: 20px; border-bottom: 1px solid black; padding-bottom: 15px;} .awsm-personal-info .comptit, .jobpos{ text-transform: uppercase; font-size: .9em; line-height: 1.9; display: block; color: black; } .jobpos{ font-style: italic;} #page-content h3{ font-family: Roboto; font-weight: 300;} p span, .tatsu-button-wrap a{ font-family: Roboto; font-weight: 300;} h5 span, h4{font-family: Roboto!important;} h2 span, .tatsu-text-inner, p, span, strong, h1, h2, h3, h4, h5 {font-family: Roboto!important;} h3{font-weight:700!important} #page-content li{font-family: Roboto!important; } .single-post .hero-section-wrap{height:400px;} .style1-blog .article-details, .style5-blog .article-details, .style6-blog .article-details { padding: 0px 0 0!important; } .single-post .content{padding-top:40px!important;} .single-post .tagcloud{display:none!important;} .post-template-default #header-wrap{display:block!important;} .post-title a{ font: 700 55px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 70px; letter-spacing: 0px; text-transform: none;} .style2-blog .post-nav, .style3-blog .post-nav, .style5-blog .post-nav, .style6-blog .post-nav{ display:none!important; } .single-post .section-overlay{ opacity: 0.5!important;} .single-post select{ width: 99%!important;} .single-post .hbspt-form input[type="text"]{ width: 95%!important;} .single-post .stacked .actions { margin-left: 0!important;margin-top:0px!important;padding-top:0px!important} .single-post .hs-button { display: table!important; margin: 0 auto!important; } .single-post .hbspt-form input[type="text"] { padding-bottom: 0px; width: 95%!important; } .single-post .hs-field-desc { width: 100%; color: #aaa; margin: 0px 0px 5px 150px; font-size: 11px; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; line-height: 15px; text-align: center; } .single-post .hs-form-required{display:none!important;} .single-post .hbspt-form { border: 1px solid #1fbdef!important; padding: 10px; } .single-post .hs-input {margin-bottom:0px!important} .single-post .hs-richtext h5 { font-family: Open Sans, Arial, sans-serif; font-size: 20px; text-align: center; color: #1fbdef; } #navigation-left-side { padding-right: 90px; } #navigation-right-side { padding-left: 90px; } #navigation-left-side a, #navigation-right-side a, #navigation a { padding: 0 10px!important;} .ui-accordion .ui-accordion-header.ui-state-active { background: #2CB5E9!important; } .ui-accordion .ui-accordion-header.ui-state-default { background: #428BCA; } body .ui-accordion .ui-accordion-header { margin-top: 1px; } body .ui-accordion .ui-accordion-header { padding: 14px 18px; color: #fff; font-size: 18px; } body .ui-accordion-header-icon.ui-icon.ui-icon-triangle-1-s, body .ui-accordion .ui-accordion-header.ui-state-active:hover .ui-accordion-header-icon.ui-icon.ui-icon-triangle-1-s { width: 24px; height: 24px; float: right!important; background: url(https://staging6.odsc.com/wp-content/themes/oshin/images/rounded_arrow_up.png) no-repeat center center transparent; } body .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: relative; left: auto; right: auto; top: 0; margin-top: 0; } .ui-icon.ui-icon-triangle-1-e, .ui-accordion .ui-accordion-header.ui-state-default:hover .ui-icon.ui-icon-triangle-1-e { width: 24px; height: 24px; float: right; background: url(https://staging6.odsc.com/wp-content/themes/oshin/images/rounded_arrow.png) no-repeat center center transparent; } .svg_container.big.handshake img { max-width: none; width: 56px; } p.date { color: #15c2e0; font-weight: bold; text-transform: uppercase; margin-bottom: 0; } .svg_container.big.handshake { padding: 25px 30px 20px 15px; } .svg_container.blue, .blue .svg_container { background: rgba(0, 188, 221, 0.32); } .svg_container.big { padding: 20px; width: 40px; height: 40px; } .svg_container { width: 28px; height: 28px; float: left; padding: 14px; margin-top: 0; margin-right: 14px; border-radius: 50%; }</style> <!-- end Simple Custom CSS and JS --> <!-- start Simple Custom CSS and JS --> <style type="text/css"> /* Add your CSS code here. For example: .example { color: red; } For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp End of comment */ #ptsTableInitEditHtmlDlg{width:100%!important} #odsc-tickets .groups__group { } @media only screen and (max-width: 960px){ body.sticky-header #header #header-inner-wrap.no-transparent { position: fixed!important; left: 0!important; right: 0 !important; top: 0px !important; }} .kolumnspec select { width: 100%!important; font: 400 18px "Source Sans Pro","Open Sans","Arial",sans-serif!important; border:none!important; height:41px!important; } .newslee input[type="email"]{ width: 100%!important;} .kolumnspec ul { list-style: none!important; } #odsc-tickets .groups__group:hover { background: #f7f5f5; } /* Timetable */ @media only screen and (min-width: 992px){ .tcode-event-schedule .scheduled-event .artist-image { height: 92px; width: 92px; } } .artist-image .img-responsive{border-radius: 50%;} @media only screen and (max-width: 767px){ .klasicc .tatsu-eq-cols .tatsu-column { min-height: 270px!important; } } /*register page*/ @media only screen and (max-width: 460px) { .fixe span{line-height:55px;} } .mobmenu{display:none!important;} .mobmenu-push-wrap, body.mob-menu-slideout-over { padding-top: 0px!important; } @media only screen and (max-width: 964px) { .page-id-161 #header-inner-wrap{ /* display:none!important;*/ } .page-id-161 .mobmenu{display:block!important;} .page-id-161 .mobmenu-push-wrap, .page-id-161 body.mob-menu-slideout-over { padding-top: 40px!important; } } .mptt-shortcode-wrapper .mptt-shortcode-table{ color: white; } .mptt-shortcode-wrapper .mptt-shortcode-table tr.mptt-shortcode-row th{ background-color: transparent; color: white; padding: 1rem; } .mptt-shortcode-wrapper .mptt-shortcode-table tbody tr:nth-child(2n+2) { background-color: transparent; } .mptt-shortcode-wrapper .mptt-shortcode-table.mptt-theme-mode tbody td.event{ background-color: transparent; } .mptt-shortcode-wrapper .mptt-shortcode-table tbody div[data-color="#48AFDE"] .event-subtitle, .mptt-shortcode-wrapper .mptt-shortcode-table tbody div[data-color="#48AFDE"] .timeslot{ color: white !important; } .mptt-shortcode-wrapper .mptt-shortcode-table tbody .mptt-shortcode-event.mptt-event-vertical-top[colspan="4"] .mptt-event-container{ background-color: transparent !important; justify-content: center; } .mptt-shortcode-wrapper .mptt-shortcode-table tbody .mptt-event-container .event-title{ font-weight: bold; } .mptt-shortcode-wrapper .mptt-shortcode-table tbody [colspan="4"] .event-title{ font-size: 24px; } .mptt-shortcode-wrapper .mptt-shortcode-table tbody .mptt-event-container:hover .event-title{ text-decoration: none !important; } .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17418"] .mptt-event-container, .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17423"] .mptt-event-container{ background-color: rgba(105, 217, 226, 0.15); } .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17418"] .mptt-event-container:hover, .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17423"] .mptt-event-container:hover{ background-color: rgba(105, 217, 226, .25); } .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17424"] .mptt-event-container, .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17425"] .mptt-event-container{ background-color: rgba(226, 152, 178, 0.15); } .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17424"] .mptt-event-container:hover, .mptt-shortcode-wrapper .mptt-shortcode-event.mptt-event-vertical-top[data-column-id="17425"] .mptt-event-container:hover{ background-color: rgba(226, 152, 178, .25); } .mptt-shortcode-list { color: white; } [data-event-id="17452"] .timeslot{ display: none; } .mptt-shortcode-wrapper .mptt-shortcode-table tbody .mptt-event-container[data-event-id="17452"] .event-subtitle { font-size: .9em; } .mfp-content { position: relative; background-color: #FFF; padding: 40px 20px; width: 90%; max-width: 700px; margin: 20px auto; } .mfp-content h4{ text-align: center; } .mfp-content .timeslots-title,.mfp-content .timeslot{ display: none; } .mfp-preloader{ color: black; } .mfp-content{ position: relative; background-color: #FFF!important; padding: 40px 20px; width: 90%; max-width: 700px; margin: 20px auto;} .mptt-event-container.id-56 a{ font-weight:bold; color: rgb(0, 188, 221)!important; } .mptt-event-container.id-56 a::before{ } .mptt-event-container.id-63,.mptt-event-container.id-64 { background-image: url(https://staging6.odsc.com/wp-content/uploads/2018/05/DinnerDS.jpg);} .mptt-event-container.id-121,.mptt-event-container.id-64 { background-image: url(https://staging6.odsc.com/wp-content/uploads/2017/09/Data-Robot-Networking-Party1.jpg);} .linkic{width: 100%; height: 100%; position: absolute;} .overl{ position: absolute; top: 35%; background: url(https://staging6.odsc.com/wp-content/uploads/2018/05/play-white.svg); width: 20%; background-repeat: no-repeat; left: 40%; height: 100%;} #hu-header-mobile .hu-header-logo { max-height: 75px; margin: 41px auto 0; display: none!important; } .agendica tbody tr:nth-child(2n+2) { background-color: transparent!important; } .agendica tr.mptt-shortcode-row th { background-color: transparent!important; } .agendica tbody td.event { background-color: transparent!important; } .agendica .mptt-shortcode-hours{color:white!important} .agendica th{color:white!important} .agendica .timeslot{color:white!important} .agendica .event-subtitle{color:white!important} .agendica .event-title{color:white!important} .price__table__column .column__header { height: 250px!important; } .price__table__column .column__header .column__desc { font-size: 15px!important; line-height: 20px!important; } .faq_categories .attending { background: url(images/attendee.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .attending.activated { background: url(images/attendee_light.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .hiring { background: url(images/hiring.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .hiring.activated { background: url(images/hiring_light.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .videos { background: url(images/videos.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .videos.activated { background: url(images/videos_light.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .speakers { background: url(images/speaker.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .speakers.activated { background: url(images/speaker_light.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .volunteers { background: url(images/volunteer.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .volunteers.activated { background: url(images/volunteer_light.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .sponsor { background: url(images/sponsor.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .sponsor.activated { background: url(images/sponsor_light.svg) no-repeat center 15px #fff; background-size: 37px; } .faq_categories .group-tickets { background: url(images/group.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .ticket-type { background: url(images/ticket.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .schedule, .faq_categories .odsc { background: url(images/schedule.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .refund-policy { background: url(images/refund.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .trainings { background: url(images/training.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .app-info { background: url(images/mobile.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .scholarships { background: url(images/scholarship.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .promotions-pricing { background: url(images/pricing.svg) no-repeat center 12px #fff; background-size: 27px; } .faq_categories .odsc-europe-2017, .faq_categories .odsc-west-2017, .faq_categories .odsc-east-2017 { background: url(images/logo.png) no-repeat center 10px #fff; background-size: 37px; padding-top: 35px; } .faq_categories li a { font-size: 15px; line-height: 20px; display: inline-block; width: 120px; height: 60px; padding-top: 60px; border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%; text-align: center; /* padding: 10px 15px 10px 50px; */ background: #fff; -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.25); -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.25); box-shadow: 0px 3px 3px rgba(0,0,0,0.25); } @media only screen and (min-width: 992px){ .tcode-event-schedule .col-md-2 { width: 8.33333333%; } .tcode-event-schedule .col-md-9 { width: 83.33333333%; } .tcode-event-schedule .col-md-8{ width: 83.33333333%; } .tcode-event-schedule .col-md-offset-2 { margin-left: 8.33333333%; } } </style> <!-- end Simple Custom CSS and JS --> <!-- DO NOT COPY THIS SNIPPET! Start of Page Analytics Tracking for HubSpot WordPress plugin v11.1.66--> <script class="hsq-set-content-id" data-content-id="listing-page"> var _hsq = _hsq || []; _hsq.push(["setContentType", "listing-page"]); </script> <!-- DO NOT COPY THIS SNIPPET! End of Page Analytics Tracking for HubSpot WordPress plugin --> <noscript><style type="text/css">.mptt-shortcode-wrapper .mptt-shortcode-table:first-of-type{display:table!important}.mptt-shortcode-wrapper .mptt-shortcode-table .mptt-event-container:hover{height:auto!important;min-height:100%!important}body.mprm_ie .mptt-shortcode-wrapper .mptt-event-container{height:auto!important}@media (max-width:767px){.mptt-shortcode-wrapper .mptt-shortcode-table:first-of-type{display:none!important}}</style></noscript><meta name="facebook-domain-verification" content="am2vglo5kisnxesykxjg911bcapxcr" /> <script type="text/javascript"> var ajaxurl = 'https://odsc.com/wp-admin/admin-ajax.php'; </script> <script type='text/javascript'> var video_popup_unprm_general_settings = { 'unprm_r_border': '' }; </script> <style type="text/css" media="all" id="wcs_styles"></style><noscript><style>.wp-grid-builder .wpgb-card.wpgb-card-hidden .wpgb-card-wrapper{opacity:1!important;visibility:visible!important;transform:none!important}.wpgb-facet {opacity:1!important;pointer-events:auto!important}.wpgb-facet *:not(.wpgb-pagination-facet){display:none}</style></noscript> <!-- Google Tag Manager for WordPress by gtm4wp.com --> <!-- GTM Container placement set to footer --> <script data-cfasync="false" data-pagespeed-no-defer> var dataLayer_content = {"pagePostType":"post","pagePostType2":"category-post","pageCategory":["deep-learning"]}; dataLayer.push( dataLayer_content ); </script> <script data-cfasync="false"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-M62L34N'); </script> <!-- End Google Tag Manager for WordPress by gtm4wp.com --><style id = "be-dynamic-css" type="text/css"> body { background-color: rgb(255,255,255);background-color: rgba(255,255,255,1);} .layout-box #header-inner-wrap, #header-inner-wrap, body.header-transparent #header #header-inner-wrap.no-transparent, .left-header .sb-slidebar.sb-left, .left-header .sb-slidebar.sb-left #slidebar-menu a::before { background-color: rgb(50,56,64);background-color: rgba(50,56,64,1);} #mobile-menu, #mobile-menu ul { background-color: rgb(50,56,64);background-color: rgba(50,56,64,1);} #mobile-menu li{ border-bottom-color: #efefef ; } body.header-transparent #header-inner-wrap{ background: transparent; } .be-gdpr-modal-item input:checked + .slider{ background-color: #00bcdd; } .be-gdpr-modal-iteminput:focus + .slider { box-shadow: 0 0 1px #00bcdd; } .be-gdpr-modal-item .slider:before { background-color:#ffffff; } .be-gdpr-cookie-notice-bar .be-gdpr-cookie-notice-button{ background: #00bcdd; color: #ffffff; } #header .header-border{ border-bottom: 0px none #00bcdd; } #header-top-bar{ background-color: rgb(21,22,26);background-color: rgba(21,22,26,1); border-bottom: 0px none #ffffff; color: #ffffff; } #header-top-bar #topbar-menu li a{ color: #ffffff; } #header-bottom-bar{ background-color: rgb(255,255,255);background-color: rgba(255,255,255,1); border-top: none #323232; border-bottom: none #323232; } /*Adjusted the timings for the new effects*/ body.header-transparent #header #header-inner-wrap { -webkit-transition: background .25s ease, box-shadow .25s ease, opacity 700ms cubic-bezier(0.645, 0.045, 0.355, 1), transform 700ms cubic-bezier(0.645, 0.045, 0.355, 1); -moz-transition: background .25s ease, box-shadow .25s ease, opacity 700ms cubic-bezier(0.645, 0.045, 0.355, 1), transform 700ms cubic-bezier(0.645, 0.045, 0.355, 1); -o-transition: background .25s ease, box-shadow .25s ease, opacity 700ms cubic-bezier(0.645, 0.045, 0.355, 1), transform 700ms cubic-bezier(0.645, 0.045, 0.355, 1); transition: background .25s ease, box-shadow .25s ease, opacity 700ms cubic-bezier(0.645, 0.045, 0.355, 1), transform 700ms cubic-bezier(0.645, 0.045, 0.355, 1); } body.header-transparent.semi #header .semi-transparent{ background-color: rgb(255,255,255);background-color: rgba(255,255,255,1); !important ; } #content, #blog-content { background-color: rgb(255,255,255);background-color: rgba(255,255,255,1);} #bottom-widgets { background-color: rgb(242,243,248);background-color: rgba(242,243,248,1);} #footer { background-color: rgb(50,56,64);background-color: rgba(50,56,64,1);} #footer .footer-border{ border-bottom: 2px solid #eaeaea; } .page-title-module-custom { background-color: rgb(242,243,248);background-color: rgba(242,243,248,1);} #portfolio-title-nav-wrap{ background-color : #ededed; } #navigation .sub-menu, #navigation .children, #navigation-left-side .sub-menu, #navigation-left-side .children, #navigation-right-side .sub-menu, #navigation-right-side .children { background-color: rgb(31,31,31);background-color: rgba(31,31,31,1);} .sb-slidebar.sb-right { background-color: rgb(26,26,26);background-color: rgba(26,26,26,1);} .left-header .left-strip-wrapper, .left-header #left-header-mobile { background-color : #323840 ; } .layout-box-top, .layout-box-bottom, .layout-box-right, .layout-box-left, .layout-border-header-top #header-inner-wrap, .layout-border-header-top.layout-box #header-inner-wrap, body.header-transparent .layout-border-header-top #header #header-inner-wrap.no-transparent { background-color: rgb(211,211,211);background-color: rgba(211,211,211,1);} .left-header.left-sliding.left-overlay-menu .sb-slidebar{ background-color: rgb(8,8,8);background-color: rgba(8,8,8,0.90); } .top-header.top-overlay-menu .sb-slidebar{ background-color: rgb(26,26,26);background-color: rgba(26,26,26,1);} .search-box-wrapper{ background-color: rgb(255,255,255);background-color: rgba(255,255,255,0.85);} .search-box-wrapper.style1-header-search-widget input[type="text"]{ background-color: transparent !important; color: #000000; border: 1px solid #000000; } .search-box-wrapper.style2-header-search-widget input[type="text"]{ background-color: transparent !important; color: #000000; border: none !important; box-shadow: none !important; } .search-box-wrapper .searchform .search-icon{ color: #000000; } #header-top-bar-right .search-box-wrapper.style1-header-search-widget input[type="text"]{ border: none; } .post-title , .post-date-wrap { margin-bottom: 12px; } /* ====================== Dynamic Border Styling ====================== */ .layout-box-top, .layout-box-bottom { height: 30px; } .layout-box-right, .layout-box-left { width: 30px; } #main.layout-border, #main.layout-border.layout-border-header-top{ padding: 30px; } .left-header #main.layout-border { padding-left: 0px; } #main.layout-border.layout-border-header-top { padding-top: 0px; } .be-themes-layout-layout-border #logo-sidebar, .be-themes-layout-layout-border-header-top #logo-sidebar{ margin-top: 70px; } /*Left Static Menu*/ .left-header.left-static.be-themes-layout-layout-border #main-wrapper{ margin-left: 310px; } .left-header.left-static.be-themes-layout-layout-border .sb-slidebar.sb-left { left: 30px; } /*Right Slidebar*/ body.be-themes-layout-layout-border-header-top .sb-slidebar.sb-right, body.be-themes-layout-layout-border .sb-slidebar.sb-right { right: -250px; } .be-themes-layout-layout-border-header-top .sb-slidebar.sb-right.opened, .be-themes-layout-layout-border .sb-slidebar.sb-right.opened { right: 30px; } /* Top-overlay menu on opening, header moves sideways bug. Fixed on the next line code */ /*body.be-themes-layout-layout-border-header-top.top-header.slider-bar-opened #main #header #header-inner-wrap.no-transparent.top-animate, body.be-themes-layout-layout-border.top-header.slider-bar-opened #main #header #header-inner-wrap.no-transparent.top-animate { right: 310px; }*/ body.be-themes-layout-layout-border-header-top.top-header:not(.top-overlay-menu).slider-bar-opened #main #header #header-inner-wrap.no-transparent.top-animate, body.be-themes-layout-layout-border.top-header:not(.top-overlay-menu).slider-bar-opened #main #header #header-inner-wrap.no-transparent.top-animate { right: 310px; } /* Now not needed mostly, as the hero section image is coming properly */ /*Single Page Version*/ body.be-themes-layout-layout-border-header-top.single-page-version .single-page-nav-wrap, body.be-themes-layout-layout-border.single-page-version .single-page-nav-wrap { right: 50px; } /*Split Screen Page Template*/ .top-header .layout-border #content.page-split-screen-left { margin-left: calc(50% + 15px); } .top-header.page-template-page-splitscreen-left .layout-border .header-hero-section { width: calc(50% - 15px); } .top-header .layout-border #content.page-split-screen-right { width: calc(50% - 15px); } .top-header.page-template-page-splitscreen-right .layout-border .header-hero-section { left: calc(50% - 15px); } @media only screen and (max-width: 960px) { body.be-themes-layout-layout-border-header-top.single-page-version .single-page-nav-wrap, body.be-themes-layout-layout-border.single-page-version .single-page-nav-wrap { right: 35px; } body.be-themes-layout-layout-border-header-top .sb-slidebar.sb-right, body.be-themes-layout-layout-border .sb-slidebar.sb-right { right: -280px; } #main.layout-border, #main.layout-border.layout-border-header-top { padding: 0px !important; } .top-header .layout-border #content.page-split-screen-left, .top-header .layout-border #content.page-split-screen-right { margin-left: 0px; width:100%; } .top-header.page-template-page-splitscreen-right .layout-border .header-hero-section, .top-header.page-template-page-splitscreen-left .layout-border .header-hero-section { width:100%; } } body, .special-heading-wrap .caption-wrap .body-font, .woocommerce .woocommerce-ordering select.orderby, .woocommerce-page .woocommerce-ordering select.orderby { font: 400 18px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #5f6263; line-height: 26px; letter-spacing: 0px; text-transform: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } h1 { font: 700 55px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 70px; letter-spacing: 0px; text-transform: none;} h2 { font: 700 42px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 63px; letter-spacing: 0px; text-transform: none;} h3 { font: 700 35px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 52px; letter-spacing: 1px; text-transform: none;} h4, .woocommerce-order-received .woocommerce h2, .woocommerce-order-received .woocommerce h3, .woocommerce-view-order .woocommerce h2, .woocommerce-view-order .woocommerce h3{ font: 400 26px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 42px; letter-spacing: 0px; text-transform: none;} h5, #reply-title { font: 400 20px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 36px; letter-spacing: 0px; text-transform: none; } h6, .testimonial-author-role.h6-font, .menu-card-title, .menu-card-item-price, .slider-counts, .woocommerce-MyAccount-navigation ul li { font: 400 15px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 32px; letter-spacing: 0px; text-transform: none;} h6.gallery-side-heading { font-size: 18px; } .special-subtitle , .style1.thumb-title-wrap .portfolio-item-cats { font-style: ; font-size: 15px; font-weight: ; font-family: Crimson Text; text-transform: none; letter-spacing: 0px; } .gallery-side-heading { font-size: 18px; } .attachment-details-custom-slider { background-color: rgb(0,0,0);background-color: rgba(0,0,0,1); font: 15px "Crimson Text","Open Sans","Arial",sans-serif; color: ; line-height: 15px; letter-spacing: 0px; text-transform: none;} .single-portfolio-slider .carousel_bar_wrap { background-color: rgb(255,255,255);background-color: rgba(255,255,255,0.5);} .top-right-sliding-menu .sb-right ul#slidebar-menu li, .overlay-menu-close, .be-overlay-menu-close { font: 400 16px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #ffffff; line-height: 50px; letter-spacing: 1px; text-transform: uppercase;} .top-right-sliding-menu .sb-right ul#slidebar-menu li a { color: #ffffff !important; } .top-right-sliding-menu .sb-right #slidebar-menu ul.sub-menu li { font: 400 16px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #ffffff; line-height: 25px; letter-spacing: ; text-transform: none;} .top-right-sliding-menu .sb-right ul#slidebar-menu li a { color: #ffffff !important; } .sb-right #slidebar-menu .mega .sub-menu .highlight .sf-with-ul { font: 400 16px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #ffffff; line-height: 50px; letter-spacing: 1px; text-transform: uppercase; color: #ffffff !important; } .post-meta.post-top-meta-typo, .style8-blog .post-meta.post-category a, .hero-section-blog-categories-wrap a { font: 12px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #757575; line-height: 24px; letter-spacing: 0px; text-transform: uppercase;; } #portfolio-title-nav-bottom-wrap h6, #portfolio-title-nav-bottom-wrap .slider-counts { font: 400 15px "Montserrat","Open Sans","Arial",sans-serif; color: ; line-height: ; letter-spacing: 0px; text-transform: none;; line-height: 40px; } .filters .filter_item { font: 400 12px "Montserrat","Open Sans","Arial",sans-serif; color: #222222; line-height: 32px; letter-spacing: 1px; text-transform: uppercase;; } ul#mobile-menu a { font: 400 12px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #ffffff; line-height: 40px; letter-spacing: 1px; text-transform: uppercase;} ul#mobile-menu ul.sub-menu a { font: 400 13px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #bbbbbb; line-height: 27px; letter-spacing: 0px; text-transform: none; } ul#mobile-menu li.mega ul.sub-menu li.highlight > :first-child { font: 400 12px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #ffffff; line-height: 40px; letter-spacing: 1px; text-transform: uppercase;} #navigation, .style2 #navigation, .style13 #navigation, #navigation-left-side, #navigation-right-side, .sb-left #slidebar-menu, .header-widgets, .header-code-widgets, body #header-inner-wrap.top-animate.style2 #navigation, .top-overlay-menu .sb-right #slidebar-menu, #navigation .mega .sub-menu .highlight .sf-with-ul, .special-header-menu .menu-container { font: 600 16px "Montserrat","Open Sans","Arial",sans-serif; color: #00bcdd; line-height: 51px; letter-spacing: 1px; text-transform: uppercase;} #navigation .sub-menu, #navigation .children, #navigation-left-side .sub-menu, #navigation-left-side .children, #navigation-right-side .sub-menu, #navigation-right-side .children, .sb-left #slidebar-menu .sub-menu, .top-overlay-menu .sb-right #slidebar-menu .sub-menu, .special-header-menu .menu-container .sub-menu, .special-header-menu .sub-menu { font: 400 16px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #bbbbbb; line-height: 28px; letter-spacing: 0px; text-transform: none;} .thumb-title-wrap .thumb-title { font: 400 14px "Montserrat","Open Sans","Arial",sans-serif; color: ; line-height: 30px; letter-spacing: 0px; text-transform: uppercase;} .thumb-title-wrap .portfolio-item-cats { font-size: 12px; line-height: 17px; text-transform: none; letter-spacing: 0px; } .full-screen-portfolio-overlay-title { font: 400 14px "Montserrat","Open Sans","Arial",sans-serif; color: ; line-height: 30px; letter-spacing: 0px; text-transform: uppercase;} #footer { font: 400 14px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #ffffff; line-height: 14px; letter-spacing: 0px; text-transform: none;} #bottom-widgets h6 { font: 400 18px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #474747; line-height: 22px; letter-spacing: 1px; text-transform: uppercase; margin-bottom:20px; } #bottom-widgets { font: 400 16px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #757575; line-height: 24px; letter-spacing: 0px; text-transform: none;} .sidebar-widgets h6 { font: 400 18px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #333333; line-height: 22px; letter-spacing: 1px; text-transform: uppercase; margin-bottom:20px; } .sidebar-widgets { ?php be_themes_print_typography('sidebar_widget_text'); ?> } .sb-slidebar .widget { font: 400 14px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #a2a2a2; line-height: 25px; letter-spacing: 0px; text-transform: none;} .sb-slidebar .widget h6 { font: 400 16px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #ffffff; line-height: 22px; letter-spacing: 1px; text-transform: none;} .woocommerce ul.products li.product .product-meta-data h3, .woocommerce-page ul.products li.product .product-meta-data h3, .woocommerce ul.products li.product h3, .woocommerce-page ul.products li.product h3 { font: 400 13px "Montserrat","Open Sans","Arial",sans-serif; color: #222222; line-height: 27px; letter-spacing: 1px; text-transform: uppercase;} .woocommerce ul.products li.product .product-meta-data .woocommerce-loop-product__title, .woocommerce-page ul.products li.product .product-meta-data .woocommerce-loop-product__title, .woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce-page ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product-category .woocommerce-loop-category__title, .woocommerce-page ul.products li.product-category .woocommerce-loop-category__title { font: 400 13px "Montserrat","Open Sans","Arial",sans-serif; color: #222222; line-height: 27px; letter-spacing: 1px; text-transform: uppercase; margin-bottom:5px; text-align: center; } .woocommerce-page.single.single-product #content div.product h1.product_title.entry-title { font: 400 25px "Montserrat","Open Sans","Arial",sans-serif; color: #222222; line-height: 27px; letter-spacing: 0px; text-transform: none;} .contact_form_module input[type="text"], .contact_form_module textarea { font: 400 13px "Montserrat","Open Sans","Arial",sans-serif; color: #222222; line-height: 26px; letter-spacing: 0px; text-transform: none;} .page-title-module-custom .page-title-custom, h6.portfolio-title-nav{ font: 400 18px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 36px; letter-spacing: 3px; text-transform: uppercase;} .tatsu-button, .be-button, .woocommerce a.button, .woocommerce-page a.button, .woocommerce button.button, .woocommerce-page button.button, .woocommerce input.button, .woocommerce-page input.button, .woocommerce #respond input#submit, .woocommerce-page #respond input#submit, .woocommerce #content input.button, .woocommerce-page #content input.button, input[type="submit"], .more-link.style1-button, .more-link.style2-button, .more-link.style3-button, input[type="button"], input[type="submit"], input[type="reset"], button, input[type="file"]::-webkit-file-upload-button { font-family: Source Sans Pro; font-weight: ; } .post-title , .post-date-wrap { font: 400 20px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #000000; line-height: 40px; letter-spacing: 0px; text-transform: none; margin-bottom: 12px; } .style3-blog .post-title, .style8-blog .post-title { font: 400 16px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #363c3b; line-height: 28px; letter-spacing: 0px; text-transform: none;} .post-nav li, .style8-blog .post-meta.post-date, .style8-blog .post-bottom-meta-wrap, .hero-section-blog-bottom-meta-wrap { font: 12px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #757575; line-height: 24px; letter-spacing: 0px; text-transform: uppercase;} .ui-tabs-anchor, .accordion .accordion-head, .skill-wrap .skill_name, .chart-wrap span, .animate-number-wrap h6 span, .woocommerce-tabs .tabs li a, .be-countdown { font-family: Source Sans Pro; letter-spacing: 0px; font-style: ; font-weight: 600; } .ui-tabs-anchor { font-size: 13px; line-height: 17px; text-transform: uppercase; } .accordion .accordion-head { font-size: 18px; line-height: 17px; text-transform: uppercase; } .skill-wrap .skill_name { font-size: 20px; line-height: 17px; text-transform: none; } .countdown-section { font-size: 15px; line-height: 30px; text-transform: uppercase; } .countdown-amount { font-size: 55px; line-height: 95px; text-transform: uppercase; } .tweet-slides .tweet-content { font-family: Source Sans Pro; letter-spacing: 0px; font-style: ; font-weight: ; text-transform: none; } .testimonial_slide .testimonial-content { font-family: Crimson Text; letter-spacing: 0px; font-style: ; font-weight: ; text-transform: none; } .oshine-animated-link, .view-project-link.style4-button { font-family: Montserrat; font-weight: ; letter-spacing: ; font-style: ; text-transform: none; } a.navigation-previous-post-link, a.navigation-next-post-link { font: 700 13px "Montserrat","Open Sans","Arial",sans-serif; color: ; line-height: 20px; letter-spacing: 0px; text-transform: none;; } @media only screen and (max-width : 767px ) { #hero-section h1 , .full-screen-section-wrap h1, .tatsu-fullscreen-wrap h1 { font-size: 30px; line-height: 40px; } #hero-section h2, .full-screen-section-wrap h2, .tatsu-fullscreen-wrap h2 { font-size: 25px; line-height: 35px; } #hero-section h4, .full-screen-section-wrap h4, .tatsu-fullscreen-wrap h3 { font-size: 16px; line-height: 30px; } #hero-section h5, .full-screen-section-wrap h5, .tatsu-fullscreen-wrap h5 { font-size: 16px; line-height: 30px; } } /* RELATED TO TYPOGRAPHY */ #header-controls-right, #header-controls-left { color: #00bcdd} #be-left-strip .be-mobile-menu-icon span { background-color: #323232} ul#mobile-menu .mobile-sub-menu-controller { line-height : 40px ; } ul#mobile-menu ul.sub-menu .mobile-sub-menu-controller{ line-height : 27px ; } .breadcrumbs { color: #515151; } .search-box-wrapper.style2-header-search-widget input[type="text"]{ font-style: ; font-weight: ; font-family: Crimson Text; } .portfolio-share a.custom-share-button, .portfolio-share a.custom-share-button:active, .portfolio-share a.custom-share-button:hover, .portfolio-share a.custom-share-button:visited { color: #515151; } .more-link.style2-button { color: #000000 !important; border-color: #000000 !important; } .style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button, .style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button:active, .style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button:hover, .style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button:visited { color: #757575; } .hero-section-blog-categories-wrap a, .hero-section-blog-categories-wrap a:visited, .hero-section-blog-categories-wrap a:hover, .hero-section-blog-bottom-meta-wrap .hero-section-blog-bottom-meta-wrap a, .hero-section-blog-bottom-meta-wrap a:visited, .hero-section-blog-bottom-meta-wrap a:hover { color : #000000; } #navigation .mega .sub-menu .highlight .sf-with-ul { color: #bbbbbb !important; line-height:1.5; } .view-project-link.style4-button { color : #515151; } .pricing-table .pricing-feature{ font-size: 17px; } /* Woocommerce */ .related.products h2, .upsells.products h2, .cart-collaterals .cross-sells h2, .cart_totals h2, .shipping_calculator h2, .woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .shipping_calculator h2, #order_review_heading, .woocommerce .page-title { font-family: Montserrat; font-weight: 400; } .woocommerce form .form-row label, .woocommerce-page form .form-row label { color: #515151; } .woocommerce-tabs .tabs li a { color: #515151 !important; } /* BB Press Plugin */ a.bbp-forum-title, #bbpress-forums fieldset.bbp-form label, .bbp-topic-title a.bbp-topic-permalink { font: 400 15px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 32px; letter-spacing: 0px; text-transform: none;} #bbpress-forums ul.forum-titles li, #bbpress-forums ul.bbp-replies li.bbp-header { font: 400 15px "Source Sans Pro","Open Sans","Arial",sans-serif; color: #515151; line-height: 32px; letter-spacing: 0px; text-transform: none; line-height: inherit; letter-spacing: inherit; text-transform: uppercase; font-size: inherit; } #bbpress-forums .topic .bbp-topic-meta a, .bbp-forum-freshness a, .bbp-topic-freshness a, .bbp-header .bbp-reply-content a, .bbp-topic-tags a, .bbp-breadcrumb a, .bbp-forums-list a { color: #515151; } /*Event On Plugin*/ .ajde_evcal_calendar .calendar_header p, .eventon_events_list .eventon_list_event .evcal_cblock { font-family: Source Sans Pro !important; } .eventon_events_list .eventon_list_event .evcal_desc span.evcal_desc2, .evo_pop_body .evcal_desc span.evcal_desc2 { font-family: Source Sans Pro !important; font-size: 14px !important; text-transform: none; } .eventon_events_list .eventon_list_event .evcal_desc span.evcal_event_subtitle, .evo_pop_body .evcal_desc span.evcal_event_subtitle, .evcal_evdata_row .evcal_evdata_cell p, #evcal_list .eventon_list_event p.no_events { text-transform: none !important; font-family: Source Sans Pro !important; font-size: inherit !important; } /* END RELATED TO TYPOGRAPHY */ .filters.single_border .filter_item{ border-color: #00bcdd; } .filters.rounded .current_choice{ border-radius: 50px; background-color: #00bcdd; color: #ffffff; } .filters.single_border .current_choice, .filters.border .current_choice{ color: #00bcdd; } .exclusive-mobile-bg .menu-controls{ background-color: background-color: rgb(255,255,255);background-color: rgba(255,255,255,0);; } #header .be-mobile-menu-icon span { background-color : #323232; } #header-controls-right, #header-controls-left, .overlay-menu-close, .be-overlay-menu-close { color : #323232; } #header .exclusive-mobile-bg .be-mobile-menu-icon, #header .exclusive-mobile-bg .be-mobile-menu-icon span, #header-inner-wrap.background--light.transparent.exclusive-mobile-bg .be-mobile-menu-icon, #header-inner-wrap.background--light.transparent.exclusive-mobile-bg .be-mobile-menu-icon span, #header-inner-wrap.background--dark.transparent.exclusive-mobile-bg .be-mobile-menu-icon, #header-inner-wrap.background--dark.transparent.exclusive-mobile-bg .be-mobile-menu-icon span { background-color: #323232} .be-mobile-menu-icon{ width: 18px; height: 2px; } .be-mobile-menu-icon .hamburger-line-1{ top: -5px; } .be-mobile-menu-icon .hamburger-line-3{ top: 5px; } .thumb-title-wrap { color: #ffffff; } #bottom-widgets .widget ul li a, #bottom-widgets a { color: inherit; } #bottom-widgets .tagcloud a:hover { color: #ffffff; } a, a:visited, a:hover, #bottom-widgets .widget ul li a:hover, #bottom-widgets a:hover{ color: #00bcdd; } #header-top-menu a:hover, #navigation .current_page_item a, #navigation .current_page_item a:hover, #navigation a:hover, #navigation-left-side .current_page_item a, #navigation-left-side .current_page_item a:hover, #navigation-left-side a:hover, #navigation-right-side .current_page_item a, #navigation-right-side .current_page_item a:hover, #navigation-right-side a:hover, #menu li.current-menu-ancestor > a, #navigation .current-menu-item > a, #navigation .sub-menu .current-menu-item > a, #navigation .sub-menu a:hover, #navigation .children .current-menu-item > a, #navigation .children a:hover, #slidebar-menu .current-menu-item > a, .special-header-menu a:hover + .mobile-sub-menu-controller i, .special-header-menu #slidebar-menu a:hover, .special-header-menu .sub-menu a:hover, .single-page-version #navigation a:hover, .single-page-version #navigation-left-side a:hover, .single-page-version #navigation-right-side a:hover, .single-page-version #navigation .current-section.current_page_item a, .single-page-version #navigation-left-side .current-section.current_page_item a, .single-page-version #navigation-right-side .current-section.current_page_item a, .single-page-version #slidebar-menu .current-section.current_page_item a, .single-page-version #navigation .current_page_item a:hover, .single-page-version #navigation-left-side .current_page_item a:hover, .single-page-version #navigation-right-side .current_page_item a:hover, .single-page-version #slidebar-menu .current_page_item a:hover, .be-sticky-sections #navigation a:hover, .be-sticky-sections #navigation-left-side a:hover, .be-sticky-sections #navigation-right-side a:hover, .be-sticky-sections #navigation .current-section.current_page_item a, .be-sticky-sections #navigation-left-side .current-section.current_page_item a, .be-sticky-sections #navigation-right-side .current-section.current_page_item a, .be-sticky-sections #navigation .current_page_item a:hover, .be-sticky-sections #navigation-left-side .current_page_item a:hover, .be-sticky-sections #navigation-right-side .current_page_item a:hover, #navigation .current-menu-ancestor > a, #navigation-left-side .current-menu-ancestor > a, #navigation-right-side .current-menu-ancestor > a, #slidebar-menu .current-menu-ancestor > a, .special-header-menu .current-menu-item > a, .sb-left #slidebar-menu a:hover { color: #ffffff; } #navigation .current_page_item ul li a, #navigation-left-side .current_page_item ul li a, #navigation-right-side .current_page_item ul li a, .single-page-version #navigation .current_page_item a, .single-page-version #navigation-left-side .current_page_item a, .single-page-version #navigation-right-side .current_page_item a, .single-page-version #slidebar-menu .current_page_item a, .single-page-version #navigation .sub-menu .current-menu-item > a, .single-page-version #navigation .children .current-menu-item > a .be-sticky-sections #navigation .current_page_item a, .be-sticky-sections #navigation-left-side .current_page_item a, .be-sticky-sections #navigation-right-side .current_page_item a, .be-sticky-sections #navigation .sub-menu .current-menu-item > a, .be-sticky-sections #navigation .children .current-menu-item > a { color: inherit; } .be-nav-link-effect-1 a::after, .be-nav-link-effect-2 a::after, .be-nav-link-effect-3 a::after{ background-color: rgb(255,255,255);background-color: rgba(255,255,255,1);} #portfolio-title-nav-wrap .portfolio-nav a { color: #00bcdd; } #portfolio-title-nav-wrap .portfolio-nav a .home-grid-icon span{ background-color: #00bcdd; } #portfolio-title-nav-wrap .portfolio-nav a:hover { color: #323840; } #portfolio-title-nav-wrap .portfolio-nav a:hover .home-grid-icon span{ background-color: #323840; } .page-title-module-custom .header-breadcrumb { line-height: 36px; } #portfolio-title-nav-bottom-wrap h6, #portfolio-title-nav-bottom-wrap ul li a, .single_portfolio_info_close, #portfolio-title-nav-bottom-wrap .slider-counts{ background-color: rgb(255,255,255);background-color: rgba(255,255,255,0);} .more-link.style2-button:hover { border-color: #00bcdd !important; background: #00bcdd !important; color: #ffffff !important; } .woocommerce a.button, .woocommerce-page a.button, .woocommerce button.button, .woocommerce-page button.button, .woocommerce input.button, .woocommerce-page input.button, .woocommerce #respond input#submit, .woocommerce-page #respond input#submit, .woocommerce #content input.button, .woocommerce-page #content input.button { background: transparent !important; color: #000 !important; border-color: #000 !important; border-style: solid !important; border-width: 2px !important; background: transparent !important; color: #000000 !important; border-width: 2px !important; border-color: #000000 !important; line-height: 41px; text-transform: uppercase; } .woocommerce a.button:hover, .woocommerce-page a.button:hover, .woocommerce button.button:hover, .woocommerce-page button.button:hover, .woocommerce input.button:hover, .woocommerce-page input.button:hover, .woocommerce #respond input#submit:hover, .woocommerce-page #respond input#submit:hover, .woocommerce #content input.button:hover, .woocommerce-page #content input.button:hover { background: #e0a240 !important; color: #fff !important; border-color: #e0a240 !important; border-width: 2px !important; background: #e0a240 !important; color: #ffffff !important; border-color: #e0a240 !important; } .woocommerce a.button.alt, .woocommerce-page a.button.alt, .woocommerce .button.alt, .woocommerce-page .button.alt, .woocommerce input.button.alt, .woocommerce-page input.button.alt, .woocommerce input[type="submit"].alt, .woocommerce-page input[type="submit"].alt, .woocommerce #respond input#submit.alt, .woocommerce-page #respond input#submit.alt, .woocommerce #content input.button.alt, .woocommerce-page #content input.button.alt { background: #e0a240 !important; color: #fff !important; border-color: #e0a240 !important; border-style: solid !important; border-width: 2px !important; background: #e0a240 !important; color: #ffffff !important; border-width: 2px !important; border-color: #e0a240 !important; line-height: 41px; text-transform: uppercase; } .woocommerce a.button.alt:hover, .woocommerce-page a.button.alt:hover, .woocommerce .button.alt:hover, .woocommerce-page .button.alt:hover, .woocommerce input[type="submit"].alt:hover, .woocommerce-page input[type="submit"].alt:hover, .woocommerce input.button.alt:hover, .woocommerce-page input.button.alt:hover, .woocommerce #respond input#submit.alt:hover, .woocommerce-page #respond input#submit.alt:hover, .woocommerce #content input.button.alt:hover, .woocommerce-page #content input.button.alt:hover { background: transparent !important; color: #000 !important; border-color: #000 !important; border-style: solid !important; border-width: 2px !important; background: transparent !important; color: #000000 !important; border-color: #000000 !important; } .woocommerce .woocommerce-message a.button, .woocommerce-page .woocommerce-message a.button, .woocommerce .woocommerce-message a.button:hover, .woocommerce-page .woocommerce-message a.button:hover { border: none !important; color: #fff !important; background: none !important; } .woocommerce .woocommerce-ordering select.orderby, .woocommerce-page .woocommerce-ordering select.orderby { border-color: #eeeeee; } .style7-blog .post-title{ margin-bottom: 9px; } .style8-blog .post-comment-wrap a:hover{ color : #00bcdd; } .style8-blog .element:not(.be-image-post) .post-details-wrap{ background-color: #ffffff ; } .accordion .accordion-head.with-bg.ui-accordion-header-active{ background-color: #00bcdd; color: #ffffff !important; } #portfolio-title-nav-wrap{ padding-top: 15px; padding-bottom: 15px; border-bottom: 1px solid #cecece; } #portfolio-title-nav-bottom-wrap h6, #portfolio-title-nav-bottom-wrap ul, .single_portfolio_info_close .font-icon, .slider-counts{ color: #2b2b2b ; } #portfolio-title-nav-bottom-wrap .home-grid-icon span{ background-color: #2b2b2b ; } #portfolio-title-nav-bottom-wrap h6:hover, #portfolio-title-nav-bottom-wrap ul a:hover, #portfolio-title-nav-bottom-wrap .slider-counts:hover, .single_portfolio_info_close:hover { background-color: rgb(235,73,73);background-color: rgba(235,73,73,0.85);} #portfolio-title-nav-bottom-wrap h6:hover, #portfolio-title-nav-bottom-wrap ul a:hover, #portfolio-title-nav-bottom-wrap .slider-counts:hover, .single_portfolio_info_close:hover .font-icon{ color: #ffffff ; } #portfolio-title-nav-bottom-wrap ul a:hover .home-grid-icon span{ background-color: #ffffff ; } /* ====================== Layout ====================== */ body #header-inner-wrap.top-animate #navigation, body #header-inner-wrap.top-animate .header-controls, body #header-inner-wrap.stuck #navigation, body #header-inner-wrap.stuck .header-controls { -webkit-transition: line-height 0.5s ease; -moz-transition: line-height 0.5s ease; -ms-transition: line-height 0.5s ease; -o-transition: line-height 0.5s ease; transition: line-height 0.5s ease; } .header-cart-controls .cart-contents span{ background: #646464; } .header-cart-controls .cart-contents span{ color: #f5f5f5; } .left-sidebar-page, .right-sidebar-page, .no-sidebar-page .be-section-pad:first-child, .page-template-page-940-php #content , .no-sidebar-page #content-wrap, .portfolio-archives.no-sidebar-page #content-wrap { padding-top: 80px; padding-bottom: 80px; } .no-sidebar-page #content-wrap.page-builder{ padding-top: 0px; padding-bottom: 0px; } .left-sidebar-page .be-section:first-child, .right-sidebar-page .be-section:first-child, .dual-sidebar-page .be-section:first-child { padding-top: 0 !important; } .style1 .logo, .style4 .logo, #left-header-mobile .logo, .style3 .logo, .style7 .logo, .style10 .logo{ padding-top: 15px; padding-bottom: 15px; } .style5 .logo, .style6 .logo{ margin-top: 15px; margin-bottom: 15px; } #footer-wrap { padding-top: 25px; padding-bottom: 25px; } /* ====================== Colors ====================== */ .sec-bg, .gallery_content, .fixed-sidebar-page .fixed-sidebar, .style3-blog .blog-post.element .element-inner, .style4-blog .blog-post, .blog-post.format-link .element-inner, .blog-post.format-quote .element-inner, .woocommerce ul.products li.product, .woocommerce-page ul.products li.product, .chosen-container.chosen-container-single .chosen-drop, .chosen-container.chosen-container-single .chosen-single, .chosen-container.chosen-container-active.chosen-with-drop .chosen-single { background: #fafbfd; } .sec-color, .post-meta a, .pagination a, .pagination a:visited, .pagination span, .pages_list a, input[type="text"], input[type="email"], input[type="password"], textarea, .gallery_content, .fixed-sidebar-page .fixed-sidebar, .style3-blog .blog-post.element .element-inner, .style4-blog .blog-post, .blog-post.format-link .element-inner, .blog-post.format-quote .element-inner, .woocommerce ul.products li.product, .woocommerce-page ul.products li.product, .chosen-container.chosen-container-single .chosen-drop, .chosen-container.chosen-container-single .chosen-single, .chosen-container.chosen-container-active.chosen-with-drop .chosen-single { color: #7a7a7a; } .woocommerce .quantity .plus, .woocommerce .quantity .minus, .woocommerce #content .quantity .plus, .woocommerce #content .quantity .minus, .woocommerce-page .quantity .plus, .woocommerce-page .quantity .minus, .woocommerce-page #content .quantity .plus, .woocommerce-page #content .quantity .minus, .woocommerce .quantity input.qty, .woocommerce #content .quantity input.qty, .woocommerce-page .quantity input.qty, .woocommerce-page #content .quantity input.qty { background: #fafbfd; color: #7a7a7a; border-color: #eeeeee; } .woocommerce div.product .woocommerce-tabs ul.tabs li, .woocommerce #content div.product .woocommerce-tabs ul.tabs li, .woocommerce-page div.product .woocommerce-tabs ul.tabs li, .woocommerce-page #content div.product .woocommerce-tabs ul.tabs li { color: #7a7a7a!important; } .chosen-container .chosen-drop, nav.woocommerce-pagination, .summary.entry-summary .price, .portfolio-details.style2 .gallery-side-heading-wrap, #single-author-info, .single-page-atts, article.comment { border-color: #eeeeee !important; } .fixed-sidebar-page #page-content{ background: #ffffff; } .sec-border, input[type="text"], input[type="email"], input[type="tel"], input[type="password"], textarea { border: 2px solid #eeeeee; } .chosen-container.chosen-container-single .chosen-single, .chosen-container.chosen-container-active.chosen-with-drop .chosen-single { border: 2px solid #eeeeee; } .woocommerce table.shop_attributes th, .woocommerce-page table.shop_attributes th, .woocommerce table.shop_attributes td, .woocommerce-page table.shop_attributes td { border: none; border-bottom: 1px solid #eeeeee; padding-bottom: 5px; } .woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content, .woocommerce-page .widget_price_filter .price_slider_wrapper .ui-widget-content{ border: 1px solid #eeeeee; } .pricing-table .pricing-title, .chosen-container .chosen-results li { border-bottom: 1px solid #eeeeee; } .separator { border:0; height:1px; color: #eeeeee; background-color: #eeeeee; } .alt-color, li.ui-tabs-active h6 a, a, a:visited, .social_media_icons a:hover, .post-title a:hover, .fn a:hover, a.team_icons:hover, .recent-post-title a:hover, .widget_nav_menu ul li.current-menu-item a, .widget_nav_menu ul li.current-menu-item:before, .woocommerce ul.cart_list li a:hover, .woocommerce ul.product_list_widget li a:hover, .woocommerce-page ul.cart_list li a:hover, .woocommerce-page ul.product_list_widget li a:hover, .woocommerce-page .product-categories li a:hover, .woocommerce ul.products li.product .product-meta-data h3:hover, .woocommerce table.cart a.remove:hover, .woocommerce #content table.cart a.remove:hover, .woocommerce-page table.cart a.remove:hover, .woocommerce-page #content table.cart a.remove:hover, td.product-name a:hover, .woocommerce-page #content .quantity .plus:hover, .woocommerce-page #content .quantity .minus:hover, .post-category a:hover, a.custom-like-button.liked, .menu-card-item-stared { color: #00bcdd; } .content-slide-wrap .flex-control-paging li a.flex-active, .content-slide-wrap .flex-control-paging li.flex-active a:before { background: #00bcdd !important; border-color: #00bcdd !important; } #navigation .menu > ul > li.mega > ul > li { border-color: #3d3d3d; } .sb-slidebar.sb-right .menu{ border-top: 1px solid #2d2d2d; border-bottom: 1px solid #2d2d2d; } .post-title a:hover { color: #00bcdd !important; } .alt-bg, input[type="submit"], .tagcloud a:hover, .pagination a:hover, .widget_tag_cloud a:hover, .pagination .current, .trigger_load_more .be-button, .trigger_load_more .be-button:hover { background-color: #00bcdd; transition: 0.2s linear all; } .mejs-controls .mejs-time-rail .mejs-time-current , .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current, .woocommerce span.onsale, .woocommerce-page span.onsale, .woocommerce a.add_to_cart_button.button.product_type_simple.added, .woocommerce-page .widget_shopping_cart_content .buttons a.button:hover, .woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover, .woocommerce nav.woocommerce-pagination ul li a:focus, .testimonial-flex-slider .flex-control-paging li a.flex-active, #back-to-top, .be-carousel-nav, .portfolio-carousel .owl-controls .owl-prev:hover, .portfolio-carousel .owl-controls .owl-next:hover, .owl-theme .owl-controls .owl-dot.active span, .owl-theme .owl-controls .owl-dot:hover span, .more-link.style3-button, .view-project-link.style3-button{ background: #00bcdd !important; } .single-page-nav-link.current-section-nav-link { background: #ffffff !important; } .view-project-link.style2-button, .single-page-nav-link.current-section-nav-link { border-color: #00bcdd !important; } .view-project-link.style2-button:hover { background: #00bcdd !important; color: #ffffff !important; } .tagcloud a:hover, .testimonial-flex-slider .flex-control-paging li a.flex-active, .testimonial-flex-slider .flex-control-paging li a { border-color: #00bcdd; } a.be-button.view-project-link, .more-link { border-color: #00bcdd; } .portfolio-container .thumb-bg { background-color: rgba(0,188,221,0.85); } .photostream_overlay, .be-button, .more-link.style3-button, .view-project-link.style3-button, button, input[type="button"], input[type="submit"], input[type="reset"] { background-color: #00bcdd; } input[type="file"]::-webkit-file-upload-button{ background-color: #00bcdd; } .alt-bg-text-color, input[type="submit"], .tagcloud a:hover, .pagination a:hover, .widget_tag_cloud a:hover, .pagination .current, .woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover, .woocommerce nav.woocommerce-pagination ul li a:focus, #back-to-top, .be-carousel-nav, .single_portfolio_close .font-icon, .single_portfolio_back .font-icon, .more-link.style3-button, .view-project-link.style3-button, .trigger_load_more a.be-button, .trigger_load_more a.be-button:hover, .portfolio-carousel .owl-controls .owl-prev:hover .font-icon, .portfolio-carousel .owl-controls .owl-next:hover .font-icon{ color: #ffffff; transition: 0.2s linear all; } .woocommerce .button.alt.disabled { background: #efefef !important; color: #a2a2a2 !important; border: none !important; cursor: not-allowed; } .be-button, input[type="button"], input[type="submit"], input[type="reset"], button { color: #ffffff; transition: 0.2s linear all; } input[type="file"]::-webkit-file-upload-button { color: #ffffff; transition: 0.2s linear all; } .button-shape-rounded #submit, .button-shape-rounded .style2-button.view-project-link, .button-shape-rounded .style3-button.view-project-link, .button-shape-rounded .style2-button.more-link, .button-shape-rounded .style3-button.more-link, .button-shape-rounded .contact_submit { border-radius: 3px; } .button-shape-circular .style2-button.view-project-link, .button-shape-circular .style3-button.view-project-link{ border-radius: 50px; padding: 17px 30px !important; } .button-shape-circular .style2-button.more-link, .button-shape-circular .style3-button.more-link{ border-radius: 50px; padding: 7px 30px !important; } .button-shape-circular .contact_submit, .button-shape-circular #submit{ border-radius: 50px; padding-left: 30px; padding-right: 30px; } .view-project-link.style4-button:hover::after{ border-color : #00bcdd; } .mfp-arrow{ color: #ffffff; transition: 0.2s linear all; -moz-transition: 0.2s linear all; -o-transition: 0.2s linear all; transition: 0.2s linear all; } .portfolio-title a { color: inherit; } .arrow-block .arrow_prev, .arrow-block .arrow_next, .arrow-block .flickity-prev-next-button { background-color: rgb(0,0,0);background-color: rgba(0,0,0,1);} .arrow-border .arrow_prev, .arrow-border .arrow_next, .arrow-border .flickity-prev-next-button { border: 1px solid #000000; } .gallery-info-box-wrap .arrow_prev .font-icon, .gallery-info-box-wrap .arrow_next .font-icon{ color: #ffffff; } .flickity-prev-next-button .arrow{ fill: #ffffff; } .arrow-block .arrow_prev:hover, .arrow-block .arrow_next:hover, .arrow-block .flickity-prev-next-button:hover { background-color: rgb(0,0,0);background-color: rgba(0,0,0,1);} .arrow-border .arrow_prev:hover, .arrow-border .arrow_next:hover, .arrow-border .flickity-prev-next-button:hover { border: 1px solid #000000; } .gallery-info-box-wrap .arrow_prev:hover .font-icon, .gallery-info-box-wrap .arrow_next:hover .font-icon{ color: #ffffff; } .flickity-prev-next-button:hover .arrow{ fill: #ffffff; } #back-to-top.layout-border, #back-to-top.layout-border-header-top { right: 50px; bottom: 50px; } .layout-border .fixed-sidebar-page #right-sidebar.active-fixed { right: 30px; } body.header-transparent.admin-bar .layout-border #header #header-inner-wrap.no-transparent.top-animate, body.sticky-header.admin-bar .layout-border #header #header-inner-wrap.no-transparent.top-animate { top: 62px; } body.header-transparent .layout-border #header #header-inner-wrap.no-transparent.top-animate, body.sticky-header .layout-border #header #header-inner-wrap.no-transparent.top-animate { top: 30px; } body.header-transparent.admin-bar .layout-border.layout-border-header-top #header #header-inner-wrap.no-transparent.top-animate, body.sticky-header.admin-bar .layout-border.layout-border-header-top #header #header-inner-wrap.no-transparent.top-animate { top: 32px; z-index: 15; } body.header-transparent .layout-border.layout-border-header-top #header #header-inner-wrap.no-transparent.top-animate, body.sticky-header .layout-border.layout-border-header-top #header #header-inner-wrap.no-transparent.top-animate { top: 0px; z-index: 15; } body.header-transparent .layout-border #header #header-inner-wrap.no-transparent #header-wrap, body.sticky-header .layout-border #header #header-inner-wrap.no-transparent #header-wrap { margin: 0px 30px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; position: relative; } .mfp-content.layout-border img { padding: 70px 0px 70px 0px; } body.admin-bar .mfp-content.layout-border img { padding: 102px 0px 70px 0px; } .mfp-content.layout-border .mfp-bottom-bar { margin-top: -60px; } body .mfp-content.layout-border .mfp-close { top: 30px; } body.admin-bar .mfp-content.layout-border .mfp-close { top: 62px; } pre { background-image: -webkit-repeating-linear-gradient(top, #FFFFFF 0px, #FFFFFF 30px, #fafbfd 24px, #fafbfd 56px); background-image: -moz-repeating-linear-gradient(top, #FFFFFF 0px, #FFFFFF 30px, #fafbfd 24px, #fafbfd 56px); background-image: -ms-repeating-linear-gradient(top, #FFFFFF 0px, #FFFFFF 30px, #fafbfd 24px, #fafbfd 56px); background-image: -o-repeating-linear-gradient(top, #FFFFFF 0px, #FFFFFF 30px, #fafbfd 24px, #fafbfd 56px); background-image: repeating-linear-gradient(top, #FFFFFF 0px, #FFFFFF 30px, #fafbfd 24px, #fafbfd 56px); display: block; line-height: 28px; margin-bottom: 50px; overflow: auto; padding: 0px 10px; border:1px solid #eeeeee; } .post-title a{ color: inherit; } /*Animated link Typography*/ .be-sidemenu, .special-header-menu a::before{ background-color: rgb(26,26,26);background-color: rgba(26,26,26,1);} /*For normal styles add the padding in top and bottom*/ .be-themes-layout-layout-border .be-sidemenu, .be-themes-layout-layout-border .be-sidemenu, .be-themes-layout-layout-border-header-top .be-sidemenu, .be-themes-layout-layout-border-header-top .be-sidemenu{ padding: 30px 0px; box-sizing: border-box; } /*For center-align and left-align overlay, add padding to all sides*/ .be-themes-layout-layout-border.overlay-left-align-menu .be-sidemenu, .be-themes-layout-layout-border.overlay-center-align-menu .be-sidemenu, .be-themes-layout-layout-border-header-top.overlay-left-align-menu .be-sidemenu, .be-themes-layout-layout-border-header-top.overlay-center-align-menu .be-sidemenu{ padding: 30px; box-sizing: border-box; } .be-themes-layout-layout-border-header-top .be-sidemenu{ padding-top: 0px; } body.perspective-left.perspectiveview, body.perspective-right.perspectiveview{ background-color: rgb(26,26,26);background-color: rgba(26,26,26,1);} body.left-header.perspective-right.perspectiveview{ background-color: rgb(8,8,8);background-color: rgba(8,8,8,0.90);} body.perspective-left .be-sidemenu, body.perspective-right .be-sidemenu{ background-color : transparent; } /*Portfolio navigation*/ .loader-style1-double-bounce1, .loader-style1-double-bounce2, .loader-style2-wrap, .loader-style3-wrap > div, .loader-style5-wrap .dot1, .loader-style5-wrap .dot2, #nprogress .bar { background: #00bcdd !important; } .loader-style4-wrap { border-top: 7px solid rgba(0, 188, 221 , 0.3); border-right: 7px solid rgba(0, 188, 221 , 0.3); border-bottom: 7px solid rgba(0, 188, 221 , 0.3); border-left-color: #00bcdd; } #nprogress .spinner-icon { border-top-color: #00bcdd !important; border-left-color: #00bcdd !important; } #nprogress .peg { box-shadow: 0 0 10px #00bcdd, 0 0 5px #00bcdd !important; } .style1 #navigation, .style3 #navigation, .style4 #navigation, .style5 #navigation, #header-controls-left, #header-controls-right, #header-wrap, .mobile-nav-controller-wrap, #left-header-mobile .header-cart-controls, .style6 #navigation-left-side, .style6 #navigation-right-side, .style7 #navigation{ line-height: 66px; } body.header-transparent #header-wrap #navigation, body.header-transparent #header-wrap #navigation-left-side, body.header-transparent #header-wrap #navigation-right-side, body.header-transparent #header-inner-wrap .header-controls, body.header-transparent #header-inner-wrap #header-controls-left, body.header-transparent #header-inner-wrap #header-controls-right, body.header-transparent #header-inner-wrap #header-wrap, body.header-transparent #header-inner-wrap .mobile-nav-controller-wrap { line-height: 66px; } body #header-inner-wrap.top-animate #navigation, body #header-inner-wrap.top-animate #navigation-left-side, body #header-inner-wrap.top-animate #navigation-right-side, body #header-inner-wrap.top-animate .header-controls, body #header-inner-wrap.top-animate #header-wrap, body #header-inner-wrap.top-animate #header-controls-right, body #header-inner-wrap.top-animate #header-controls-left { line-height: 66px; } .header-transparent #content.page-split-screen-left, .header-transparent #content.page-split-screen-right{ } #navigation-left-side { padding-right: 90.5px; } #navigation-right-side { padding-left: 90.5px; } #bbpress-forums li.bbp-body ul.forum, #bbpress-forums li.bbp-body ul.topic { border-top: 1px solid #eeeeee; } #bbpress-forums ul.bbp-lead-topic, #bbpress-forums ul.bbp-topics, #bbpress-forums ul.bbp-forums, #bbpress-forums ul.bbp-replies, #bbpress-forums ul.bbp-search-results { border: 1px solid #eeeeee; } #bbpress-forums li.bbp-header, #bbpress-forums li.bbp-footer, .menu-card-item.highlight-menu-item { background: #fafbfd; } #bbpress-forums .topic .bbp-topic-meta a:hover, .bbp-forum-freshness a:hover, .bbp-topic-freshness a:hover, .bbp-header .bbp-reply-content a:hover, .bbp-topic-tags a:hover, .bbp-breadcrumb a:hover, .bbp-forums-list a:hover { color: #00bcdd; } div.bbp-reply-header, .bar-style-related-posts-list, .menu-card-item { border-color: #eeeeee; } #evcal_list .eventon_list_event .evcal_desc span.evcal_event_title, .eventon_events_list .evcal_event_subtitle { padding-bottom: 10px !important; } .eventon_events_list .eventon_list_event .evcal_desc, .evo_pop_body .evcal_desc, #page-content p.evcal_desc { padding-left: 100px !important; } .evcal_evdata_row { background: #fafbfd !important; } .eventon_events_list .eventon_list_event .event_description { background: #fafbfd !important; border-color: #eeeeee !important; } .bordr, #evcal_list .bordb { border-color: #eeeeee !important; } .evcal_evdata_row .evcal_evdata_cell h3 { margin-bottom: 10px !important; } /**** Be single portfolio - overflow images ****/ /* Optiopn Panel Css */ /********************************************** *** FORMS **********************************************/ .mc4wp-form input {height: 50px;} .wpcf7-form textarea { height: 100px; } .wpcf7-submit { height: 50px; } input[type="submit"] { border-radius: 2px; cursor: pointer; } input.wpcf7-form-control.wpcf7-submit.be-button { border: 2px solid; } .hbspt-form label { color: #fff; } .hbspt-form .input { padding-bottom: 15px; } #hsForm_1692b5bd-5639-41c0-9e31-af463bc55211 .actions input[type="submit"], #hsForm_4b36f79d-3c51-4938-bd29-6b08acce3c48 .actions input[type="submit"]{ background-color: #00bcdd; } .actions input[type="submit"] { background-color: #323840; } /********************************************** *** TEAM **********************************************/ .team-description { font-weight: bold; } .speaker-details-circle img { border-radius: 50%; } .speaker-social-icons { margin-bottom: 15px; } /********************************************** *** GENERAL **********************************************/ // .odsc__box-shadow { // box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5); // } .flip-wrap { box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5); } .pricing-table li.pricing-button .be-button { border-radius: 2px; } .color-white { color: #fff; } span.top-bar-widgets { font-size: 105%; font-weight: bold; } .be-nav-link-effect-1 a::after { top: 140%; } .myTable { background-color:#fff;border-collapse:collapse; } .myTable th { background-color:#fff;color:white;width:50%; } .myTable td, .myTable th { padding:5px;border:1px solid #fff; } .menu-card-item-price { line-height: 12px !important; top: 50%; transform: translateY(-50%); width: 40%; } a#back-to-top { border-radius: 4px; border: solid #323840 2px; } @media (min-width: 60rem) { .ai-max-width { max-width: 50rem; margin: 0 auto !important; } } .icon-quote { transform: scaleX(-1) scaleY(-1); } /********************************************** *** MASTERCLASS **********************************************/ .masterclass-hero { color: #fff; text-align: center; max-width: 900px; margin: auto; } @media (min-width: 60rem) { .masterclass-countdown { max-width: 600px; margin: 0 auto !important; } } .masterclass-countdown .countdown-amount { font-size: 45px; } /* Mobile 480 */ @media (max-width: 60rem) { h3.masterclass-hero { font-size: 20px; line-height: 30px; } h4.masterclass-hero { font-size: 16px; } } .white-border { border-right: 3px solid #00bcdd; } .max-width-text { max-width: 100px; margin: 0px auto; } @media (min-width: 60rem) { .max-width-text-main { max-width: 800px; margin: 0px auto !important; } } /* Partnering */ .partnering-white-text { color: #fff; line-height: 1.7; font-weight: bold; font-size: 14pt; } /********************************************** *** ACORDIANS **********************************************/ .accordion .accordion-head { border-bottom: 1px solid; padding-bottom: 1%; } /********************************************** *** BLOG **********************************************/ .display-none { display: none; } .page-id-1424 #header-wrap, .page-id-10 #header-wrap, .page-id-267 #header-wrap, .page-id-1296 #header-wrap, .page-id-1836 #header-wrap, .page-id-218 #header-wrap, .page-id-264 #header-wrap, .page-id-2275 #header-wrap, .home #header-wrap, .search #header-wrap, .post-template-default #header-wrap, .blog #header-wrap, .archive #header-wrap { display: none; } .blog .post-thumb a:hover { border: 2px solid; } /********************************************** *** PORTFILIO **********************************************/ .portfolio .thumb-title-wrap .thumb-title { line-height: 20px; } span.speaker-name { color: #fff; } .speaker-company { text-transform: none; font-size: 75%; color: #323840; } .portfolio hr { margin-bottom: 15px; border-color: #323840; } </style><meta name="onesignal" content="wordpress-plugin"/> <script> window.OneSignal = window.OneSignal || []; OneSignal.push( function() { OneSignal.SERVICE_WORKER_UPDATER_PATH = "OneSignalSDKUpdaterWorker.js.php"; OneSignal.SERVICE_WORKER_PATH = "OneSignalSDKWorker.js.php"; OneSignal.SERVICE_WORKER_PARAM = { scope: "/" }; OneSignal.setDefaultNotificationUrl("https://odsc.com"); var oneSignal_options = {}; window._oneSignalInitOptions = oneSignal_options; oneSignal_options['wordpress'] = true; oneSignal_options['appId'] = 'aef7b140-4d2b-469f-add6-67112f54e19c'; oneSignal_options['allowLocalhostAsSecureOrigin'] = true; oneSignal_options['welcomeNotification'] = { }; oneSignal_options['welcomeNotification']['title'] = ""; oneSignal_options['welcomeNotification']['message'] = ""; oneSignal_options['path'] = "https://odsc.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/"; oneSignal_options['promptOptions'] = { }; oneSignal_options['notifyButton'] = { }; oneSignal_options['notifyButton']['enable'] = true; oneSignal_options['notifyButton']['position'] = 'bottom-right'; oneSignal_options['notifyButton']['theme'] = 'default'; oneSignal_options['notifyButton']['size'] = 'medium'; oneSignal_options['notifyButton']['showCredit'] = true; oneSignal_options['notifyButton']['text'] = {}; OneSignal.init(window._oneSignalInitOptions); OneSignal.showNativePrompt(); }); function documentInitOneSignal() { var oneSignal_elements = document.getElementsByClassName("OneSignal-prompt"); var oneSignalLinkClickHandler = function(event) { OneSignal.push(['registerForPushNotifications']); event.preventDefault(); }; for(var i = 0; i < oneSignal_elements.length; i++) oneSignal_elements[i].addEventListener('click', oneSignalLinkClickHandler, false); } if (document.readyState === 'complete') { documentInitOneSignal(); } else { window.addEventListener("load", function(event){ documentInitOneSignal(); }); } </script> <script>function initApollo(){var n=Math.random().toString(36).substring(7),o=document.createElement("script"); o.src="https://assets.apollo.io/micro/website-tracker/tracker.iife.js?nocache="+n,o.async=!0,o.defer=!0, o.onload=function(){window.trackingFunctions.onLoad({appId:"6631283d8cd2f401c74bd616"})}, document.head.appendChild(o)}initApollo();</script> <script type="text/javascript" src="https://addevent.com/libs/atc/1.6.1/atc.min.js" async defer></script><meta name="google-site-verification" content="mkcmvYzbHoP3pfxm_tVOMEGp0yhOe2G47zBsS01bPGs" /> <script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"25050152"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script> <script charset="utf-8" src="https://js.hubspot.com/forms/current.js"></script> <!-- DO NOT MODIFY --> <!-- Quora Pixel Code (JS Helper) --> <script> !function(q,e,v,n,t,s){if(q.qp) return; n=q.qp=function(){n.qp?n.qp.apply(n,arguments):n.queue.push(arguments);}; n.queue=[];t=document.createElement(e);t.async=!0;t.src=v; s=document.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s);}(window, 'script', 'https://a.quora.com/qevents.js'); qp('init', '8ad753e5bebf4fb58db2eb33a263c02d'); qp('track', 'ViewContent'); </script> <noscript><img height="1" width="1" style="display:none" src="https://q.quora.com/_/ad/8ad753e5bebf4fb58db2eb33a263c02d/pixel?tag=ViewContent&noscript=1"/></noscript> <!-- End of Quora Pixel Code --><style rel="stylesheet" id="typehub-output">h1,.h1{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:700;font-style:normal;text-transform:none;font-size:55px;line-height:70px;letter-spacing:0;color:#515151}h2,.h2{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:700;font-style:normal;text-transform:none;font-size:42px;line-height:63px;letter-spacing:0;color:#515151}h3,.h3{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:700;font-style:normal;text-transform:none;font-size:35px;line-height:52px;letter-spacing:1px;color:#515151}h4,.woocommerce-order-received .woocommerce h2,.woocommerce-order-received .woocommerce h3,.woocommerce-view-order .woocommerce h2,.woocommerce-view-order .woocommerce h3,.h4{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:26px;line-height:42px;letter-spacing:0;color:#515151}h5,#reply-title,.h5{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:20px;line-height:36px;letter-spacing:0;color:#515151}h6,.testimonial-author-role.h6-font,.menu-card-title,.menu-card-item-price,.slider-counts,.woocommerce-MyAccount-navigation ul li,a.bbp-forum-title,#bbpress-forums fieldset.bbp-form label,.bbp-topic-title a.bbp-topic-permalink,#bbpress-forums ul.forum-titles li,#bbpress-forums ul.bbp-replies li.bbp-header,.h6{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:15px;line-height:32px;letter-spacing:0;color:#515151}body,.special-heading-wrap .caption-wrap .body-font,.woocommerce .woocommerce-ordering select.orderby,.woocommerce-page .woocommerce-ordering select.orderby,.body{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:18px;line-height:26px;letter-spacing:0;color:#5f6263}.page-title-module-custom .page-title-custom,h6.portfolio-title-nav{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:uppercase;font-size:18px;line-height:36px;letter-spacing:3px;color:#515151}.sub-title,.special-subtitle,.sub_title{font-family:"Crimson Text",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;text-transform:none;font-size:15px;letter-spacing:0}#footer{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:14px;line-height:14px;letter-spacing:0;color:#fff}.special-header-menu .menu-container,#navigation .mega .sub-menu .highlight .sf-with-ul,#navigation,.style2 #navigation,.style13 #navigation,#navigation-left-side,#navigation-right-side,.sb-left #slidebar-menu,.header-widgets,.header-code-widgets,body #header-inner-wrap.top-animate.style2 #navigation,.top-overlay-menu .sb-right #slidebar-menu{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:600;font-style:normal;text-transform:uppercase;font-size:16px;line-height:51px;letter-spacing:1px;color:#00bcdd}.special-header-menu .menu-container .sub-menu,.special-header-menu .sub-menu,#navigation .sub-menu,#navigation .children,#navigation-left-side .sub-menu,#navigation-left-side .children,#navigation-right-side .sub-menu,#navigation-right-side .children,.sb-left #slidebar-menu .sub-menu,.top-overlay-menu .sb-right #slidebar-menu .sub-menu{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:16px;line-height:28px;letter-spacing:0;color:#bbb}ul#mobile-menu a,ul#mobile-menu li.mega ul.sub-menu li.highlight>:first-child{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:uppercase;font-size:12px;line-height:40px;letter-spacing:1px;color:#fff}ul#mobile-menu ul.sub-menu a{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:13px;line-height:27px;letter-spacing:0;color:#bbb}.top-right-sliding-menu .sb-right ul#slidebar-menu li,.sb-right #slidebar-menu .mega .sub-menu .highlight .sf-with-ul{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:uppercase;font-size:16px;line-height:50px;letter-spacing:1px;color:#fff}.top-right-sliding-menu .sb-right #slidebar-menu ul.sub-menu li{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:16px;line-height:25px;letter-spacing:0;color:#fff}.ui-tabs-anchor,.accordion .accordion-head,.skill-wrap .skill_name,.chart-wrap span,.animate-number-wrap h6 span,.woocommerce-tabs .tabs li a,.be-countdown{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:600;font-style:normal;letter-spacing:0}.ui-tabs-anchor{text-transform:uppercase;font-size:13px;line-height:17px}.accordion .accordion-head{text-transform:uppercase;font-size:18px;line-height:17px}.skill-wrap .skill_name{text-transform:none;font-size:20px;line-height:17px}.countdown-amount{text-transform:uppercase;font-size:55px;line-height:95px}.countdown-section{text-transform:uppercase;font-size:15px;line-height:30px}.testimonial_slide .testimonial-content{font-family:"Crimson Text",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;text-transform:none;letter-spacing:0}.tweet-slides .tweet-content{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;text-transform:none;letter-spacing:0}.tatsu-button,.be-button,.woocommerce a.button,.woocommerce-page a.button,.woocommerce button.button,.woocommerce-page button.button,.woocommerce input.button,.woocommerce-page input.button,.woocommerce #respond input#submit,.woocommerce-page #respond input#submit,.woocommerce #content input.button,.woocommerce-page #content input.button,input[type="submit"],.more-link.style1-button,.more-link.style2-button,.more-link.style3-button,input[type="button"],input[type="submit"],input[type="reset"],button,input[type="file"]::-webkit-file-upload-button{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif}.oshine-animated-link,.view-project-link.style4-button{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;text-transform:none;letter-spacing:0}.thumb-title-wrap .thumb-title,.full-screen-portfolio-overlay-title{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:30px}.thumb-title-wrap .portfolio-item-cats{font-size:12px;line-height:17px}h6.gallery-side-heading{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:15px;line-height:32px;letter-spacing:0;color:#515151}.portfolio-details .gallery-side-heading-wrap p{font-family:"Raleway",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;font-size:13px;line-height:26px}a.navigation-previous-post-link,a.navigation-next-post-link{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:700;font-style:normal;font-size:13px;line-height:20px}#portfolio-title-nav-bottom-wrap h6,#portfolio-title-nav-bottom-wrap .slider-counts{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;font-size:15px}.attachment-details-custom-slider{font-family:"Crimson Text",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size:15px;line-height:15px;color:}.filters .filter_item{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;font-size:12px;line-height:32px;color:#222}.woocommerce ul.products li.product .product-meta-data h3,.woocommerce-page ul.products li.product .product-meta-data h3,.woocommerce ul.products li.product h3,.woocommerce-page ul.products li.product h3,.woocommerce ul.products li.product .product-meta-data .woocommerce-loop-product__title,.woocommerce-page ul.products li.product .product-meta-data .woocommerce-loop-product__title,.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce-page ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product-category .woocommerce-loop-category__title,.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:uppercase;font-size:13px;line-height:27px;letter-spacing:1px;color:#222}.woocommerce-page.single.single-product #content div.product h1.product_title.entry-title{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:25px;line-height:27px;letter-spacing:0;color:#222}.post-title,.post-date-wrap{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:20px;line-height:40px;letter-spacing:0;color:#000}.style3-blog .post-title,.style8-blog .post-title{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:16px;line-height:28px;letter-spacing:0;color:#363c3b}.post-meta.post-top-meta-typo,.style8-blog .post-meta.post-category a,.hero-section-blog-categories-wrap a{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;text-transform:uppercase;font-size:12px;line-height:24px;letter-spacing:0;color:#757575}.post-nav li,.style8-blog .post-meta.post-date,.style8-blog .post-bottom-meta-wrap,.hero-section-blog-bottom-meta-wrap{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;text-transform:uppercase;font-size:12px;line-height:24px;letter-spacing:0;color:#757575}.single-post .post-title,.single-post .style3-blog .post-title,.single-post .style8-blog .post-title{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:20px;line-height:40px;letter-spacing:0;color:#000}.sidebar-widgets h6{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:uppercase;font-size:18px;line-height:22px;letter-spacing:1px;color:#333}.sidebar-widgets{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:16px;line-height:24px;letter-spacing:0;color:#606060}.sb-slidebar .widget h6{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:16px;line-height:22px;letter-spacing:1px;color:#fff}.sb-slidebar .widget{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:14px;line-height:25px;letter-spacing:0;color:#a2a2a2}#bottom-widgets h6{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:uppercase;font-size:18px;line-height:22px;letter-spacing:1px;color:#474747}#bottom-widgets{font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:16px;line-height:24px;letter-spacing:0;color:#757575}.contact_form_module input[type="text"],.contact_form_module textarea{font-family:"Montserrat",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:400;font-style:normal;text-transform:none;font-size:13px;line-height:26px;letter-spacing:0;color:#222}@media only screen and (max-width:1377px){}@media only screen and (min-width:768px) and (max-width:1024px){}@media only screen and (max-width:767px){}</style><style id = "oshine-typehub-css" type="text/css"> #header-controls-right,#header-controls-left{color:#00bcdd}#be-left-strip .be-mobile-menu-icon span{background-color:#323232}ul#mobile-menu .mobile-sub-menu-controller{line-height :40px }ul#mobile-menu ul.sub-menu .mobile-sub-menu-controller{line-height :27px }.breadcrumbs{color:#515151}.search-box-wrapper.style2-header-search-widget input[type="text"]{font-style:normal;font-weight:400;font-family:Crimson Text}.portfolio-share a.custom-share-button,.portfolio-share a.custom-share-button:active,.portfolio-share a.custom-share-button:hover,.portfolio-share a.custom-share-button:visited{color:#515151}.more-link.style2-button{color:#000 !important;border-color:#000 !important}.style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button,.style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button:active,.style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button:hover,.style8-blog .post-bottom-meta-wrap .be-share-stack a.custom-share-button:visited{color:#757575}.hero-section-blog-categories-wrap a,.hero-section-blog-categories-wrap a:visited,.hero-section-blog-categories-wrap a:hover,.hero-section-blog-bottom-meta-wrap .hero-section-blog-bottom-meta-wrap a,.hero-section-blog-bottom-meta-wrap a:visited,.hero-section-blog-bottom-meta-wrap a:hover,.hero-section-blog-bottom-meta-wrap{color :#000}#navigation .mega .sub-menu .highlight .sf-with-ul{color:#bbb !important;line-height:1.5}.view-project-link.style4-button{color :#515151}.related.products h2,.upsells.products h2,.cart-collaterals .cross-sells h2,.cart_totals h2,.shipping_calculator h2,.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3,.shipping_calculator h2,#order_review_heading,.woocommerce .page-title{font-family:Montserrat;font-weight:400}.woocommerce form .form-row label,.woocommerce-page form .form-row label{color:#515151}.woocommerce-tabs .tabs li a{color:#515151 !important}#bbpress-forums ul.forum-titles li,#bbpress-forums ul.bbp-replies li.bbp-header{line-height:inherit;letter-spacing:inherit;text-transform:uppercase;font-size:inherit}#bbpress-forums .topic .bbp-topic-meta a,.bbp-forum-freshness a,.bbp-topic-freshness a,.bbp-header .bbp-reply-content a,.bbp-topic-tags a,.bbp-breadcrumb a,.bbp-forums-list a{color:#515151}.ajde_evcal_calendar .calendar_header p,.eventon_events_list .eventon_list_event .evcal_cblock{font-family:Source Sans Pro !important}.eventon_events_list .eventon_list_event .evcal_desc span.evcal_desc2,.evo_pop_body .evcal_desc span.evcal_desc2{font-family:Source Sans Pro !important;font-size:14px !important;text-transform:none}.eventon_events_list .eventon_list_event .evcal_desc span.evcal_event_subtitle,.evo_pop_body .evcal_desc span.evcal_event_subtitle,.evcal_evdata_row .evcal_evdata_cell p,#evcal_list .eventon_list_event p.no_events{text-transform:none !important;font-family:Source Sans Pro !important;font-size:inherit !important} </style><style rel="stylesheet" id="colorhub-output">.swatch-red, .swatch-red a{color:#f44336;}.swatch-pink, .swatch-pink a{color:#E91E63;}.swatch-purple, .swatch-purple a{color:#9C27B0;}.swatch-deep-purple, .swatch-deep-purple a{color:#673AB7;}.swatch-indigo, .swatch-indigo a{color:#3F51B5;}.swatch-blue, .swatch-blue a{color:#2196F3;}.swatch-light-blue, .swatch-light-blue a{color:#03A9F4;}.swatch-cyan, .swatch-cyan a{color:#00BCD4;}.swatch-teal, .swatch-teal a{color:#009688;}.swatch-green, .swatch-green a{color:#4CAF50;}.swatch-light-green, .swatch-light-green a{color:#8BC34A;}.swatch-lime, .swatch-lime a{color:#CDDC39;}.swatch-yellow, .swatch-yellow a{color:#FFEB3B;}.swatch-amber, .swatch-amber a{color:#FFC107;}.swatch-orange, .swatch-orange a{color:#FF9800;}.swatch-deep-orange, .swatch-deep-orange a{color:#FF5722;}.swatch-brown, .swatch-brown a{color:#795548;}.swatch-grey, .swatch-grey a{color:#9E9E9E;}.swatch-blue-grey, .swatch-blue-grey a{color:#607D8B;}.swatch-white, .swatch-white a{color:#ffffff;}.swatch-black, .swatch-black a{color:#000000;}.palette-0, .palette-0 a{color:#00bcdd;}.palette-1, .palette-1 a{color:#ffffff;}.palette-2, .palette-2 a{color:#222222;}.palette-3, .palette-3 a{color:#888888;}.palette-4, .palette-4 a{color:#fafbfd;}</style><link rel="icon" href="https://odsc.com/wp-content/uploads/2022/03/cropped-faviODSC-32x32.png" sizes="32x32" /><link rel="icon" href="https://odsc.com/wp-content/uploads/2022/03/cropped-faviODSC-192x192.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://odsc.com/wp-content/uploads/2022/03/cropped-faviODSC-180x180.png" /><meta name="msapplication-TileImage" content="https://odsc.com/wp-content/uploads/2022/03/cropped-faviODSC-270x270.png" /> <!-- Fonts Plugin CSS - https://fontsplugin.com/ --> <style> /* Cached: November 26, 2024 at 8:37am */ /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOiCnqEu92Fr1Mu51QrEz0dL_nz.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOiCnqEu92Fr1Mu51QrEzQdL_nz.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOiCnqEu92Fr1Mu51QrEzwdL_nz.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOiCnqEu92Fr1Mu51QrEzMdL_nz.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOiCnqEu92Fr1Mu51QrEz8dL_nz.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOiCnqEu92Fr1Mu51QrEz4dL_nz.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOiCnqEu92Fr1Mu51QrEzAdLw.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzI.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51S7ACc3CsTKlA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51S7ACc-CsTKlA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51S7ACc2CsTKlA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51S7ACc5CsTKlA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51S7ACc1CsTKlA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51S7ACc0CsTKlA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51S7ACc6CsQ.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TLBCc3CsTKlA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TLBCc-CsTKlA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TLBCc2CsTKlA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TLBCc5CsTKlA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TLBCc1CsTKlA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TLBCc0CsTKlA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TLBCc6CsQ.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1MmgVxFIzIFKw.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1MmgVxMIzIFKw.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1MmgVxEIzIFKw.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1MmgVxLIzIFKw.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1MmgVxHIzIFKw.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1MmgVxGIzIFKw.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1MmgVxIIzI.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2'); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; } /* vietnamese */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Roboto'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } :root { --font-base: Roboto; --font-headings: Roboto; --font-input: Roboto; } body, #content, .entry-content, .post-content, .page-content, .post-excerpt, .entry-summary, .entry-excerpt, .widget-area, .widget, .sidebar, #sidebar, footer, .footer, #footer, .site-footer { font-family: "Roboto"; } #site-title, .site-title, #site-title a, .site-title a, .entry-title, .entry-title a, h1, h2, h3, h4, h5, h6, .widget-title, .elementor-heading-title { font-family: "Roboto"; } button, .button, input, select, textarea, .wp-block-button, .wp-block-button__link { font-family: "Roboto"; } </style> <!-- Fonts Plugin CSS --> <script> var $container = jQuery('#odsc-tickets'); // on any group click jQuery(document).ready(function(){ jQuery('.grouptickets a').on('click', function (event) { // event && event.preventDefault(); jQuery('#ConferenceTrainingPass').removeClass('groups__group--active'); jQuery('#GroupDiscount').addClass('groups__group--active'); var groupId = "448495d313a47d19c70c96abe7e016b1"; var groupId2 = "70a2bbafefa0ca05dbb0ca678b54582c"; jQuery('.group-content[data-group="'+groupId2+'"]').removeClass("group-content--visible"); jQuery('.group-content[data-group="'+groupId+'"]').addClass("group-content--visible"); // click on subtabs if (jQuery('.group-content__subtab__tab--active:visible').length) { jQuery('.group-content__subtab__tab--active:visible').click(); } else { jQuery('.group-content__subtab__tab:visible:eq(0)').click(); } }); }); </script> <script> var $container = jQuery('#odsc-tickets'); // on any group click jQuery(document).ready(function(){ jQuery('.grouptickets a').on('click', function (event) { // event && event.preventDefault(); jQuery('#BusinessPass').removeClass('groups__group--active'); jQuery('#GroupDiscount').addClass('groups__group--active'); var groupId = "448495d313a47d19c70c96abe7e016b1"; var groupId2 = "d7dca3a8be000a1541cd17e46dc4b9ba"; jQuery('.group-content[data-group="'+groupId2+'"]').removeClass("group-content--visible"); jQuery('.group-content[data-group="'+groupId+'"]').addClass("group-content--visible"); // click on subtabs if (jQuery('.group-content__subtab__tab--active:visible').length) { jQuery('.group-content__subtab__tab--active:visible').click(); } else { jQuery('.group-content__subtab__tab:visible:eq(0)').click(); } }); }); jQuery(document).ready(function(){ jQuery('.trainingtickets a').on('click', function (event) { // event && event.preventDefault(); jQuery('#BusinessPass').removeClass('groups__group--active'); jQuery('#ConferenceTrainingPass').addClass('groups__group--active'); jQuery('#GroupDiscount').removeClass('groups__group--active'); var groupId = "70a2bbafefa0ca05dbb0ca678b54582c"; var groupId2 = "d7dca3a8be000a1541cd17e46dc4b9ba"; var groupId3 = "448495d313a47d19c70c96abe7e016b1"; jQuery('.group-content[data-group="'+groupId2+'"]').removeClass("group-content--visible"); jQuery('.group-content[data-group="'+groupId3+'"]').removeClass("group-content--visible"); jQuery('.group-content[data-group="'+groupId+'"]').addClass("group-content--visible"); // click on subtabs if (jQuery('.group-content__subtab__tab--active:visible').length) { jQuery('.group-content__subtab__tab--active:visible').click(); } else { jQuery('.group-content__subtab__tab:visible:eq(0)').click(); } }); }); </script> <script src="https://d3js.org/d3.v3.min.js"></script></head><body data-rsssl=1 class="archive category category-deep-learning category-24 cookies-not-set sticky-header header-solid no-section-scroll top-header none be-themes-layout-layout-wide button-shape-rounded opt-panel-cache-on mprm_ie" data-be-site-layout='layout-wide' data-be-page-template = 'page' ><div class="search-box-wrapper style2-header-search-widget"> <a href="#" class="header-search-form-close"><i class="icon-icon_close font-icon"></i></a><div class="search-box-inner1"><div class="search-box-inner2"></div></div></div><div id="main-wrapper" ><div id="main" class="ajaxable layout-wide" ><header id="header"><div id="header-top-bar"><div id="header-top-bar-wrap" class=" clearfix"><div id="header-top-bar-left"> <span class="top-bar-widgets">Open Data Science Conference</span></div><div id="header-top-bar-right"><div class="topbar-menu-container"><ul id="topbar-menu" class="clearfix"><li id="menu-item-35199" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-35199"><a href="/boston/bootcamp/" title="AI Bootcamp">AI Bootcamp</a></li><li id="menu-item-40495" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-40495"><a href="/boston" title="EAST">EAST</a></li><li id="menu-item-45816" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-45816"><a href="/europe" title="EUROPE">EUROPE</a></li><li id="menu-item-19686" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19686"><a href="/apac" title="APAC">APAC</a></li><li id="menu-item-633" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-633"><a href="https://odsc.com/california/" title="WEST">WEST</a></li><li id="menu-item-52199" class="nomob menu-item menu-item-type-custom menu-item-object-custom menu-item-52199"><a href="https://aiplus.training/" title="Ai+">Ai+</a></li><li id="menu-item-642" class="nomob menu-item menu-item-type-custom menu-item-object-custom menu-item-642"><a href="https://opendatascience.com" title="Blog">Blog</a></li><li id="menu-item-41261" class="nomob menu-item menu-item-type-custom menu-item-object-custom menu-item-41261"><a href="/boston/partner-odsc-east/" title="Partners">Partners</a></li><li id="menu-item-1102" class="nomob menu-item menu-item-type-custom menu-item-object-custom menu-item-1102"><a href="https://jobs.opendatascience.com/" title="Jobs">Jobs</a></li><li id="menu-item-60037" class="nomob menu-item menu-item-type-custom menu-item-object-custom menu-item-60037"><a href="/podcast" title="Podcast">Podcast</a></li><li id="menu-item-644" class="nomob menu-item menu-item-type-custom menu-item-object-custom menu-item-644"><a href="https://opendatascience.com/newsletter/" title="Newsletter">Newsletter</a></li><li id="menu-item-632" class="nomob menu-item menu-item-type-post_type menu-item-object-page menu-item-632"><a href="https://odsc.com/about-open-data-science-conference/" title="About">About</a></li><li class="menu-item menu-item-gtranslate menu-item-has-children notranslate"><a href="#" data-gt-lang="en" class="gt-current-wrapper notranslate"><img src="https://odsc.com/wp-content/plugins/gtranslate/flags/svg/en.svg" width="16" height="16" alt="en" loading="lazy"></a><ul class="dropdown-menu sub-menu"><li class="menu-item menu-item-gtranslate-child"><a href="#" data-gt-lang="en" class="gt-current-lang notranslate"><img src="https://odsc.com/wp-content/plugins/gtranslate/flags/svg/en.svg" width="16" height="16" alt="en" loading="lazy"></a></li><li class="menu-item menu-item-gtranslate-child"><a href="#" data-gt-lang="fr" class="notranslate"><img src="https://odsc.com/wp-content/plugins/gtranslate/flags/svg/fr.svg" width="16" height="16" alt="fr" loading="lazy"></a></li><li class="menu-item menu-item-gtranslate-child"><a href="#" data-gt-lang="de" class="notranslate"><img src="https://odsc.com/wp-content/plugins/gtranslate/flags/svg/de.svg" width="16" height="16" alt="de" loading="lazy"></a></li><li class="menu-item menu-item-gtranslate-child"><a href="#" data-gt-lang="pt" class="notranslate"><img src="https://odsc.com/wp-content/plugins/gtranslate/flags/svg/pt-br.svg" width="16" height="16" alt="pt" loading="lazy"></a></li><li class="menu-item menu-item-gtranslate-child"><a href="#" data-gt-lang="es" class="notranslate"><img src="https://odsc.com/wp-content/plugins/gtranslate/flags/svg/es.svg" width="16" height="16" alt="es" loading="lazy"></a></li></ul></li></ul></div></div></div></div><div id="header-inner-wrap" class=" style6" ><div id="header-wrap" class=" clearfix" data-default-height="66" data-sticky-height="66"><div class="logo"> <a href="https://odsc.com"><img class="transparent-logo dark-scheme-logo" src="https://odsc.com/wp-content/uploads/2019/04/NewLogo3.png" alt="Open Data Science Conference" /><img class="transparent-logo light-scheme-logo" src="https://odsc.com/wp-content/uploads/2019/04/NewLogo3.png" alt="Open Data Science Conference" /><img class="normal-logo" src="https://odsc.com/wp-content/uploads/2019/04/NewLogo3.png" alt="Open Data Science Conference" /><img class="sticky-logo" src="https://odsc.com/wp-content/uploads/2019/04/NewLogo3.png" alt="Open Data Science Conference" /></a></div><div id="header-controls-right"><div class="mobile-nav-controller-wrap"><div class="menu-controls mobile-nav-controller" title="Mobile Menu Controller"> <span class="be-mobile-menu-icon "> <span class="hamburger-line-1"></span> <span class="hamburger-line-2"></span> <span class="hamburger-line-3"></span> </span></div></div></div><nav id="navigation-left-side" class="clearfix"><div class="menu"><ul id="left-menu" class="clearfix be-nav-link-effect-1"><li id="menu-item-582" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-582"><a href="/boston/conference-tracks/" title="TRACKS">TRACKS</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-44267" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44267"><a href="https://odsc.com/boston/training/" title="Hands-on Training">Hands-on Training</a></li><li id="menu-item-45311" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-45311"><a href="/Boston/bootcamp/" title="AI Bootcamp">AI Bootcamp</a></li><li id="menu-item-102504" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102504"><a href="/boston/machine-learning/" title="Machine Learning">Machine Learning</a></li><li id="menu-item-102456" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102456"><a href="/boston/conference-tracks/" title="Generative AI">Generative AI</a></li><li id="menu-item-102502" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102502"><a href="/boston/conference-tracks/" title="Deep Learning">Deep Learning</a></li><li id="menu-item-87413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-87413"><a href="/boston/conference-tracks/" title="LLMOps & MLOps">LLMOps & MLOps</a></li><li id="menu-item-121655" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121655"><a href="/boston/conference-tracks/" title="What's Next in AI">What’s Next in AI</a></li><li id="menu-item-75117" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75117"><a href="/boston/conference-tracks/" title="AI for Biotech, Pharma & Life Sciences">AI for Biotech, Pharma & Life Sciences</a></li><li id="menu-item-75115" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75115"><a href="/boston/conference-tracks/" title="Large Language Models">Large Language Models</a></li><li id="menu-item-121652" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121652"><a href="/boston/conference-tracks/" title="AI Agents">AI Agents</a></li><li id="menu-item-59541" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-59541"><a href="/boston/conference-tracks/" title="Data Engineering">Data Engineering</a></li><li id="menu-item-121654" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121654"><a href="/boston/conference-tracks/" title="Data Visualisation & Analysis">Data Visualisation & Analysis</a></li><li id="menu-item-121653" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121653"><a href="/boston/conference-tracks/" title="AI Engineering">AI Engineering</a></li></ul></li><li id="menu-item-58317" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-58317"><a href="/boston/bootcamp" title="AI Bootcamp">AI Bootcamp</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-58320" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58320"><a href="/boston/bootcamp/#register" title="Register">Register</a></li><li id="menu-item-58318" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58318"><a href="/boston/bootcamp/#program" title="Program Overview">Program Overview</a></li><li id="menu-item-58319" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58319"><a href="/boston/bootcamp/#instructors" title="Specialization Tracks">Specialization Tracks</a></li><li id="menu-item-58799" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58799"><a href="/boston/team" title="Bring Your Team">Bring Your Team</a></li></ul></li><li id="menu-item-16258" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-16258"><a href="https://odsc.com/boston/why-attend/" title="Attend">Attend</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-104133" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-104133"><a href="/boston/training/" title="Training">Training</a></li><li id="menu-item-122082" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122082"><a href="/boston/virtual" title="Virtual Conference">Virtual Conference</a></li><li id="menu-item-17213" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17213"><a href="/boston/why-attend" title="Why Attend">Why Attend</a></li><li id="menu-item-102702" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102702"><a href="/boston/convince-manager/" title="Convince Your Manager">Convince Your Manager</a></li><li id="menu-item-58798" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58798"><a href="/boston/team" title="Bring Your Team">Bring Your Team</a></li><li id="menu-item-17210" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17210"><a href="/boston/why-attend#attendeeguide" title="Download Attendee Guide">Download Attendee Guide</a></li><li id="menu-item-19368" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19368"><a href="/boston/why-attend#whoattends" title="See Who Attends East">See Who Attends East</a></li></ul></li><li id="menu-item-28157" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-28157"><a href="/boston/schedule-overview/" title="Schedule">Schedule</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-102270" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102270"><a href="/boston/schedule-overview/" title="Schedule Overview">Schedule Overview</a></li><li id="menu-item-44268" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44268"><a href="https://odsc.com/boston/training/" title="East 2025 Training Track">East 2025 Training Track</a></li><li id="menu-item-102670" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102670"><a href="/boston/events/" title="Networking +">Networking +</a></li></ul></li><li id="menu-item-102271" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-102271"><a href="/boston#register" title="Register">Register</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-102272" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102272"><a href="/boston#register" title="Conference Tickets">Conference Tickets</a></li><li id="menu-item-102273" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102273"><a href="/boston/bootcamp" title="Mini-Bootcamp Tickets">Mini-Bootcamp Tickets</a></li><li id="menu-item-102274" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102274"><a href="/boston/team/" title="Bring Your Team">Bring Your Team</a></li><li id="menu-item-102276" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102276"><a href="/code-of-conduct/" title="Code of Conduct">Code of Conduct</a></li></ul></li></ul></div></nav><nav id="navigation-right-side" class="clearfix"><div class="menu"><ul id="right-menu" class="clearfix be-nav-link-effect-1"><li id="menu-item-102801" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-102801"><a href="/boston/speakers/" title="Speakers">Speakers</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-72419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-72419"><a href="/boston/speakers/" title="Previous Speakers">Previous Speakers</a></li><li id="menu-item-42501" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-42501"><a href="/boston/call-for-speakers/" title="Call for Speakers">Call for Speakers</a></li></ul></li><li id="menu-item-81986" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-81986"><a href="/boston/partner-odsc-east/" title="Partners">Partners</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-81987" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-81987"><a href="/boston/partner-odsc-east/#contact" title="Partner with ODSC">Partner with ODSC</a></li><li id="menu-item-102269" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102269"><a href="/boston/expo" title="AI Expo Hall">AI Expo Hall</a></li><li id="menu-item-122143" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122143"><a href="/boston" title="Media and Community Partnership">Media and Community Partnership</a></li></ul></li><li id="menu-item-109906" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-109906"><a href="/boston/aix-east/" title="Ai X">Ai X</a></li><li id="menu-item-102053" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102053"><a href="/boston/expo" title="Expo">Expo</a></li><li id="menu-item-33332" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-33332"><a href="https://odsc.com/boston/faq/" title="Info">Info</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li id="menu-item-119495" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-119495"><a href="/boston#venue" title="Venue & Hotel Rooms">Venue & Hotel Rooms</a></li><li id="menu-item-122412" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122412"><a href="/boston/volunteer/" title="Volunteer Application">Volunteer Application</a></li><li id="menu-item-27852" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27852"><a href="/boston/faq" title="Faqs">Faqs</a></li></ul></li></ul></div></nav></div><div class='header-mobile-navigation clearfix'><div class="mobile-menu left-mobile-menu"><ul id="mobile-menu" class="clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-582"><a href="/boston/conference-tracks/" title="TRACKS">TRACKS</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44267"><a href="https://odsc.com/boston/training/" title="Hands-on Training">Hands-on Training</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-45311"><a href="/Boston/bootcamp/" title="AI Bootcamp">AI Bootcamp</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102504"><a href="/boston/machine-learning/" title="Machine Learning">Machine Learning</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102456"><a href="/boston/conference-tracks/" title="Generative AI">Generative AI</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102502"><a href="/boston/conference-tracks/" title="Deep Learning">Deep Learning</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-87413"><a href="/boston/conference-tracks/" title="LLMOps & MLOps">LLMOps & MLOps</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121655"><a href="/boston/conference-tracks/" title="What's Next in AI">What’s Next in AI</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75117"><a href="/boston/conference-tracks/" title="AI for Biotech, Pharma & Life Sciences">AI for Biotech, Pharma & Life Sciences</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75115"><a href="/boston/conference-tracks/" title="Large Language Models">Large Language Models</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121652"><a href="/boston/conference-tracks/" title="AI Agents">AI Agents</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-59541"><a href="/boston/conference-tracks/" title="Data Engineering">Data Engineering</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121654"><a href="/boston/conference-tracks/" title="Data Visualisation & Analysis">Data Visualisation & Analysis</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-121653"><a href="/boston/conference-tracks/" title="AI Engineering">AI Engineering</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-58317"><a href="/boston/bootcamp" title="AI Bootcamp">AI Bootcamp</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58320"><a href="/boston/bootcamp/#register" title="Register">Register</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58318"><a href="/boston/bootcamp/#program" title="Program Overview">Program Overview</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58319"><a href="/boston/bootcamp/#instructors" title="Specialization Tracks">Specialization Tracks</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58799"><a href="/boston/team" title="Bring Your Team">Bring Your Team</a></li></ul></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-16258"><a href="https://odsc.com/boston/why-attend/" title="Attend">Attend</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-104133"><a href="/boston/training/" title="Training">Training</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122082"><a href="/boston/virtual" title="Virtual Conference">Virtual Conference</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17213"><a href="/boston/why-attend" title="Why Attend">Why Attend</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102702"><a href="/boston/convince-manager/" title="Convince Your Manager">Convince Your Manager</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58798"><a href="/boston/team" title="Bring Your Team">Bring Your Team</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17210"><a href="/boston/why-attend#attendeeguide" title="Download Attendee Guide">Download Attendee Guide</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19368"><a href="/boston/why-attend#whoattends" title="See Who Attends East">See Who Attends East</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-28157"><a href="/boston/schedule-overview/" title="Schedule">Schedule</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102270"><a href="/boston/schedule-overview/" title="Schedule Overview">Schedule Overview</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44268"><a href="https://odsc.com/boston/training/" title="East 2025 Training Track">East 2025 Training Track</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102670"><a href="/boston/events/" title="Networking +">Networking +</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-102271"><a href="/boston#register" title="Register">Register</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102272"><a href="/boston#register" title="Conference Tickets">Conference Tickets</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102273"><a href="/boston/bootcamp" title="Mini-Bootcamp Tickets">Mini-Bootcamp Tickets</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102274"><a href="/boston/team/" title="Bring Your Team">Bring Your Team</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102276"><a href="/code-of-conduct/" title="Code of Conduct">Code of Conduct</a></li></ul></li></ul></div><div class="mobile-menu right-mobile-menu"><ul id="mobile-menu" class="clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-102801"><a href="/boston/speakers/" title="Speakers">Speakers</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-72419"><a href="/boston/speakers/" title="Previous Speakers">Previous Speakers</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-42501"><a href="/boston/call-for-speakers/" title="Call for Speakers">Call for Speakers</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-81986"><a href="/boston/partner-odsc-east/" title="Partners">Partners</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-81987"><a href="/boston/partner-odsc-east/#contact" title="Partner with ODSC">Partner with ODSC</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102269"><a href="/boston/expo" title="AI Expo Hall">AI Expo Hall</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122143"><a href="/boston" title="Media and Community Partnership">Media and Community Partnership</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-109906"><a href="/boston/aix-east/" title="Ai X">Ai X</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102053"><a href="/boston/expo" title="Expo">Expo</a></li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-33332"><a href="https://odsc.com/boston/faq/" title="Info">Info</a> <span class="mobile-sub-menu-controller"><i class="icon-icon_plus"></i></span><ul class="sub-menu clearfix"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-119495"><a href="/boston#venue" title="Venue & Hotel Rooms">Venue & Hotel Rooms</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122412"><a href="/boston/volunteer/" title="Volunteer Application">Volunteer Application</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27852"><a href="/boston/faq" title="Faqs">Faqs</a></li></ul></li></ul></div></div></div></header> <!-- END HEADER --><section id="blog-content" class="no-sidebar-page"><div class="clearfix"></div> <!-- End Page Content --></section><section id="content" class="right-sidebar-page"><div id="content-wrap" class="be-wrap clearfix"><section id="page-content" class="content-single-sidebar"><div class="portfolio-all-wrap"><div class="" data-col="two" data-gutter-width="40" data-showposts="5" data-paged="2" data-action="get_blog" style="margin-left: 0px;" ><div class="clearfix style1-blog"><article id="post-92895" class="element not-wide blog-post clearfix post-92895 post type-post status-publish format-standard has-post-thumbnail hentry category-deep-learning tag-east-2023"><div class="element-inner" style=""><div class="post-content-wrap"><header class="post-header clearfix"><div class="post-thumb"><div class=""> <a href="https://odsc.com/blog/generating-content-based-recommendations-for-millions-of-merchants-and-products/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1.png" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1.png 640w, https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1-300x141.png 300w, https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1-107x50.png 107w, https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1-50x23.png 50w, https://odsc.com/wp-content/uploads/2023/04/deep_averaging_network-1-100x47.png 100w" sizes="(max-width: 640px) 100vw, 640px" /><div class="thumb-overlay"><div class="thumb-bg"><div class="thumb-title fadeIn animated"> <i class="portfolio-ovelay-icon"></i></div></div></div> </a></div></div></header><div class="article-details"><div class="clearfix post-title-section-wrap"><div class="left post-date-wrap"><div>Apr</div><div>25</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/generating-content-based-recommendations-for-millions-of-merchants-and-products/"> Generating Content-Based Recommendations for Millions of Merchants and Products </a></h2><nav class="post-nav meta-font secondary_text"><ul class="clearfix"><li class="post-meta post-author">Posted By : ODSC Team<span class="post-meta-sep">/</span></li><li class="post-meta post-comments"> <a href="https://odsc.com/blog/generating-content-based-recommendations-for-millions-of-merchants-and-products/#respond">0 comments</a> <span class="post-meta-sep">/</span></li><li class="post-meta post-category">Under :<a href="https://odsc.com/blog/category/deep-learning/" style= "color: ;" data-background-color = "" title="View all posts in Deep Learning"> Deep Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-H1bQuoFBQn tatsu-section tatsu-bg-overlay tatsu-clearfix" data-title="" data-headerscheme="background--dark"><div class='tatsu-section-pad clearfix' data-padding='{"d":"0px 0px 0px 0px"}' data-padding-top='0px'><div class="tatsu-row-wrap tatsu-wrap tatsu-row-one-col tatsu-row-has-one-cols tatsu-medium-gutter tatsu-reg-cols tatsu-clearfix tatsu-HyemdjtHX3" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-Bkm_oYS7h" data-parallax-speed="0" style=""><div class="tatsu-column-inner " ><div class="tatsu-column-pad-wrap"><div class="tatsu-column-pad" ><div class="tatsu-module tatsu-text-block-wrap tatsu-SkOdjtSmn "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-SkOdjtSmn.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Madhav Thaker and Chen Karako-Argaman are speakers for ODSC East this May 9th-11th. Be sure to check out their talk, “<a href="https://odsc.com/speakers/generating-content-based-recommendations-for-millions-of-merchants-and-products/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1682438851626.1682441671672.1178&__hssc=39712252.7.1682441671672&__hsfp=2003037740">Generating Content-based Recommendations for Millions of Merchants and Products</a>,” there!</em></p><p>Shopify is an all-in-one commerce platform that provides businesses the infrastructure to create and scale their own online store and sell products or services. It was founded in 2006 and has since grown to become one of the most popular commerce platforms in the world, with millions of businesses in more than 175 countries using it to sell their products. If you’ve shopped online over the last year, there’s a good chance it was from a store powered by Shopify.</p><h3>Problem Statement</h3><p>Whether you are shopping for clothes, looking for a new restaurant, or trying to find a new song – recommendation engines are integral to a seamless user experience. In our case, we specialize in building algorithms that enable better product discovery, and content-based recommendations are central to the product discovery experience. As customers are browsing, it is crucial to show relevant alternatives in case the product they are looking at is not quite the right fit.</p><p>At Shopify, <a href="https://shopify.engineering/how-shopify-uses-recommender-systems-to-empower-entrepreneurs">we build recommendation engines</a> that are used by merchants across a wide variety of industries. It’s therefore important that we build models that are flexible and scalable. In the beginning of 2021, we spent time exploring various approaches for content-based recommendation engines that would not only provide high-quality recommendations across industries but would also scale as we expand the number of shops that receive these recommendations. We share more on our approach below.</p><h3>How are recommendations surfaced today?</h3><p>Our recommendations are surfaced on the product display page (PDP). Here is an example:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42350 size-large lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png" sizes="(max-width: 680px) 100vw, 680px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-300x220.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-768x564.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1536x1129.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-2048x1505.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-810x595.png 810w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="680" height="500" data-src="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-300x220.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-768x564.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1536x1129.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-2048x1505.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-810x595.png 810w" /><noscript><img decoding="async" class="aligncenter wp-image-42350 size-large lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png" sizes="(max-width: 680px) 100vw, 680px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-300x220.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-768x564.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1536x1129.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-2048x1505.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-810x595.png 810w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="680" height="500" data-src="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1024x753.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-300x220.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-768x564.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-1536x1129.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-2048x1505.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/example_product_recos-810x595.png 810w" /></noscript></a></p><p>In this recommendation slider, we showcase both behavioral and content-based recommendations, which are interleaved as shown below. This allows to show customers recommendations targeting different intents, including both alternatives and complementary products.</p><p><img decoding="async" class="aligncenter wp-image-42351 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png" sizes="(max-width: 1388px) 100vw, 1388px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png 1388w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-252x300.png 252w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-861x1024.png 861w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-768x913.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-1292x1536.png 1292w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-511x607.png 511w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="1388" height="1650" data-src="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png 1388w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-252x300.png 252w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-861x1024.png 861w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-768x913.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-1292x1536.png 1292w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-511x607.png 511w" /><noscript><img decoding="async" class="aligncenter wp-image-42351 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png" sizes="(max-width: 1388px) 100vw, 1388px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png 1388w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-252x300.png 252w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-861x1024.png 861w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-768x913.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-1292x1536.png 1292w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-511x607.png 511w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="1388" height="1650" data-src="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example.png 1388w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-252x300.png 252w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-861x1024.png 861w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-768x913.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-1292x1536.png 1292w, https://opendatascience.com/wp-content/uploads/2023/04/interleaved_example-511x607.png 511w" /></noscript></p><h3>Approach</h3><p>Our content-based recommendation system is solely reliant on the text provided by merchants when describing their products. We can expect to leverage the text highlighted below.</p><p data-wp-editing="1"><a href="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42352 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png" sizes="(max-width: 1132px) 100vw, 1132px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png 1132w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-300x272.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-1024x930.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-768x697.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-630x571.png 630w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-668x607.png 668w" alt="" width="1132" height="1028" data-src="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png 1132w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-300x272.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-1024x930.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-768x697.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-630x571.png 630w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-668x607.png 668w" /><noscript><img decoding="async" class="aligncenter wp-image-42352 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png" sizes="(max-width: 1132px) 100vw, 1132px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png 1132w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-300x272.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-1024x930.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-768x697.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-630x571.png 630w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-668x607.png 668w" alt="" width="1132" height="1028" data-src="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text.png 1132w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-300x272.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-1024x930.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-768x697.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-630x571.png 630w, https://opendatascience.com/wp-content/uploads/2023/04/leveraged_text-668x607.png 668w" /></noscript></a>Beyond what is shown on the product page, we also incorporate product metadata that is behind the scenes. Because we incorporate a wide variety of text input which varies in length and cohesiveness, we focused our attention on finding the appropriate sentence encoder for our use case. We went with the Universal Sentence Encoder.</p><h3>What is the Universal Sentence Encoder?</h3><p>The Universal Sentence Encoder (USE) is a sentence encoder built by Google that specializes in text classification, semantic similarity and clustering. The underlying architecture Google typically uses is a Dynamic Averaging Network. Let’s take a look at what’s under the hood:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42349 size-large lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png" sizes="(max-width: 680px) 100vw, 680px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-300x139.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-768x355.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1536x709.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-810x374.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network.png 1802w" alt="" width="680" height="314" data-src="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-300x139.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-768x355.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1536x709.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-810x374.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network.png 1802w" /><noscript><img decoding="async" class="aligncenter wp-image-42349 size-large lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png" sizes="(max-width: 680px) 100vw, 680px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-300x139.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-768x355.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1536x709.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-810x374.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network.png 1802w" alt="" width="680" height="314" data-src="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1024x473.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-300x139.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-768x355.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-1536x709.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network-810x374.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/deep_averaging_network.png 1802w" /></noscript></a></p><p>Source: <a href="ttps://people.cs.umass.edu/~miyyer/pubs/2015_acl_dan.pdf">https://people.cs.umass.edu/~miyyer/pubs/2015_acl_dan.pdf</a></p><p>Sentences are tokenized (as shown above) and each token is encoded. Those word embeddings are then averaged, and those embeddings are then passed through several feed forward networks. The main benefits of this encoder are:</p><ol><li>This is a simple and lightweight architecture that speeds things up when it comes to inference.</li><li>The bag-of-words nature of the model inputs lends itself to handling unstructured text really well.</li></ol><h3>Why did we choose this when there are many other options?</h3><p>Since Shopify has billions of products across our merchants’ catalog, the text our team deals with can be extremely messy and inconsistent. Each merchant has very different styles for creating product titles and descriptions, so we needed an encoder that was able to generate high-quality embeddings regardless of the input quality.</p><p>As mentioned above, the speed at model inference and ability to handle messy text was absolutely critical while exploring options. An added benefit is how simple it is to incorporate:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/code.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42348 size-large lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png" sizes="(max-width: 680px) 100vw, 680px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/code-300x104.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/code-768x266.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/code-1536x531.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/code-810x280.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/code.png 1908w" alt="" width="680" height="235" data-src="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/code-300x104.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/code-768x266.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/code-1536x531.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/code-810x280.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/code.png 1908w" /><noscript><img decoding="async" class="aligncenter wp-image-42348 size-large lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png" sizes="(max-width: 680px) 100vw, 680px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/code-300x104.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/code-768x266.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/code-1536x531.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/code-810x280.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/code.png 1908w" alt="" width="680" height="235" data-src="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/code-1024x354.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/code-300x104.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/code-768x266.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/code-1536x531.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/code-810x280.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/code.png 1908w" /></noscript></a></p><p>Source: <a href="https://tfhub.dev/google/universal-sentence-encoder/4">https://tfhub.dev/google/universal-sentence-encoder/4</a></p><p>This allowed us to quickly prototype and experiment with this approach, and ultimately avoid overcomplicating our code base.</p><h3>How did we scale?</h3><p>Building high-quality embeddings was half the battle. We then had to efficiently encode hundreds of millions of products within a reasonable amount of time. We relied on Shopify’s ML platform to get the job done. Our ML platform is built upon Ray, which allowed us to scale easily. Some of the benefits of Ray are:</p><ol><li>Works with python code</li><li>Easily integrates with many ML libraries</li><li>Easy to parallelize ML workflows</li></ol><p>These were crucial in helping minimize the effort required to get our prototype code production ready. Also helpful was the fact that our ML workflow didn’t require us to train on large portions of our data at once. Since each product is embedded separately, we were able to effectively parallelize our workflow.</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42353 size-large lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png" sizes="(max-width: 680px) 100vw, 680px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-300x162.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-768x415.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1536x830.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-810x437.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters.png 1822w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="680" height="367" data-src="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-300x162.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-768x415.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1536x830.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-810x437.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters.png 1822w" /><noscript><img decoding="async" class="aligncenter wp-image-42353 size-large lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png" sizes="(max-width: 680px) 100vw, 680px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-300x162.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-768x415.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1536x830.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-810x437.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters.png 1822w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="680" height="367" data-src="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1024x553.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-300x162.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-768x415.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-1536x830.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters-810x437.png 810w, https://opendatascience.com/wp-content/uploads/2023/04/ray_clusters.png 1822w" /></noscript></a></p><p>Our data is broken up into thousands of partitions (a subset of our input dataset). In the chart above, each ML workflow would process a single partition which allowed us to have complete visibility into the workload that each Ray Cluster was processing. Our scaling approach required us to identify:</p><ul><li>The appropriate size of partitions in our upstream job</li><li>The required memory in our Ray Clusters to process each partition</li><li>The number of Ray Clusters needed to process hundreds of millions of products within an appropriate amount of time.</li></ul><p>Another benefit we found is our ability to easily visualize how much memory within our Ray clusters is being utilized during the job.</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42354 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png" sizes="(max-width: 923px) 100vw, 923px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-300x148.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-768x379.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1536x759.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-2048x1012.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-810x400.png 810w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="923" height="456" data-src="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-300x148.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-768x379.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1536x759.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-2048x1012.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-810x400.png 810w" /><noscript><img decoding="async" class="aligncenter wp-image-42354 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png" sizes="(max-width: 923px) 100vw, 923px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-300x148.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-768x379.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1536x759.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-2048x1012.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-810x400.png 810w" alt="Generating Content-Based Recommendations for Millions at Shopify" width="923" height="456" data-src="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1024x506.png 1024w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-300x148.png 300w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-768x379.png 768w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-1536x759.png 1536w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-2048x1012.png 2048w, https://opendatascience.com/wp-content/uploads/2023/04/ray_monitoring-810x400.png 810w" /></noscript></a></p><p>By combining a lightweight content-based recommendation system and our Ray-based ML platform, we were able to make significant improvements to the coverage and quality of our recommendation systems.</p><p><a href="https://odsc.com/speakers/generating-content-based-recommendations-for-millions-of-merchants-and-products/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1682438851626.1682441671672.1178&__hssc=39712252.7.1682441671672&__hsfp=2003037740">Be sure to come by our presentation</a> to learn more about why we chose USE over many options, how Ray works under the hood and to find out how this did in an online A/B test!</p><p>About the authors/ODSC East 2023 speakers:</p><p><img decoding="async" class="alignleft lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2023/01/Madhav-Thaker-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/01/Madhav-Thaker-Cropped.png" /><noscript><img decoding="async" class="alignleft lazyloaded lazyload" src="https://odsc.com/wp-content/uploads/2023/01/Madhav-Thaker-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/01/Madhav-Thaker-Cropped.png" /></noscript>Madhav Thaker is a Senior Data Scientist at Shopify where he focuses on building/evaluating recommendation systems. His role includes prototyping potential solutions and scaling them for production. Prior to Shopify, Madhav was a data science consultant where he focused on NLP projects for pharmaceutical companies. He then transitioned to Disney to develop personalized movie recommendations which sparked his passion for recommendation systems. In his free time, Madhav hosts free Q&A sessions for aspiring data scientists who are looking to get into this space.</p><p><img decoding="async" class="alignleft lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2023/01/Chen-Karako-Cropped.jpg" data-src="https://odsc.com/wp-content/uploads/2023/01/Chen-Karako-Cropped.jpg" /><noscript><img decoding="async" class="alignleft lazyloaded lazyload" src="https://odsc.com/wp-content/uploads/2023/01/Chen-Karako-Cropped.jpg" data-src="https://odsc.com/wp-content/uploads/2023/01/Chen-Karako-Cropped.jpg" /></noscript></p><p>Chen Karako-Argaman is a Senior Data Science Manager at Shopify, where she leads the Discovery Experience data team. Chen has focused on building search and discovery products using machine learning techniques, experimenting and running A/B tests to improve and measure feature impact, and collaborating with cross-disciplinary teams. She enjoys building high-impact data science teams and providing technical and strategic leadership. Aside from day-to-day work, Chen is also interested in fairness in AI and has published research in this domain. Prior to joining Shopify, Chen obtained an M.Sc. in astrophysics from McGill University, where she discovered 30 radio pulsars by developing signal-processing algorithms for telescope data.</p></div></div></div></div><div class = "tatsu-column-bg-image-wrap"><div class = "tatsu-column-bg-image" ></div></div><div class="tatsu-overlay tatsu-column-overlay tatsu-animate-none" ></div></div><style>.tatsu-row > .tatsu-Bkm_oYS7h.tatsu-column{width: 100%;}.tatsu-Bkm_oYS7h.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-Bkm_oYS7h > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-Bkm_oYS7h > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-Bkm_oYS7h > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-Bkm_oYS7h > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-Bkm_oYS7h.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-Bkm_oYS7h.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-Bkm_oYS7h.tatsu-column{width: 100%;}}</style></div></div></div></div><div class="tatsu-section-background-wrap"><div class = "tatsu-section-background" ></div></div><div class="tatsu-overlay tatsu-section-overlay"></div><style>.tatsu-H1bQuoFBQn .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-H1bQuoFBQn > .tatsu-bottom-divider{z-index: 9999;}.tatsu-H1bQuoFBQn > .tatsu-top-divider{z-index: 9999;}.tatsu-H1bQuoFBQn .tatsu-section-overlay{mix-blend-mode: normal;}</style></div></div></div></div><div class="clearfix"></div></div></div><div class="blog-separator clearfix"><hr class="separator" /></div></article><article id="post-92241" class="element not-wide blog-post clearfix post-92241 post type-post status-publish format-standard has-post-thumbnail hentry category-deep-learning tag-east-2023"><div class="element-inner" style=""><div class="post-content-wrap"><header class="post-header clearfix"><div class="post-thumb"><div class=""> <a href="https://odsc.com/blog/deep-learning-approaches-to-sentiment-analysis-with-spacy/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/04/caketop-640x300-1.png" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2023/04/caketop-640x300-1.png 640w, https://odsc.com/wp-content/uploads/2023/04/caketop-640x300-1-300x141.png 300w, https://odsc.com/wp-content/uploads/2023/04/caketop-640x300-1-107x50.png 107w, https://odsc.com/wp-content/uploads/2023/04/caketop-640x300-1-50x23.png 50w, https://odsc.com/wp-content/uploads/2023/04/caketop-640x300-1-100x47.png 100w" sizes="(max-width: 640px) 100vw, 640px" /><div class="thumb-overlay"><div class="thumb-bg"><div class="thumb-title fadeIn animated"> <i class="portfolio-ovelay-icon"></i></div></div></div> </a></div></div></header><div class="article-details"><div class="clearfix post-title-section-wrap"><div class="left post-date-wrap"><div>Apr</div><div>13</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/deep-learning-approaches-to-sentiment-analysis-with-spacy/"> Deep Learning Approaches to Sentiment Analysis (with spaCy!) </a></h2><nav class="post-nav meta-font secondary_text"><ul class="clearfix"><li class="post-meta post-author">Posted By : ODSC Team<span class="post-meta-sep">/</span></li><li class="post-meta post-comments"> <a href="https://odsc.com/blog/deep-learning-approaches-to-sentiment-analysis-with-spacy/#respond">0 comments</a> <span class="post-meta-sep">/</span></li><li class="post-meta post-category">Under :<a href="https://odsc.com/blog/category/deep-learning/" style= "color: ;" data-background-color = "" title="View all posts in Deep Learning"> Deep Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-HJ-km66rzn tatsu-section tatsu-bg-overlay tatsu-clearfix" data-title="" data-headerscheme="background--dark"><div class='tatsu-section-pad clearfix' data-padding='{"d":"0px 0px 90px 0px"}' data-padding-top='0px'><div class="tatsu-row-wrap tatsu-wrap tatsu-row-one-col tatsu-row-has-one-cols tatsu-medium-gutter tatsu-reg-cols tatsu-clearfix tatsu-Byxkm6aSM2" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-rJkXaTBG3" data-parallax-speed="0" style=""><div class="tatsu-column-inner " ><div class="tatsu-column-pad-wrap"><div class="tatsu-column-pad" ><div class="tatsu-module tatsu-text-block-wrap tatsu-HyH7pTrGn "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-HyH7pTrGn.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Benjamin Batorsky, PhD is a speaker for <a href="https://opendatascience.com/tag/east-2023/" target="_blank" rel="noopener">ODSC East 2023</a>. Be sure to check out his talk, “<a href="https://odsc.com/speakers/bagging-to-bert-a-tour-of-applied-nlp/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1681403387321.1681408585808.1157&__hssc=39712252.13.1681408585808&__hsfp=2003037740">Bagging to BERT – A Tour of Applied NLP</a>,” there!</em></p><p>It’s always good to start a blog post with a joke (even if it’s not a very good one):</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42280 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png" sizes="(max-width: 507px) 100vw, 507px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png 507w, https://opendatascience.com/wp-content/uploads/2023/04/Picture1-300x128.png 300w" alt="" width="507" height="217" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png 507w, https://opendatascience.com/wp-content/uploads/2023/04/Picture1-300x128.png 300w" /><noscript><img decoding="async" class="aligncenter wp-image-42280 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png" sizes="(max-width: 507px) 100vw, 507px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png 507w, https://opendatascience.com/wp-content/uploads/2023/04/Picture1-300x128.png 300w" alt="" width="507" height="217" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture1.png 507w, https://opendatascience.com/wp-content/uploads/2023/04/Picture1-300x128.png 300w" /></noscript></a></p><p>Why is this funny? In English, “well” can refer to a state of being and a device for retrieving water. The device in the second panel says “I’m well”, which is both an answer to the question “How are you” and pointing out that the device is, in fact, a well. It’s all about context!</p><p>If a <a href="https://opendatascience.com/category/modeling/nlp-text-analytics/" target="_blank" rel="noopener">Natural Language Processing (NLP)</a> system does not have that context, we’d expect it not to get the joke. However, modern NLP systems like ChatGPT have a pretty good sense of humor:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42281 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png" sizes="(max-width: 624px) 100vw, 624px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture2-300x100.png 300w" alt="" width="624" height="208" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture2-300x100.png 300w" /><noscript><img decoding="async" class="aligncenter wp-image-42281 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png" sizes="(max-width: 624px) 100vw, 624px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture2-300x100.png 300w" alt="" width="624" height="208" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture2.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture2-300x100.png 300w" /></noscript></a></p><p>That’s because modern NLP systems create contextualized representations of input text. In my <a href="https://opendatascience.com/three-ways-of-performing-sentiment-analysis/">previous blog post</a>, I talked through three approaches to sentiment analysis (i.e. identifying the “emotional tone” of a particular document). These approaches were all based on a technique called “bagging”; the process of splitting documents into a collection of words (which we’ll refer to as “tokens”).</p><p>None of the approaches I covered (as implemented) capture the kind of context we’d need to understand the “well” joke. Each has a single representation for the word “well”, which combines the information for “doing well” with “wishing well”.</p><p>In this post, I’ll be demonstrating two deep learning approaches to sentiment analysis. Deep learning refers to the use of neural network architectures, characterized by their multi-layer design (i.e. “deep” architecture). I’ll be making use of the powerful <a href="https://spacy.io/">SpaCy library</a> which makes swapping architectures in NLP pipelines a breeze. This is a preview of my <a href="https://odsc.com/speakers/bagging-to-bert-a-tour-of-applied-nlp/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1681403387321.1681408585808.1157&__hssc=39712252.13.1681408585808&__hsfp=2003037740">upcoming tutorial in May at ODSC East</a>.</p><p>Follow along in the <a href="https://github.com/bpben/bagging_to_bert/blob/main/tutorial_notebook_part2.ipynb">notebook</a>!</p><h3>Introduction to SpaCy</h3><p>SpaCy is a python library designed to provide a “complete” NLP pipeline, including ingestion, tokenization, tagging, representation, and even classification. This diagram I think gives you a good overview:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42282 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png" sizes="(max-width: 350px) 100vw, 350px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png 350w, https://opendatascience.com/wp-content/uploads/2023/04/Picture3-251x300.png 251w" alt="" width="350" height="419" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png 350w, https://opendatascience.com/wp-content/uploads/2023/04/Picture3-251x300.png 251w" /><noscript><img decoding="async" class="aligncenter wp-image-42282 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png" sizes="(max-width: 350px) 100vw, 350px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png 350w, https://opendatascience.com/wp-content/uploads/2023/04/Picture3-251x300.png 251w" alt="" width="350" height="419" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture3.png 350w, https://opendatascience.com/wp-content/uploads/2023/04/Picture3-251x300.png 251w" /></noscript></a></p><p><a href="https://spacy.io/usage/spacy-101">spaCy 101: Everything you need to know</a></p><p>Above you can see that text is processed by a “Language” object, which has a number of components such as part-of-speech tagging, vector representations, and models for categorization. These can be customized and trained. Raw text is fed into the Language object, which produces a Doc object. Docs are composed of Spans, which are made up of individual Tokens. Docs, Spans and Tokens all have attributes such as “vector” which correspond to the customized components. We’ll be mainly using the “.cats” component of Docs, for which we’ll be training a text categorization model to classify sentiment as “positive” or “negative.”</p><p>Behind each spaCy Language object is a configuration file. This specifies the components and relevant assets, but also provides training parameters for training models behind these components. For a more comprehensive view of the different components see <a href="https://spacy.io/usage/spacy-101">the documentation</a>. We’ll focus on a few sections that are most relevant here. You can see the full configuration on the <a href="https://github.com/bpben/bagging_to_bert">github repository</a>:</p><ul><li>nlp: This defines the pipeline for the Language object (see above). We’ll be specifying a “textcat” component, the “model” that will process text into spaCy Doc objects.</li><li>components: This section details the components we specified in the nlp section. In the first example, we’ll be defining an architecture based on a Convolutional Neural Network (CNN)</li></ul><h3>The dataset</h3><p>We’ll be using the same dataset as last time; a<a href="http://ai.stanford.edu/~amaas/data/sentiment/"> collection of 50k reviews from IMDB</a> which are labeled as either positive or negative. This is a reasonably clean dataset and a fairly straightforward binary objective. The real world is usually not going to be so clean nor straightforward. I do some manipulations, which you will see in the notebook.</p><h3>Convolutional Neural Network for sentiment analysis</h3><p>A CNN model is a type of neural architecture that is based on learned matrices of numbers (filters) that slide (convolve) over the input data. These filters cover a “region” of the input as they move across it, which means their output includes context. That’s useful with images, where a particular filter might highlight “edges” based on how it weights changes in pixel intensity (e.g. where a black line interrupts a white background). But this contextualized representation is also useful for text, as discussed above.</p><p>The first approach we’ll tackle makes use of this architecture as implemented in spaCy. A rough outline of how this is implemented is below. A more deep explanation of this architecture is described in <a href="https://spacy.io/universe/project/video-spacys-ner-model">this video</a>:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42283 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png" sizes="(max-width: 624px) 100vw, 624px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture4-300x83.png 300w" alt="Deep Learning Approaches to Sentiment Analysis (with spaCy!)" width="624" height="172" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture4-300x83.png 300w" /><noscript><img decoding="async" class="aligncenter wp-image-42283 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png" sizes="(max-width: 624px) 100vw, 624px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture4-300x83.png 300w" alt="Deep Learning Approaches to Sentiment Analysis (with spaCy!)" width="624" height="172" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture4.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture4-300x83.png 300w" /></noscript></a></p><p>Text is converted to embeddings, which are then fed into a four-layer CNN. Each layer scans over the previous layer’s output, including context on either side of each token. Since each layer takes token-level representations from either side of a “central” token, by the fourth layer each token representation includes some amount of context from four tokens on either side of it. This whole flow is referred to as the “tok2vec” component of the pipeline.</p><p>For doing the actual document-level categorization, this “contextualized representation” is then mean-aggregated and passed to a classification layer that predicts the category. In our sentiment analysis example, the two categories are “positive” or “negative”.</p><p>You can see the implementation of this in the <a href="https://github.com/bpben/bagging_to_bert/blob/main/spacy_materials/config.cfg">configuration file on github</a> (abridged below):</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42284 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png" sizes="(max-width: 320px) 100vw, 320px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png 320w, https://opendatascience.com/wp-content/uploads/2023/04/Picture5-238x300.png 238w" alt="" width="320" height="404" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png 320w, https://opendatascience.com/wp-content/uploads/2023/04/Picture5-238x300.png 238w" /><noscript><img decoding="async" class="aligncenter wp-image-42284 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png" sizes="(max-width: 320px) 100vw, 320px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png 320w, https://opendatascience.com/wp-content/uploads/2023/04/Picture5-238x300.png 238w" alt="" width="320" height="404" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture5.png 320w, https://opendatascience.com/wp-content/uploads/2023/04/Picture5-238x300.png 238w" /></noscript></a></p><p>Note: This is <a href="https://spacy.io/api/architectures#HashEmbedCNN">simplified</a> in more recent versions of spaCy.</p><p>We can then train the model using spaCy’s training workflow. The training will by default output the model loss and accuracy on the validation set as the model learns patterns in the data.</p><p>Once the model is finished, we can use it like any other spaCy pipeline, except now the “.cat” attribute is populated with the output of our CNN model. A simple evaluation workflow shows that the default model does well, achieving 83% accuracy. We could spend a lot of time tweaking parameters here, but since everyone seems so hot and bothered about Transformer models these days, why don’t we jump into that?</p><h3>Transformers for sentiment analysis (Alt title: Autobots Roll Out!)</h3><p>Sorry – I couldn’t resist. One of the weaknesses of many neural models for language is that there are long-term dependencies in language. Think of the phrase “The movie I watched today was really bad”. “Movie” and “bad” are 5 tokens apart (assuming simple whitespace-split), which means that even with the context included in our CNN model, it’s unlikely that the representation for “movie” will include any information from “bad”.</p><p>If you think about how you, a very complex NLP system, would process that sentence, you’d know that “bad” refers to the movie. You naturally link those two words, as you do with “the” and “movie”. This is (roughly) the idea behind a mechanism called “attention”. Each token representation includes its relationship to other tokens.</p><p>Transformer models rely on this mechanism to overcome (in some situations) the limits of other neural models. There’s a lot more to these models, but we’ll save that discussion for <a href="https://odsc.com/speakers/bagging-to-bert-a-tour-of-applied-nlp/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1681403387321.1681408585808.1157&__hssc=39712252.13.1681408585808&__hsfp=2003037740">another time</a>. Beyond just the architecture improvements, these models have been used to great effect in transfer learning. By training a transformer model to predict a word given the word’s context, it internalizes a lot of general language patterns (though it <a href="https://www.nytimes.com/2023/03/08/opinion/noam-chomsky-chatgpt-ai.html">does not necessarily “understand” them</a>).</p><p>Thanks to all the hard-working contributors to HuggingFace’s transformers library and spaCy, we get to leverage these “pre-trained” models for our adorable little project. With some minor <a href="https://github.com/bpben/bagging_to_bert/blob/main/spacy_materials/config_trf.cfg">modifications to the CNN config file</a>, we pull in a Transformer model (DistilBERT) and use it as our “tok2vec” component. The next step is roughly the same, condensing the input to a document representation and passing that through a classification layer. Training proceeds roughly the same, though this likely will take longer (and eat up more compute).</p><p>By the end, we see a 6% improvement in performance. Remember, this is using mostly default parameters. It would not be surprising if you could push performance even higher. I’d be interested to hear if you do!</p><table width="521"><tbody><tr><td><b>Method</b></td><td><b>Precision</b></td><td><b>Recall</b></td><td><b>F1 Score</b></td></tr><tr><td><b>CNN</b></td><td>0.83</td><td>0.83</td><td>0.83</td></tr><tr><td><b>DistilBERT</b></td><td>0.88</td><td>0.88</td><td>0.88</td></tr></tbody></table><h3>All that chatters is not gold</h3><p>I always find myself thinking about this visual from the NeurIPS paper by Google <a href="https://papers.nips.cc/paper_files/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf">Hidden Technical Debt in Machine Learning Systems</a>:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-42285 size-full lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png" sizes="(max-width: 624px) 100vw, 624px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture6-300x99.png 300w" alt="Deep Learning Approaches to Sentiment Analysis (with spaCy!)" width="624" height="205" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture6-300x99.png 300w" /><noscript><img decoding="async" class="aligncenter wp-image-42285 size-full lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png" sizes="(max-width: 624px) 100vw, 624px" srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture6-300x99.png 300w" alt="Deep Learning Approaches to Sentiment Analysis (with spaCy!)" width="624" height="205" data-src="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/04/Picture6.png 624w, https://opendatascience.com/wp-content/uploads/2023/04/Picture6-300x99.png 300w" /></noscript></a></p><p>The key thing I see here is how small a fraction of the entire system the model is. Looking at the changes we made to the spaCy configuration to leap forward roughly a decade in NLP development brings that point home. Adding complexity to a pipeline is pretty easy, accounting for that complexity in a production system is the stuff of MLOps nightmares.</p><p>Some of the bagging techniques in the <a href="https://opendatascience.com/three-ways-of-performing-sentiment-analysis/">previous blog post</a> achieved the same performance as this transformer-based one (though they used MANY features). Does an extra few percentage points increase in performance merit the additional complexity? In some cases, yes. But I’d encourage folks to ask that question before they jump to the newest and shiniest of approaches. Transformers are fascinating and powerful technologies. But, personally, I wouldn’t start with them.</p><p>If you liked this and want to dive in deeper, <a href="https://odsc.com/speakers/bagging-to-bert-a-tour-of-applied-nlp/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1681403387321.1681408585808.1157&__hssc=39712252.13.1681408585808&__hsfp=2003037740">join me and others at ODSC East in May</a>! I welcome your comments on this work and anything I’ve discussed. Looking forward to May and seeing you all soon.</p><h3>About the author/ODSC East 2023 speaker:</h3><p><img decoding="async" class="lazyloaded alignleft lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2022/02/Benjamin-Batorsky-Cropped.jpg" data-src="https://odsc.com/wp-content/uploads/2022/02/Benjamin-Batorsky-Cropped.jpg" /><noscript><img decoding="async" class="lazyloaded alignleft lazyload" src="https://odsc.com/wp-content/uploads/2022/02/Benjamin-Batorsky-Cropped.jpg" data-src="https://odsc.com/wp-content/uploads/2022/02/Benjamin-Batorsky-Cropped.jpg" /></noscript>Ben is a Senior Data Scientist at the Institute for Experiential AI at Northeastern University. He obtained his Masters in Public Health (MPH) from Johns Hopkins and his PhD in Policy Analysis from the Pardee RAND Graduate School. Since 2014, he has been working in data science for government, academia, and the private sector. His major focus has been on Natural Language Processing (NLP) technology and applications. Throughout his career, he has pursued opportunities to contribute to the larger data science community. He has presented his work at conferences, published articles, taught courses in data science and NLP, and is co-organizer of the Boston chapter of PyData. He also contributes to volunteer projects applying data science tools for public good.</p></div></div></div></div><div class = "tatsu-column-bg-image-wrap"><div class = "tatsu-column-bg-image" ></div></div><div class="tatsu-overlay tatsu-column-overlay tatsu-animate-none" ></div></div><style>.tatsu-row > .tatsu-rJkXaTBG3.tatsu-column{width: 100%;}.tatsu-rJkXaTBG3.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-rJkXaTBG3 > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-rJkXaTBG3 > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-rJkXaTBG3 > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-rJkXaTBG3 > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-rJkXaTBG3.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-rJkXaTBG3.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-rJkXaTBG3.tatsu-column{width: 100%;}}</style></div></div></div></div><div class="tatsu-section-background-wrap"><div class = "tatsu-section-background" ></div></div><div class="tatsu-overlay tatsu-section-overlay"></div><style>.tatsu-HJ-km66rzn .tatsu-section-pad{padding: 0px 0px 90px 0px;}.tatsu-HJ-km66rzn .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-HJ-km66rzn > .tatsu-bottom-divider{z-index: 9999;}.tatsu-HJ-km66rzn > .tatsu-top-divider{z-index: 9999;}.tatsu-HJ-km66rzn .tatsu-section-overlay{mix-blend-mode: normal;}</style></div></div></div></div><div class="clearfix"></div></div></div><div class="blog-separator clearfix"><hr class="separator" /></div></article><article id="post-91525" class="element not-wide blog-post clearfix post-91525 post type-post status-publish format-standard has-post-thumbnail hentry category-deep-learning tag-europe-2023"><div class="element-inner" style=""><div class="post-content-wrap"><header class="post-header clearfix"><div class="post-thumb"><div class=""> <a href="https://odsc.com/blog/fast-option-pricing-using-deep-learning-methods/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/04/cctop.png" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2023/04/cctop.png 640w, https://odsc.com/wp-content/uploads/2023/04/cctop-300x141.png 300w, https://odsc.com/wp-content/uploads/2023/04/cctop-107x50.png 107w, https://odsc.com/wp-content/uploads/2023/04/cctop-50x23.png 50w, https://odsc.com/wp-content/uploads/2023/04/cctop-100x47.png 100w" sizes="(max-width: 640px) 100vw, 640px" /><div class="thumb-overlay"><div class="thumb-bg"><div class="thumb-title fadeIn animated"> <i class="portfolio-ovelay-icon"></i></div></div></div> </a></div></div></header><div class="article-details"><div class="clearfix post-title-section-wrap"><div class="left post-date-wrap"><div>Apr</div><div>04</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/fast-option-pricing-using-deep-learning-methods/"> Fast Option Pricing Using Deep Learning Methods </a></h2><nav class="post-nav meta-font secondary_text"><ul class="clearfix"><li class="post-meta post-author">Posted By : ODSC Team<span class="post-meta-sep">/</span></li><li class="post-meta post-comments"> <a href="https://odsc.com/blog/fast-option-pricing-using-deep-learning-methods/#respond">0 comments</a> <span class="post-meta-sep">/</span></li><li class="post-meta post-category">Under :<a href="https://odsc.com/blog/category/deep-learning/" style= "color: ;" data-background-color = "" title="View all posts in Deep Learning"> Deep Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-B1ZljIAKWh tatsu-section tatsu-bg-overlay tatsu-clearfix" data-title="" data-headerscheme="background--dark"><div class='tatsu-section-pad clearfix' data-padding='{"d":"7px 0px 0px 0px"}' data-padding-top='7px'><div class="tatsu-row-wrap tatsu-wrap tatsu-row-one-col tatsu-row-has-one-cols tatsu-medium-gutter tatsu-reg-cols tatsu-clearfix tatsu-rJxlsIAKZn" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-Hyei8AYbh" data-parallax-speed="0" style=""><div class="tatsu-column-inner " ><div class="tatsu-column-pad-wrap"><div class="tatsu-column-pad" ><div class="tatsu-module tatsu-text-block-wrap tatsu-SyDjIRKWn "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-SyDjIRKWn.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Chakri Cherukuri is a speaker for ODSC Europe 2023 this June. Be sure to check out his talk, “<a href="https://odsc.com/speakers/fast-option-pricing-using-deep-learning-methods/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1680618882050.1680623843613.1135&__hssc=39712252.14.1680623843613&__hsfp=3000179024">Fast Option Pricing Using Deep Learning Methods</a>,” there!</em></p><p>In finance, options are financial instruments that give the holder the right to buy (<a href="https://en.wikipedia.org/wiki/Call_option">Call option</a>) or sell (<a href="https://en.wikipedia.org/wiki/Put_option">Put option</a>) the underlying asset (price S) at a fixed price (Strike K) on (or before) a fixed date (Maturity T).</p><p>There are two types of options:</p><p><b>European </b>options can be exercised <b>only </b>on the date of maturity.</p><p><b>American</b> options can be exercised on <b>any</b> date before maturity.</p><p>The plot below shows the price of a European call option for two maturities (T=1 and T=0). On the day of the maturity (blue line) the price of the call is just the payoff function C = max(S – K, 0)</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png"><img decoding="async" class="aligncenter size-full wp-image-42024 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png" sizes="(max-width: 956px) 100vw, 956px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png 956w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-300x146.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-768x373.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-810x393.png 810w" alt="" width="956" height="464" data-src="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png 956w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-300x146.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-768x373.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-810x393.png 810w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-42024 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png" sizes="(max-width: 956px) 100vw, 956px" srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png 956w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-300x146.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-768x373.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-810x393.png 810w" alt="" width="956" height="464" data-src="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc1.png 956w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-300x146.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-768x373.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc1-810x393.png 810w" /></noscript></a></p><p>The plot below shows the price of a European put option. On the day of the maturity, the price of the put (blue line) is the same as the payoff function P = max(K – S, 0)</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png"><img decoding="async" class="aligncenter size-full wp-image-42025 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png" sizes="(max-width: 955px) 100vw, 955px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png 955w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-300x144.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-768x369.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-810x389.png 810w" alt="" width="955" height="459" data-src="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png 955w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-300x144.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-768x369.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-810x389.png 810w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-42025 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png" sizes="(max-width: 955px) 100vw, 955px" srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png 955w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-300x144.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-768x369.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-810x389.png 810w" alt="" width="955" height="459" data-src="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/03/cc2.png 955w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-300x144.png 300w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-768x369.png 768w, https://opendatascience.com/wp-content/uploads/2023/03/cc2-810x389.png 810w" /></noscript></a></p><p>The price of the option at any time before the maturity depends on the following features:</p><table><tbody><tr><td><b>Feature</b></td><td><b>Description</b></td><td><b>Symbol</b></td></tr><tr><td>Spot Price</td><td>Price of the underlying asset (e.g., Stock price for equities)</td><td>S</td></tr><tr><td>Interest rate</td><td>Risk-free interest rate</td><td>r</td></tr><tr><td>Dividend Yield</td><td>Dividend Yield</td><td>q</td></tr><tr><td>Volatility</td><td>The measure of risk (standard deviation of returns)</td><td>Σ</td></tr><tr><td>Time to Maturity</td><td>Time left until the maturity</td><td>T</td></tr><tr><td>Strike Price</td><td>Strike of the option</td><td>K</td></tr></tbody></table><h3><b>Quantitative Finance Pricing Methods</b></h3><p>Stochastic processes are used to model the dynamics of the spot prices and volatilities. The most famous and most widely used model is the <a href="https://en.wikipedia.org/wiki/Black%E2%80%93Scholes_model"><b>Black-Scholes</b></a> model. In this model, the price of the <b>European </b>calls and puts can be obtained using <a href="https://en.wikipedia.org/wiki/Black%E2%80%93Scholes_model#Black%E2%80%93Scholes_formula">analytical formulas</a>.</p><div>Since American options can be exercised at any time before maturity, there is no analytical formula for pricing these options and we must resort to numerical methods like Monte Carlo Simulations or solving backward <a href="https://en.wikipedia.org/wiki/Black%E2%80%93Scholes_model#Black%E2%80%93Scholes_equation" rel="noopener" data-saferedirecturl="https://www.google.com/url?q=https://en.wikipedia.org/wiki/Black%25E2%2580%2593Scholes_model%23Black%25E2%2580%2593Scholes_equation&source=gmail&ust=1680014970132000&usg=AOvVaw2J07hE0q6LGuq1BhGhX94Q">PDEs</a> subject to the boundary and terminal conditions.</div><p>Black-Scholes model makes simplistic assumptions that volatility is constant across various strikes and maturities which is not true in practice. <a href="https://en.wikipedia.org/wiki/Stochastic_volatility"><b>Stochastic Volatility</b></a> models are used for modeling <b>both </b>the spot and volatilities as stochastic processes. Pricing options in these models is more computationally intensive compared to the Black-Scholes model.</p><p>Pricing options using numerical methods typically take a few seconds for a <b>single </b>set of inputs!</p><p>Apart from computing the option prices, these numerical methods are also used for computing the <a href="https://en.wikipedia.org/wiki/Greeks_(finance)"><b>greeks</b></a> which are the partial derivatives of the option prices with respect to various inputs (for example, delta is the first derivative of the option price with respect to the spot price). The Greeks are vital tools in <a href="https://en.wikipedia.org/wiki/Financial_risk_management">risk management</a> of options positions.</p><h3><b>ML Based Option Pricing</b></h3><p>Since neural networks are <a href="https://en.wikipedia.org/wiki/Universal_approximation_theorem">universal function approximators</a> they can be used to <b>learn </b>the option prices in various models. The recipe for ML-based option pricing is as follows:</p><ol><li aria-level="1">Generate a large representative training set of inputs to the pricing model</li><li aria-level="1"><div>Generate the labels (option price) using the slow numerical pricers (Monte Carlo, PDEs etc.)</div></li><li aria-level="1">Use the labeled training dataset to train deep neural networks</li><li aria-level="1">Use the trained deep learning models as <b>fast </b>pricers</li></ol><p>Steps 1, 2, and 3 can be performed offline. Once the neural network is trained, inference if extremely fast and can be done for batches of features at once! We can also easily recover the <b>greeks, </b>since they are the gradient vectors of the output with respect to inputs.</p><p><b>Training Data</b></p><p>The training dataset consists of features (inputs to the option pricing function) and labels (option prices). Features are synthetically generated using <a href="https://en.wikipedia.org/wiki/Latin_hypercube_sampling">Latin Hypercube Sampling</a> across various parameter ranges and labels are generated for each feature vector using the slow numerical pricers.</p><p>We can use domain knowledge to augment training datasets by generating more samples in regions where the pricing function becomes singular (where σ~0 or T~0).</p><p><b>Training Deep Learning Models</b></p><p>Since the data (features and labels) are all numerical we use deep fully connected neural networks to learn the pricing functions. Techniques like weight decay, reducing learning rates (when validation loss doesn’t improve) can further improve the training process.</p><p><b>Wrapping Up</b></p><p>In this post, I provided a brief overview of quantitative finance methods used for pricing options and how deep learning techniques can be used for developing fast option pricers. I will go into more detail in my upcoming talk at ODSC Europe 2023, titled <b><a href="https://odsc.com/speakers/fast-option-pricing-using-deep-learning-methods/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1680618882050.1680623843613.1135&__hssc=39712252.14.1680623843613&__hsfp=3000179024">Fast Option Pricing Using Deep Learning Methods</a>.</b></p><p><strong>About the author/ODSC Europe 2023 speaker:</strong></p><p><img decoding="async" class="alignleft lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2023/02/Chakri-Cherukuri-Cropped-1-300x300.png" data-src="https://odsc.com/wp-content/uploads/2023/02/Chakri-Cherukuri-Cropped-1-300x300.png" /><noscript><img decoding="async" class="alignleft lazyloaded lazyload" src="https://odsc.com/wp-content/uploads/2023/02/Chakri-Cherukuri-Cropped-1-300x300.png" data-src="https://odsc.com/wp-content/uploads/2023/02/Chakri-Cherukuri-Cropped-1-300x300.png" /></noscript>Chakri Cherukuri is a senior researcher in the Quantitative Research group within the CTO office at Bloomberg LP. His research interests include quantitative portfolio management, algorithmic trading strategies, applied machine learning and numerical methods. Previously, he built analytical tools for the trading desks at Goldman Sachs and Lehman Brothers. Before that he worked in Silicon Valley for startups building enterprise software systems. He is a core contributor and steering council member of bqplot, a 2D plotting library for the Jupyter notebook. He has extensive experience in numerical computing and software development.</p><p>He holds an undergraduate degree in mechanical engineering from the Indian Institute of Technology, Madras, and an MS in computational finance from Carnegie Mellon University.</p></div></div></div></div><div class = "tatsu-column-bg-image-wrap"><div class = "tatsu-column-bg-image" ></div></div><div class="tatsu-overlay tatsu-column-overlay tatsu-animate-none" ></div></div><style>.tatsu-row > .tatsu-Hyei8AYbh.tatsu-column{width: 100%;}.tatsu-Hyei8AYbh.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-Hyei8AYbh > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-Hyei8AYbh > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-Hyei8AYbh > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-Hyei8AYbh > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-Hyei8AYbh.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-Hyei8AYbh.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-Hyei8AYbh.tatsu-column{width: 100%;}}</style></div></div></div></div><div class="tatsu-section-background-wrap"><div class = "tatsu-section-background" ></div></div><div class="tatsu-overlay tatsu-section-overlay"></div><style>.tatsu-B1ZljIAKWh .tatsu-section-pad{padding: 7px 0px 0px 0px;}.tatsu-B1ZljIAKWh .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-B1ZljIAKWh > .tatsu-bottom-divider{z-index: 9999;}.tatsu-B1ZljIAKWh > .tatsu-top-divider{z-index: 9999;}.tatsu-B1ZljIAKWh .tatsu-section-overlay{mix-blend-mode: normal;}</style></div></div></div></div><div class="clearfix"></div></div></div><div class="blog-separator clearfix"><hr class="separator" /></div></article><article id="post-85201" class="element not-wide blog-post clearfix post-85201 post type-post status-publish format-standard has-post-thumbnail hentry category-deep-learning tag-west-2022"><div class="element-inner" style=""><div class="post-content-wrap"><header class="post-header clearfix"><div class="post-thumb"><div class=""> <a href="https://odsc.com/blog/tensorflow-ecosystem-for-efficient-deep-learning/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2022/10/tftop.png" class="attachment-blog-image size-blog-image wp-post-image" alt="TensorFlow Ecosystem for Efficient Deep Learning" decoding="async" srcset="https://odsc.com/wp-content/uploads/2022/10/tftop.png 640w, https://odsc.com/wp-content/uploads/2022/10/tftop-300x141.png 300w, https://odsc.com/wp-content/uploads/2022/10/tftop-107x50.png 107w, https://odsc.com/wp-content/uploads/2022/10/tftop-50x23.png 50w, https://odsc.com/wp-content/uploads/2022/10/tftop-100x47.png 100w" sizes="(max-width: 640px) 100vw, 640px" /><div class="thumb-overlay"><div class="thumb-bg"><div class="thumb-title fadeIn animated"> <i class="portfolio-ovelay-icon"></i></div></div></div> </a></div></div></header><div class="article-details"><div class="clearfix post-title-section-wrap"><div class="left post-date-wrap"><div>Oct</div><div>03</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/tensorflow-ecosystem-for-efficient-deep-learning/"> TensorFlow Ecosystem for Efficient Deep Learning </a></h2><nav class="post-nav meta-font secondary_text"><ul class="clearfix"><li class="post-meta post-author">Posted By : ODSC Team<span class="post-meta-sep">/</span></li><li class="post-meta post-comments"> <a href="https://odsc.com/blog/tensorflow-ecosystem-for-efficient-deep-learning/#respond">0 comments</a> <span class="post-meta-sep">/</span></li><li class="post-meta post-category">Under :<a href="https://odsc.com/blog/category/deep-learning/" style= "color: ;" data-background-color = "" title="View all posts in Deep Learning"> Deep Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-BkbBCaKOfi tatsu-section tatsu-bg-overlay tatsu-clearfix" data-title="" data-headerscheme="background--dark"><div class='tatsu-section-pad clearfix' data-padding='{"d":"0px 0px 0px 0px"}' data-padding-top='0px'><div class="tatsu-row-wrap tatsu-wrap tatsu-row-one-col tatsu-row-has-one-cols tatsu-medium-gutter tatsu-reg-cols tatsu-clearfix tatsu-HJgBAatOfi" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-B1SATY_Gj" data-parallax-speed="0" style=""><div class="tatsu-column-inner " ><div class="tatsu-column-pad-wrap"><div class="tatsu-column-pad" ><div class="tatsu-module tatsu-text-block-wrap tatsu-ByeyCtuzj "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-ByeyCtuzj.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Amita Kapoor is a speaker for <a href="https://odsc.com/california/">ODSC West 2022</a> this November 1st-3rd. Be sure to check out her half-day training session, “<a href="https://odsc.com/speakers/deep-learning-with-python-and-keras-tensorflow-2/">Deep Learning with Python and Keras (Tensorflow 2)</a>,” there!</em></p><p><span style="font-weight: 400;">Deep Learning today is a powerful and widely used tool for Artificial Intelligence and machine learning. Compared to traditional neural networks, deep learning can more effectively model complex patterns in data. This is due to its ability to learn multiple levels of representation, from low-level features to high-level concepts. As a result, deep learning is well suited for tasks such as image recognition and natural language processing. Furthermore, the availability of deep-learning open-source frameworks such as TensorFlow, Keras, and PyTorch has made it possible for everyone interested in deep learning to build and train models.</span></p><p><span style="font-weight: 400;">In this blog post, you will learn about one of the most popular deep learning frameworks, TensorFlow, and the different components of the TF Ecosystem that can help you build efficient deep learning solutions.</span></p><h2><span style="font-weight: 400;">Introducing TensorFlow</span></h2><p><span style="font-weight: 400;">TensorFlow is an open-source platform for machine learning. Google Brain team members originally developed it for internal use at Google. However, in 2015, it was released under the Apache License, making it available to the public. TensorFlow offers a variety of features that make it attractive to experienced machine learning developers and those just getting started. For example, TensorFlow can be used for both research and production purposes. It is also highly scalable, allowing developers to train models on a single device or across multiple devices. In addition, TensorFlow offers a rich set of tools and libraries that make development faster and easier. As a result, TensorFlow has become one of the most popular platforms for machine learning development.</span></p><h2><span style="font-weight: 400;">Tensorflow Ecosystem</span></h2><p><span style="font-weight: 400;">One of the things that I like about TensorFlow is that it is much more than a framework- it is a complete ecosystem. The TensorFlow Ecosystem (TFE) is a collection of tools and services that allow you to build and deploy machine learning models.</span></p><p><a href="https://opendatascience.com/wp-content/uploads/2022/10/tf1.png"><img decoding="async" class="aligncenter size-full wp-image-40153 lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2022/10/tf1.png" alt="" width="993" height="173" /><noscript><img decoding="async" class="aligncenter size-full wp-image-40153 lazyload" src="https://opendatascience.com/wp-content/uploads/2022/10/tf1.png" alt="" width="993" height="173" /></noscript></a></p><p><span style="font-weight: 400;">From datasets to pre-trained models, from running on high-end GPUs to edge devices, from training on a single system to training on the TPU cloud, and from production to the final deployment: TFE has tools for all. Let us start with the fuel of AI- the data itself.</span></p><h3><span style="font-weight: 400;">TensorFlow Datasets</span></h3><p><span style="font-weight: 400;">TensorFlow Dataset is a collection of datasets ready to use with TensorFlow. It handles downloading and preparing the data and provides simple APIs to access them. The goal is to make it easy to swap different datasets in and out of your code with minimal code changes. TensorFlow Datasets come with many built-in datasets, and you can also easily add your own. When writing this blog, TensorFlow DataSet contains 1108 datasets for various tasks for image, audio, video, and text.</span></p><p><a href="https://opendatascience.com/wp-content/uploads/2022/10/tf2.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-40154 size-full lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2022/10/tf2.png" alt="TensorFlow Ecosystem for Efficient Deep Learning" width="969" height="723" /><noscript><img decoding="async" class="aligncenter wp-image-40154 size-full lazyload" src="https://opendatascience.com/wp-content/uploads/2022/10/tf2.png" alt="TensorFlow Ecosystem for Efficient Deep Learning" width="969" height="723" /></noscript></a></p><h3><span style="font-weight: 400;">TensorFlow Keras API</span></h3><p><span style="font-weight: 400;">TensorFlow Keras API is a high-level API that makes it easy to construct, train, and deploy deep learning models. Easy to use, scalable, and extensible the Keras API makes it easy to get started with deep learning. It offers three ways to build models:</span></p><ul><li style="font-weight: 400;" aria-level="1"><b>Sequential API</b><span style="font-weight: 400;">: It is simple and intuitive. Best suited for models designed as stacks of layers.</span></li><li style="font-weight: 400;" aria-level="1"><b>Functional API</b><span style="font-weight: 400;">: Functional API is the best way to go if the model has multiple inputs and multiple outputs and you can connect the layers as a directed acyclic graph.</span></li><li style="font-weight: 400;" aria-level="1"><b>Model subclassing</b><span style="font-weight: 400;">: If your model architecture includes recursive structures, you can use model sub-classing.</span></li></ul><h3><span style="font-weight: 400;">TensorFlow Hub</span></h3><p><span style="font-weight: 400;">TensorFlow Hub is a library for publishing, discovering, and consuming reusable parts of machine learning models. It contains many pre-trained models, each with its self-contained TensorFlow graphs, weights, and assets.</span></p><p><a href="https://opendatascience.com/wp-content/uploads/2022/10/tf3.png" target="_blank" rel="noopener"><img decoding="async" class="aligncenter wp-image-40155 size-full lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2022/10/tf3.png" alt="" width="542" height="443" /><noscript><img decoding="async" class="aligncenter wp-image-40155 size-full lazyload" src="https://opendatascience.com/wp-content/uploads/2022/10/tf3.png" alt="" width="542" height="443" /></noscript></a></p><h3><span style="font-weight: 400;">TensorFlow Federated</span></h3><p><span style="font-weight: 400;">TensorFlow Federated (TFF) is an open-source framework for federated learning developed by Google. It was released in September 2018 and is available on GitHub. TFF enables developers to build decentralized applications that run on various devices, including smartphones, sensors, and edge devices. TFF provides tools for data privacy and security issues inherent in decentralized applications. In addition, TFF allows developers to create custom models that can be federated across several devices. TensorFlow Federated is an essential tool for developing next-generation decentralized applications.</span></p><h3><span style="font-weight: 400;">TensorBoard</span></h3><p><span style="font-weight: 400;">TensorBoard is a powerful tool for visualizing and understanding complex neural networks. It allows users to view the structure of their networks and the training progress and performance. TensorBoard also enables users to inspect individual neurons and layers, providing insight into how the network is learning. In addition, TensorBoard can perform comparative analysis, allowing users to compare different network architectures side-by-side. As a result, TensorBoard is an essential tool for anyone working with neural networks.</span></p><h3><span style="font-weight: 400;">Tensorflow Js</span></h3><p><span style="font-weight: 400;">TensorFlow.js is an open-source hardware-accelerated JavaScript library for training and deploying machine learning models. It is specifically designed to take advantage of the WebGL API to perform fast matrix operations on the GPU. This makes it possible to train and deploy models in the browser without the need for any server-side code. TensorFlow.js also includes many pre-trained models that can be used for object detection and image classification tasks. In addition, the library provides a series of tools that makes it easy to convert existing TensorFlow models into the format required by TensorFlow.js. This makes it possible to use existing ML models in your web applications without retraining them from scratch. Ultimately, TensorFlow.js enables you to harness the power of machine learning in your web applications without compromising on performance or accuracy.</span></p><h2><span style="font-weight: 400;">Next Steps</span></h2><p><span style="font-weight: 400;">You can learn more about TensorFlow and how you can use it to build complex networks and build efficient machine learning pipelines from the book I co-authored with </span><a href="https://www.linkedin.com/in/searchguy/"><span style="font-weight: 400;">Antonio Guili</span></a> <span style="font-weight: 400;">and </span><a href="https://www.linkedin.com/in/sujitpal/"><span style="font-weight: 400;">Sujit Pal</span></a><span style="font-weight: 400;">: </span><a href="https://www.amazon.com/Deep-Learning-TensorFlow-Keras-reinforcement/dp/1803232919"><span style="font-weight: 400;">Deep Learning with TensorFlow and Keras, 3rd Edition</span></a>.</p><p><span style="font-weight: 400;">Or you can also get hands-on experience on some of the components of the TensorFlow ecosystem by attending my workshop at ODSC West 2022 on </span><a href="https://odsc.com/speakers/deep-learning-with-python-and-keras-tensorflow-2/"><span style="font-weight: 400;">Deep Learning with Python and Keras (Tensorflow 2)</span></a>.</p><p><img decoding="async" class="alignleft lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2022/08/Amita-Kapoor-Cropped.jpg" /><noscript><img decoding="async" class="alignleft lazyload" src="https://odsc.com/wp-content/uploads/2022/08/Amita-Kapoor-Cropped.jpg" /></noscript>Amita Kapoor is the author of best-selling books in the field of Artificial Intelligence and Deep Learning. She mentors students at different online platforms such as Udacity and Coursera and is a research and tech advisor to organizations like DeepSight AI Labs and MarkTechPost. She started her academic career in the Department of Electronics, SRCASW, the University of Delhi, where she was an Associate Professor. She has over 20 years of experience in actively researching and teaching neural networks and artificial intelligence at the university level. A DAAD fellow, she has won many accolades the most recent being Intel AI Spotlight award 2019, Europe. An active researcher, she has more than 50 publications in international journals and conferences. Extremely passionate about using AI for the betterment of society and humanity in general, she is ready to embark on her second innings as a digital nomad.</p></div></div></div></div><div class = "tatsu-column-bg-image-wrap"><div class = "tatsu-column-bg-image" ></div></div><div class="tatsu-overlay tatsu-column-overlay tatsu-animate-none" ></div></div><style>.tatsu-row > .tatsu-B1SATY_Gj.tatsu-column{width: 100%;}.tatsu-B1SATY_Gj.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-B1SATY_Gj > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-B1SATY_Gj > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-B1SATY_Gj > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-B1SATY_Gj > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-B1SATY_Gj.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-B1SATY_Gj.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-B1SATY_Gj.tatsu-column{width: 100%;}}</style></div></div></div></div><div class="tatsu-section-background-wrap"><div class = "tatsu-section-background" ></div></div><div class="tatsu-overlay tatsu-section-overlay"></div><style>.tatsu-BkbBCaKOfi .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-BkbBCaKOfi > .tatsu-bottom-divider{z-index: 9999;}.tatsu-BkbBCaKOfi > .tatsu-top-divider{z-index: 9999;}.tatsu-BkbBCaKOfi .tatsu-section-overlay{mix-blend-mode: normal;}</style></div></div></div></div><div class="clearfix"></div></div></div><div class="blog-separator clearfix"><hr class="separator" /></div></article><article id="post-85006" class="element not-wide blog-post clearfix post-85006 post type-post status-publish format-standard has-post-thumbnail hentry category-deep-learning"><div class="element-inner" style=""><div class="post-content-wrap"><header class="post-header clearfix"><div class="post-thumb"><div class=""> <a href="https://odsc.com/blog/a-recap-of-our-interview-with-pieter-abbeel-on-deep-reinforcement-learning/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2022/09/PieterAbbeelTop.png" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2022/09/PieterAbbeelTop.png 640w, https://odsc.com/wp-content/uploads/2022/09/PieterAbbeelTop-300x141.png 300w, https://odsc.com/wp-content/uploads/2022/09/PieterAbbeelTop-107x50.png 107w, https://odsc.com/wp-content/uploads/2022/09/PieterAbbeelTop-50x23.png 50w, https://odsc.com/wp-content/uploads/2022/09/PieterAbbeelTop-100x47.png 100w" sizes="(max-width: 640px) 100vw, 640px" /><div class="thumb-overlay"><div class="thumb-bg"><div class="thumb-title fadeIn animated"> <i class="portfolio-ovelay-icon"></i></div></div></div> </a></div></div></header><div class="article-details"><div class="clearfix post-title-section-wrap"><div class="left post-date-wrap"><div>Sep</div><div>29</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/a-recap-of-our-interview-with-pieter-abbeel-on-deep-reinforcement-learning/"> A Recap of Our Interview with Pieter Abbeel on Deep Reinforcement Learning </a></h2><nav class="post-nav meta-font secondary_text"><ul class="clearfix"><li class="post-meta post-author">Posted By : ODSC Team<span class="post-meta-sep">/</span></li><li class="post-meta post-comments"> <a href="https://odsc.com/blog/a-recap-of-our-interview-with-pieter-abbeel-on-deep-reinforcement-learning/#respond">0 comments</a> <span class="post-meta-sep">/</span></li><li class="post-meta post-category">Under :<a href="https://odsc.com/blog/category/deep-learning/" style= "color: ;" data-background-color = "" title="View all posts in Deep Learning"> Deep Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-Sk-q5qwQGs tatsu-section tatsu-bg-overlay tatsu-clearfix" data-title="" data-headerscheme="background--dark"><div class='tatsu-section-pad clearfix' data-padding='{"d":"0px 0px 0px 0px"}' data-padding-top='0px'><div class="tatsu-row-wrap tatsu-wrap tatsu-row-one-col tatsu-row-has-one-cols tatsu-medium-gutter tatsu-reg-cols tatsu-clearfix tatsu-HklqqcD7Gs" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-S1cc9wmzj" data-parallax-speed="0" style=""><div class="tatsu-column-inner " ><div class="tatsu-column-pad-wrap"><div class="tatsu-column-pad" ><div class="tatsu-module tatsu-text-block-wrap tatsu-Hkni9vmzi "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-Hkni9vmzi.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><span style="font-weight: 400;">As newer fields emerge within data science and the research is still hard to grasp, sometimes it’s best to talk to the experts and pioneers of the field. Recently, we spoke with Pieter Abbeel, PhD, Director of the Berkeley Robot Learning Lab and Co-Director of the Berkeley Artificial Intelligence (BAIR) Lab ahead of his upcoming </span><a href="https://odsc.com/speakers/foundations-of-deep-reinforcement-learning/"><span style="font-weight: 400;">ODSC West 2022 training session</span></a><span style="font-weight: 400;"> on deep reinforcement learning. You can </span><a href="https://www.youtube.com/watch?v=2s3uyKvfGF4&t=720s&ab_channel=OpenDataScience"><span style="font-weight: 400;">watch the full Lightning Interview here</span></a><span style="font-weight: 400;">, and read the transcript for the first few questions below.</span></p><p><b>Q: First and foremost, tell us about your research.</b></p><p><span style="font-weight: 400;">My research I would say generally is in artificial intelligence, and it’s something I’ve been excited about for a very long time. I remember at the end of my undergraduate studies, and this is back in the late 90s a long time ago, asking myself “What is the most exciting thing I want to do for the rest of my life what do you want to specialize in?” I remember thinking there’s just nothing more exciting than trying to understand how human intelligence works.</span></p><p><span style="font-weight: 400;">But then it also occurred to me that it’s very hard to understand human intelligence, it’s very hard to measure anything in the brain, and it was not clear how much progress was really possible. Then I thought, “Well you know, what if we try to build intelligence?” You know, approach it from an engineering perspective as that gives a lot of insight and also allows us to build systems that can be really helpful in many ways. Ever since then I’ve been pursuing AI research and I’m still equally excited – if anything even more excited these days – because it’s proving useful now. When I started it was just an academic interest but now there are so many applications which is really exciting.</span></p><p><b>Q: Can you give us a quick overview of deep reinforcement learning?</b></p><p><span style="font-weight: 400;">Within AI, there are of course many areas of research, and my own research has been largely in <a href="https://opendatascience.com/category/modeling/deep-learning/" target="_blank" rel="noopener">deep reinforcement learning</a>. The easiest way to explain reinforcement learning is by first explaining supervised learning. In supervised learning, the way you build an intelligent system is by giving examples. For example, you might give an image and say “What’s in the image? A cat.” Give another image and say, ”What’s an image? Maybe a dog” and keep giving examples. Then you would train a typically very large neural network to learn to internalize the pattern based on what you see and what should you say is in the image. This is directly learning from examples, and it can work really well if you can collect enough examples for the pattern you want your AI system to internalize.</span></p><p><span style="font-weight: 400;">But now reinforcement learning is a little different and has always been a bit more exciting to me, because in reinforcement learning, you’re actually not required to give examples. The idea in reinforcement learning is that you just specify the goal your AI is supposed to achieve. For example, maybe in a video game – maximize the score in the game. Or maybe for a robot, let’s say run as fast as possible, or maybe do a flip, or maybe they can place items in a warehouse as we do at Covariant. And so in reinforcement learning, you just specify what you want and then the agent is supposed to figure out from its own experimentation what’s the best way to achieve this.</span></p><p><span style="font-weight: 400;">This has two really interesting benefits. One benefit is that it’s simpler, from a human perspective, as you don’t have to exhaustively give examples – you just provide a specification and then the system learns on its own. Of course, it’s a more complicated system that it’s required to do, but it’s simple as a human to specify what’s required. Another really interesting benefit is that it can actually exceed human capabilities because you could specify something – some score or some metric – that it will then optimize and it might find a way to achieve a higher performance than you as a human could demonstrate. It allows it to effectively discover new things in the direction that you wanted to try to discover new things.</span></p><p><iframe class="lazyload" title="YouTube video player" data-src="https://www.youtube.com/embed/2s3uyKvfGF4" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen" data-mce-fragment="1"></iframe></p><p><b>Q: Can you give us some background information for your upcoming session at ODSC West?</b></p><p><span style="font-weight: 400;">We’re going to cover a wide range of algorithms actually used in reinforcement learning. It’s interesting – in reinforcement learning, there’s no single approach that’s like “This is what you use.” Compare that to supervised learning, where you set up a null net architecture and you run backpropagation gradient descents to cast grain descent, and at the end of the day your model has been trained. In reinforcement learning, there’s a lot more complexity for the agent and it’s also not fully converged, so we’re going to cover a range of approaches.</span></p><p><span style="font-weight: 400;">When we think about reinforcement learning, there’s kind of two big categories of approaches. One category is model-based reinforcement learning. The idea here is that the agent doesn’t just learn from its trial and error in the world, but also builds an internal model of the world from that trial and error, and then simulates how things go in that model. So there’s additional learning happening in a learned simulator which can often make it a lot more efficient in terms of the amount of real-world interaction that’s required, because a lot of the learning of the agent happens in the simulator it’s building on its own from its experiences.</span></p><p><span style="font-weight: 400;">We’ll also look at model-free approaches. In model-free approaches, the data that the agent collects through trial and error is used to directly improve a policy or a Q function which are essentially the underlying constructs that the agent uses to make its decisions the next time it gets to do an experiment in the world. </span></p><p><span style="font-weight: 400;">We’ll look at both of these and the foundations of what’s under them. Even within those, there are different methods because it’s not a converged field, so I’ll show you the nuances of why people might prefer different methods in different situations. It can depend on how expensive it is to collect data in the environment, it can depend how expensive it is to assimilate, it can depend on how large the neural network that’s being trained is, and so forth.</span></p><p><span style="font-weight: 400;">We’ll look at those nuances, and then from there, once you’ve seen the foundations, we’ll also look at a couple of the very important aspects of getting reinforcement learning to work for real-world applications. When you think about reinforcement learning in the purest sense, you think of this agent that just starts from scratch and figures it out. But for many real-world problems, and even academic research problems like similar robotic problems or games and so forth, it’s actually sometimes very hard for the agent to learn from scratch. So often we need other things to make the agent more efficient.</span></p><p><span style="font-weight: 400;">The way to think of that is at a high level, and it’s actually where a lot of the research in my own lab at Berkeley is right now, can we make agents play just like children would play? When you think about play, what’s the fundamental concept of play? It’s that you actually don’t have to prescribe what the task is. It’s the idea is that the agent should just, on its own, do a wide range of interesting things, and in the process, hopefully acquire interesting skills. Maybe a humanoid robot, when asked to play, would learn to crawl, would learn to get up, would learn to run, would maybe learn to open doors, pick up objects, and so forth, just because that’s a way to keep itself entertained. Getting that to emerge in AI systems, rather than just humans.</span></p><p><b>More on Pieter Abbeel’s <a href="https://odsc.com/speakers/foundations-of-deep-reinforcement-learning/">ODSC West 2022 Session</a> on Deep Reinforcement Learning</b></p><p><span style="font-weight: 400;"><a href="https://odsc.com/wp-content/uploads/2022/07/Pieter-Abbeel_AVL_0566_3-Cropped.jpg" target="_blank" rel="noopener"><img decoding="async" class="alignleft lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2022/07/Pieter-Abbeel_AVL_0566_3-Cropped.jpg" alt="" width="250" height="250" /><noscript><img decoding="async" class="alignleft lazyload" src="https://odsc.com/wp-content/uploads/2022/07/Pieter-Abbeel_AVL_0566_3-Cropped.jpg" alt="" width="250" height="250" /></noscript></a>Deep Reinforcement Learning equips AI agents with the ability to learn from their own trial and error. Success stories include learning to play Atari games, Go, Dota2, and robots learning to run, jump, and manipulate. This tutorial will cover the foundations of Deep Reinforcement Learning, including MDPs, DQN, Policy Gradients, TRPO, PPO, DDPG, SAC, TD3, model-based RL, as well as current research frontiers.</span></p><p><span style="font-weight: 400;">Session Outline:</span></p><ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Module 1: Introduction to Markov Decision Processes (MDPs) and Exact Solution Methods (which only apply to small problems)</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Module 2: Deep Q Networks and Application to Atari</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Module 3: Policy Gradients, Trust Region Policy Optimization (TRPO), Proximal Policy Optimization (PPO), Deep Deterministic Policy Gradients (DDPG), Twin Delayed Deep Deterministic Policy Gradients (TD3), Soft Actor Critic (SAC), and Application to Robot Learning</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Module 4: Model-based Reinforcement Learning</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Module 5: Current Research Frontier</span></li></ul></div></div></div></div><div class = "tatsu-column-bg-image-wrap"><div class = "tatsu-column-bg-image" ></div></div><div class="tatsu-overlay tatsu-column-overlay tatsu-animate-none" ></div></div><style>.tatsu-row > .tatsu-S1cc9wmzj.tatsu-column{width: 100%;}.tatsu-S1cc9wmzj.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-S1cc9wmzj > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-S1cc9wmzj > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-S1cc9wmzj > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-S1cc9wmzj > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-S1cc9wmzj.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-S1cc9wmzj.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-S1cc9wmzj.tatsu-column{width: 100%;}}</style></div></div></div></div><div class="tatsu-section-background-wrap"><div class = "tatsu-section-background" ></div></div><div class="tatsu-overlay tatsu-section-overlay"></div><style>.tatsu-Sk-q5qwQGs .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-Sk-q5qwQGs > .tatsu-bottom-divider{z-index: 9999;}.tatsu-Sk-q5qwQGs > .tatsu-top-divider{z-index: 9999;}.tatsu-Sk-q5qwQGs .tatsu-section-overlay{mix-blend-mode: normal;}</style></div></div></div></div><div class="clearfix"></div></div></div><div class="blog-separator clearfix"><hr class="separator" /></div></article></div><div class="pagination_parent style1-blog" style="margin-left: 0px;"><div class="pagination secondary_text"><span class='current alt-bg alt-bg-text-color'>1</span><a href='https://odsc.com/blog/category/deep-learning/page/2/' class='inactive sec-bg sec-color' >2</a><a href='https://odsc.com/blog/category/deep-learning/page/3/' class='inactive sec-bg sec-color' >3</a><a href='https://odsc.com/blog/category/deep-learning/page/4/' class='inactive sec-bg sec-color' >4</a><a href='https://odsc.com/blog/category/deep-learning/page/5/' class='inactive sec-bg sec-color' >5</a><a href='https://odsc.com/blog/category/deep-learning/page/6/' class='inactive sec-bg sec-color' >6</a><a href='https://odsc.com/blog/category/deep-learning/page/7/' class='inactive sec-bg sec-color' >7</a></div></div></div></div></section><section id="right-sidebar" class="sidebar-widgets"><div class="sidebar-widgets-wrap"><div class="widget_media_image widget"><a href="https://odsc.com/boston/"><img width="300" height="250" src="https://odsc.com/wp-content/uploads/2024/11/EAST2024_Black-Friday_Blog-Banners_300x250.png" class="image wp-image-122605 attachment-full size-full" alt="" style="max-width: 100%; height: auto;" decoding="async" srcset="https://odsc.com/wp-content/uploads/2024/11/EAST2024_Black-Friday_Blog-Banners_300x250.png 300w, https://odsc.com/wp-content/uploads/2024/11/EAST2024_Black-Friday_Blog-Banners_300x250-60x50.png 60w, https://odsc.com/wp-content/uploads/2024/11/EAST2024_Black-Friday_Blog-Banners_300x250-50x42.png 50w, https://odsc.com/wp-content/uploads/2024/11/EAST2024_Black-Friday_Blog-Banners_300x250-100x83.png 100w" sizes="(max-width: 300px) 100vw, 300px" /></a></div><div class="widget_categories widget"><h6>Categories</h6><ul><li class="cat-item cat-item-313"><a href="https://odsc.com/blog/category/accelerate-ai/">Accelerate AI</a> (21)</li><li class="cat-item cat-item-5948"><a href="https://odsc.com/blog/category/bootcamp/">Bootcamp</a> (1)</li><li class="cat-item cat-item-305"><a href="https://odsc.com/blog/category/career/">Career</a> (7)</li><li class="cat-item cat-item-5951"><a href="https://odsc.com/blog/category/career-advice/">Career Advice</a> (2)</li><li class="cat-item cat-item-5946"><a href="https://odsc.com/blog/category/convince-your-boss/">Convince Your Boss</a> (1)</li><li class="cat-item cat-item-1"><a href="https://odsc.com/blog/category/data-science/">Data Science</a> (350)</li><li class="cat-item cat-item-303"><a href="https://odsc.com/blog/category/data-visualization/">Data Visualization</a> (13)</li><li class="cat-item cat-item-24 current-cat"><a aria-current="page" href="https://odsc.com/blog/category/deep-learning/">Deep Learning</a> (33)</li><li class="cat-item cat-item-5950"><a href="https://odsc.com/blog/category/industry/">Industry</a> (2)</li><li class="cat-item cat-item-21"><a href="https://odsc.com/blog/category/machine-learning/">Machine Learning</a> (87)</li><li class="cat-item cat-item-306"><a href="https://odsc.com/blog/category/nlp/">NLP</a> (33)</li><li class="cat-item cat-item-22"><a href="https://odsc.com/blog/category/python/">Python</a> (6)</li><li class="cat-item cat-item-23"><a href="https://odsc.com/blog/category/r/">R</a> (1)</li><li class="cat-item cat-item-2735"><a href="https://odsc.com/blog/category/statistics/">Statistics</a> (2)</li></ul></div><div class="widget_text widget_custom_html widget"><div class="textwidget custom-html-widget"><!--[if lte IE 8]> <script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2-legacy.js"></script> <![endif]--> <script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/v2.js"></script> <script> hbspt.forms.create({ portalId: '1865444', formId: '2db28ac9-d988-42c8-bf91-29f8f7fcfac1' }); </script></div></div><div class="widget_recent_entries widget"><h6>Recent Posts</h6><ul class="recent_post_container"><li class="recent_posts clearfix sec-border-bottom"><div class="recent_post_img"> <a href="https://odsc.com/blog/announcing-odsc-east-2025-the-10th-anniversary-of-the-best-ai-builders-event-around/" title="Announcing ODSC East 2025 – The 10th Anniversary of the Best AI Builders Event Around!"> <img width="50" height="50" src="https://odsc.com/wp-content/uploads/2024/11/East-2025-Top-100x100.png" class="attachment-50x50 size-50x50 wp-post-image" alt="Announcing ODSC East 2025 - The 10th Anniversary of the Best AI Builders Event Around!" decoding="async" srcset="https://odsc.com/wp-content/uploads/2024/11/East-2025-Top-100x100.png 100w, https://odsc.com/wp-content/uploads/2024/11/East-2025-Top-150x150.png 150w, https://odsc.com/wp-content/uploads/2024/11/East-2025-Top-300x300.png 300w, https://odsc.com/wp-content/uploads/2024/11/East-2025-Top-45x45.png 45w" sizes="(max-width: 50px) 100vw, 50px" /> </a></div><div class="recent_post_content"> <a href="https://odsc.com/blog/announcing-odsc-east-2025-the-10th-anniversary-of-the-best-ai-builders-event-around/" title="Announcing ODSC East 2025 – The 10th Anniversary of the Best AI Builders Event Around!"> Announcing ODSC East 2025 – The 10th Anniversary of the Best AI Builders Event Around!</a> <span class="recent-post-date">November 19,2024</span></div></li><li class="recent_posts clearfix sec-border-bottom"><div class="recent_post_img"> <a href="https://odsc.com/blog/boost-your-career-with-hands-on-ai-training-at-odsc-west-2024/" title="Boost Your Career with Hands-On AI Training at ODSC West 2024"> <img width="50" height="50" src="https://odsc.com/wp-content/uploads/2024/08/Bris-326-1-100x100.jpg" class="attachment-50x50 size-50x50 wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2024/08/Bris-326-1-100x100.jpg 100w, https://odsc.com/wp-content/uploads/2024/08/Bris-326-1-150x150.jpg 150w, https://odsc.com/wp-content/uploads/2024/08/Bris-326-1-300x300.jpg 300w, https://odsc.com/wp-content/uploads/2024/08/Bris-326-1-45x45.jpg 45w" sizes="(max-width: 50px) 100vw, 50px" /> </a></div><div class="recent_post_content"> <a href="https://odsc.com/blog/boost-your-career-with-hands-on-ai-training-at-odsc-west-2024/" title="Boost Your Career with Hands-On AI Training at ODSC West 2024"> Boost Your Career with Hands-On AI Training at ODSC West 2024</a> <span class="recent-post-date">October 22,2024</span></div></li><li class="recent_posts clearfix sec-border-bottom"><div class="recent_post_img"> <a href="https://odsc.com/blog/top-speakers-at-odsc-west-innovators-leading-the-future-of-ai-and-data-science/" title="Top Speakers at ODSC West: Innovators Leading the Future of AI and Data Science"> <img width="50" height="50" src="https://odsc.com/wp-content/uploads/2023/02/BRIS2403-90x90.jpg" class="attachment-50x50 size-50x50 wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2023/02/BRIS2403-90x90.jpg 90w, https://odsc.com/wp-content/uploads/2023/02/BRIS2403-150x150.jpg 150w, https://odsc.com/wp-content/uploads/2023/02/BRIS2403-120x120.jpg 120w, https://odsc.com/wp-content/uploads/2023/02/BRIS2403-300x300.jpg 300w, https://odsc.com/wp-content/uploads/2023/02/BRIS2403-45x45.jpg 45w" sizes="(max-width: 50px) 100vw, 50px" /> </a></div><div class="recent_post_content"> <a href="https://odsc.com/blog/top-speakers-at-odsc-west-innovators-leading-the-future-of-ai-and-data-science/" title="Top Speakers at ODSC West: Innovators Leading the Future of AI and Data Science"> Top Speakers at ODSC West: Innovators Leading the Future of AI and Data Science</a> <span class="recent-post-date">October 22,2024</span></div></li><li class="recent_posts clearfix sec-border-bottom"><div class="recent_post_img"> <a href="https://odsc.com/blog/exciting-robotics-and-ai-developments-coming-to-odsc-west-2024/" title="Exciting Robotics and AI Developments Coming to ODSC West 2024"> <img width="50" height="50" src="https://odsc.com/wp-content/uploads/2024/10/2024-04-23-10.24.02-100x100.jpg" class="attachment-50x50 size-50x50 wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2024/10/2024-04-23-10.24.02-100x100.jpg 100w, https://odsc.com/wp-content/uploads/2024/10/2024-04-23-10.24.02-150x150.jpg 150w, https://odsc.com/wp-content/uploads/2024/10/2024-04-23-10.24.02-300x300.jpg 300w, https://odsc.com/wp-content/uploads/2024/10/2024-04-23-10.24.02-320x326.jpg 320w, https://odsc.com/wp-content/uploads/2024/10/2024-04-23-10.24.02-45x45.jpg 45w" sizes="(max-width: 50px) 100vw, 50px" /> </a></div><div class="recent_post_content"> <a href="https://odsc.com/blog/exciting-robotics-and-ai-developments-coming-to-odsc-west-2024/" title="Exciting Robotics and AI Developments Coming to ODSC West 2024"> Exciting Robotics and AI Developments Coming to ODSC West 2024</a> <span class="recent-post-date">October 22,2024</span></div></li><li class="recent_posts clearfix sec-border-bottom"><div class="recent_post_img"> <a href="https://odsc.com/blog/12-ai-insight-talks-to-help-improve-your-companys-ai-game-at-odsc-west/" title="12 AI Insight Talks to Help Improve Your Company’s AI Game at ODSC West"> <img width="50" height="50" src="https://odsc.com/wp-content/uploads/2024/04/BRIS4305-640x300-1-100x100.jpg" class="attachment-50x50 size-50x50 wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2024/04/BRIS4305-640x300-1-100x100.jpg 100w, https://odsc.com/wp-content/uploads/2024/04/BRIS4305-640x300-1-150x150.jpg 150w, https://odsc.com/wp-content/uploads/2024/04/BRIS4305-640x300-1-300x300.jpg 300w, https://odsc.com/wp-content/uploads/2024/04/BRIS4305-640x300-1-45x45.jpg 45w" sizes="(max-width: 50px) 100vw, 50px" /> </a></div><div class="recent_post_content"> <a href="https://odsc.com/blog/12-ai-insight-talks-to-help-improve-your-companys-ai-game-at-odsc-west/" title="12 AI Insight Talks to Help Improve Your Company’s AI Game at ODSC West"> 12 AI Insight Talks to Help Improve Your Company’s AI Game at ODSC West</a> <span class="recent-post-date">October 22,2024</span></div></li></ul></div></div></section></div></section><footer id="bottom-widgets"><div id="bottom-widgets-wrap" class="be-wrap be-row clearfix"><div class="one-fourth column-block clearfix"><div class="widget_text widget"><h6>Open Data Science</h6><div class="textwidget"><div class="textwidget"><div class="tatsu-module tatsu-normal-icon tatsu-icon-shortcode align-none tatsu-goka2it139bzrcg7 "> <style>.tatsu-goka2it139bzrcg7 .tatsu-icon{background-color: #00aced;color: #ffffff ;border-color: #ffffff; }.tatsu-goka2it139bzrcg7 .tatsu-icon:hover{background-color: #00aced;color: #ffffff ;}</style><p> </p></div><div class="tatsu-module tatsu-normal-icon tatsu-icon-shortcode align-none tatsu-goka2it16zd3n28v "> <style>.tatsu-goka2it16zd3n28v .tatsu-icon{background-color: #3B5998;color: #ffffff ;border-color: #ffffff; }.tatsu-goka2it16zd3n28v .tatsu-icon:hover{background-color: #3B5998;color: #ffffff ;}</style><p> </p></div><div class="tatsu-module tatsu-normal-icon tatsu-icon-shortcode align-none tatsu-goka2it19262p6uh "> <style>.tatsu-goka2it19262p6uh .tatsu-icon{background-color: #bb0000;color: #ffffff ;border-color: #ffffff; }.tatsu-goka2it19262p6uh .tatsu-icon:hover{background-color: #bb0000;color: #ffffff ;}</style><p> </p></div><p>Open Data Science<br /> One Broadway<br /> Cambridge, MA 02142<br /> info@odsc.com</p></div></div></div></div><div class="one-fourth column-block clearfix"><div class="widget_nav_menu widget"><h6>Menu</h6><div class="menu-footer_nav-container"><ul id="menu-footer_nav" class="menu"><li id="menu-item-34705" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-34705"><a href="/boston/partner-odsc-east/" title="Partner with ODSC">Partner with ODSC</a></li><li id="menu-item-1656" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1656"><a href="https://www.opendatascience.com/" title="Blog">Blog</a></li><li id="menu-item-1657" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1657"><a href="https://aiplus.training/" title="Training">Training</a></li><li id="menu-item-1655" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1655"><a href="https://jobs.opendatascience.com/" title="Jobs">Jobs</a></li><li id="menu-item-14010" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14010"><a href="https://odsc.com/faq/" title="FAQ">FAQ</a></li></ul></div></div></div><div class="one-fourth column-block clearfix"><div class="widget_nav_menu widget"><h6>Conferences</h6><div class="menu-conf_footer-container"><ul id="menu-conf_footer" class="menu"><li id="menu-item-27912" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27912"><a href="/boston/" title="East 2025">East 2025</a></li><li id="menu-item-45631" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-45631"><a href="/europe/" title="Europe 2025">Europe 2025</a></li><li id="menu-item-19688" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-19688"><a href="/apac/" title="APAC 2025">APAC 2025</a></li><li id="menu-item-1661" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1661"><a href="/california/" title="West 2025">West 2025</a></li></ul></div></div></div><div class="one-fourth column-block clearfix"><div class="widget_nav_menu widget"><h6>Extras</h6><div class="menu-extras-container"><ul id="menu-extras" class="menu"><li id="menu-item-1663" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1663"><a href="https://opendatascience.com/newsletter/?__hstc=19222759.9747cccda111769b206e3552831bc327.1533925250574.1535328146852.1535383810113.51&__hssc=19222759.10.1535383810113&__hsfp=1117387146" title="Newsletter">Newsletter</a></li><li id="menu-item-58125" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58125"><a href="/about-open-data-science-conference/" title="About">About</a></li><li id="menu-item-1666" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1666"><a href="https://odsc.com/code-of-conduct/" title="Code of Conduct">Code of Conduct</a></li><li id="menu-item-1667" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1667"><a href="https://odsc.com/privacy-policy/" title="Privacy Policy">Privacy Policy</a></li></ul></div></div></div></div></footer><footer id="footer" class="layout-wide"> <span class="footer-border "></span><div id="footer-wrap" class=" style1 clearfix"><div class="footer-left-area"></div><div class="footer-center-area"><div class="footer-content-inner-center"> Copyright ODSC 2024. All Rights Reserved</div></div><div class="footer-right-area"></div></div></footer></div><div class="loader page-loader"><div class="loader-style1-wrap"><div class="loader-style1-double-bounce1"></div><div class="loader-style1-double-bounce2"></div></div></div> <a href="#" id="back-to-top" class="layout-wide"><i class="font-icon icon-arrow_carrot-up"></i></a></div> <input type="hidden" id="ajax_url" value="https://odsc.com/wp-admin/admin-ajax.php" /><div id="gdpr-popup" class="be-gdpr-popup mfp-hide " data-rel="gdpr-popup-gallery" ><div class="be-gdpr-modal" ><div class="be-modal-content-wrapper" ><div class="be-gdpr-modal-heading" >Privacy Settings</div><div class="be-gdpr-modal-desc" > We use cookies to enhance your experience while using our website. If you are using our Services via a browser you can restrict, block or remove cookies through your web browser settings. We also use content and scripts from third parties that may use tracking technologies. You can selectively provide your consent below to allow such third party embeds. For complete information about the cookies we use, data we collect and how we process them, please check our <a target="_blank" href="">Privacy Policy</a></div><div class="be-gdpr-modal-items" ><div class="be-gdpr-modal-item" ><div class="be-gdpr-modal-item-head" >Youtube</div><div class="be-gdpr-modal-item-desc" >Consent to display content from - Youtube</div><div class="be-gdpr-modal-item-switch"> <label class="switch be-modal-switch"> <input class="be-gdpr-switch-input" value="youtube" type="checkbox"> <span class="slider round"></span> </label></div></div><div class="be-gdpr-modal-item" ><div class="be-gdpr-modal-item-head" >Vimeo</div><div class="be-gdpr-modal-item-desc" >Consent to display content from - Vimeo</div><div class="be-gdpr-modal-item-switch"> <label class="switch be-modal-switch"> <input class="be-gdpr-switch-input" value="vimeo" type="checkbox"> <span class="slider round"></span> </label></div></div><div class="be-gdpr-modal-item" ><div class="be-gdpr-modal-item-head" >Google Maps</div><div class="be-gdpr-modal-item-desc" >Consent to display content from - Google</div><div class="be-gdpr-modal-item-switch"> <label class="switch be-modal-switch"> <input class="be-gdpr-switch-input" value="gmaps" type="checkbox"> <span class="slider round"></span> </label></div></div></div></div><div class="be-gdpr-modal-footer" ><div class="be-gdpr-modal-save-btn" onClick="gdprSaveBtnClick(event);" >Save</div></div></div></div> <script type="text/javascript"> adroll_adv_id = "MN7XH5FMX5AODAUTQ7LEYH"; adroll_pix_id = "4WF3QPQPGRHLJNYPUIJSDC"; (function () { var _onload = function(){ if (document.readyState && !/loaded|complete/.test(document.readyState)){setTimeout(_onload, 10);return} if (!window.__adroll_loaded){__adroll_loaded=true;setTimeout(_onload, 50);return} var scr = document.createElement("script"); var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com"); scr.setAttribute('async', 'true'); scr.type = "text/javascript"; scr.src = host + "/j/roundtrip.js"; ((document.getElementsByTagName('head') || [null])[0] || document.getElementsByTagName('script')[0].parentNode).appendChild(scr); }; if (window.addEventListener) {window.addEventListener('load', _onload, false);} else {window.attachEvent('onload', _onload)} }()); </script> <script type="text/javascript"> _linkedin_partner_id = "44953"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script><script type="text/javascript"> (function(l) { if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; window.lintrk.q=[]} var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(window.lintrk); </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=44953&fmt=gif" /> </noscript><script type="text/javascript"> adroll_adv_id = "MN7XH5FMX5AODAUTQ7LEYH"; adroll_pix_id = "4WF3QPQPGRHLJNYPUIJSDC"; (function () { var _onload = function(){ if (document.readyState && !/loaded|complete/.test(document.readyState)){setTimeout(_onload, 10);return} if (!window.__adroll_loaded){__adroll_loaded=true;setTimeout(_onload, 50);return} var scr = document.createElement("script"); var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com"); scr.setAttribute('async', 'true'); scr.type = "text/javascript"; scr.src = host + "/j/roundtrip.js"; ((document.getElementsByTagName('head') || [null])[0] || document.getElementsByTagName('script')[0].parentNode).appendChild(scr); }; if (window.addEventListener) {window.addEventListener('load', _onload, false);} else {window.attachEvent('onload', _onload)} }()); </script> <script type='text/javascript'> window.__lo_site_id = 303225; (function() { var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true; wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s); })(); </script><div id="gallery" class="pswp" tabindex="-1" role="dialog" aria-hidden="true"><div class="pswp__bg"></div><div class="pswp__scroll-wrap"><div class="pswp__container"><div class="pswp__item"></div><div class="pswp__item"></div><div class="pswp__item"></div></div><div class="pswp__ui pswp__ui--hidden"><div class="pswp__top-bar"><div class="pswp__counter"></div> <button class="pswp__button pswp__button--close" title="Close (Esc)"></button> <button class="pswp__button pswp__button--share" title="Share"></button> <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button> <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button><div class="pswp__preloader"><div class="pswp__preloader__icn"><div class="pswp__preloader__cut"><div class="pswp__preloader__donut"></div></div></div></div></div> <!--<div class="pswp__loading-indicator"><div class="pswp__loading-indicator__line"></div></div> --><div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap"><div class="pswp__share-tooltip"> <!-- <a href="#" class="pswp__share--facebook"></a> <a href="#" class="pswp__share--twitter"></a> <a href="#" class="pswp__share--pinterest"></a> <a href="#" download class="pswp__share--download"></a> --></div></div> <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button> <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button><div class="pswp__caption"><div class="pswp__caption__center"></div></div></div></div></div><div id="pum-60769" role="dialog" aria-modal="false" class="pum pum-overlay pum-theme-47575 pum-theme-lightbox popmake-overlay click_open" data-popmake="{"id":60769,"slug":"tree","theme_id":47575,"cookies":[],"triggers":[{"type":"click_open","settings":{"cookie_name":"","extra_selectors":".path1 a"}}],"mobile_disabled":true,"tablet_disabled":null,"meta":{"display":{"stackable":false,"overlay_disabled":false,"scrollable_content":false,"disable_reposition":false,"size":"normal","responsive_min_width":"0%","responsive_min_width_unit":false,"responsive_max_width":"100%","responsive_max_width_unit":false,"custom_width":"640px","custom_width_unit":false,"custom_height":"380px","custom_height_unit":false,"custom_height_auto":false,"location":"center top","position_from_trigger":false,"position_top":"100","position_left":"0","position_bottom":"0","position_right":"0","position_fixed":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","overlay_zindex":false,"zindex":"1999999999"},"close":{"text":"","button_delay":"0","overlay_click":false,"esc_press":false,"f4_press":false},"click_open":[]}}"><div id="popmake-60769" class="pum-container popmake theme-47575 pum-responsive pum-responsive-normal responsive size-normal"><div class="pum-content popmake-content" tabindex="0"><div id="tree-container"></div> <style> .pum-theme-47575 .pum-container, .pum-theme-lightbox .pum-container {<br /> padding: 50px;<br /> border-radius: 3px;<br /> border: 8px solid #262424;<br /> box-shadow: 0px 0px 30px 0px rgb(2 2 2);<br /> background-color: rgb(0 0 0);<br /> }</p> </style></div> <button type="button" class="pum-close popmake-close" aria-label="Close"> × </button></div></div> <!-- GTM Container placement set to footer --> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M62L34N" height="0" width="0" style="display:none;visibility:hidden" aria-hidden="true"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <script> jQuery(document).ready(function($){ var links = $('#eventin-external-event-list').find('a'); $(links).attr('target', '_blank'); }); </script> <style id='etn-custom-css-inline-css' type='text/css'> .etn-event-single-content-wrap .etn-event-meta .etn-event-category span, .etn-event-item .etn-event-footer .etn-atend-btn .etn-btn-border, .etn-btn.etn-btn-border, .attr-btn-primary.etn-btn-border, .etn-attendee-form .etn-btn.etn-btn-border, .etn-ticket-widget .etn-btn.etn-btn-border, .etn-settings-dashboard .button-primary.etn-btn-border, .etn-single-speaker-item .etn-speaker-content a:hover, .etn-event-style2 .etn-event-date, .etn-event-style3 .etn-event-content .etn-title a:hover, .event-tab-wrapper ul li a.etn-tab-a, .etn-speaker-item.style-3:hover .etn-speaker-content .etn-title a, .etn-variable-ticket-widget .ticket-header, .events_calendar_list .calendar-event-details:hover .calendar-event-title, .etn-event-item:hover .etn-title a, .etn-recurring-widget .etn-date-text, .etn-event-header ul li i { color: #00bcdd; } .etn-event-item .etn-event-category span, .etn-btn, .attr-btn-primary, .etn-attendee-form .etn-btn, .etn-ticket-widget .etn-btn, .schedule-list-1 .schedule-header, .speaker-style4 .etn-speaker-content .etn-title a, .etn-speaker-details3 .speaker-title-info, .etn-event-slider .swiper-pagination-bullet, .etn-speaker-slider .swiper-pagination-bullet, .etn-event-slider .swiper-button-next, .etn-event-slider .swiper-button-prev, .etn-speaker-slider .swiper-button-next, .etn-speaker-slider .swiper-button-prev, .etn-single-speaker-item .etn-speaker-thumb .etn-speakers-social a, .etn-event-header .etn-event-countdown-wrap .etn-count-item, .schedule-tab-1 .etn-nav li a.etn-active, .schedule-list-wrapper .schedule-listing.multi-schedule-list .schedule-slot-time, .etn-speaker-item.style-3 .etn-speaker-content .etn-speakers-social a, .event-tab-wrapper ul li a.etn-tab-a.etn-active, .etn-btn, button.etn-btn.etn-btn-primary, .etn-schedule-style-3 ul li:before, .etn-zoom-btn, .cat-radio-btn-list [type=radio]:checked+label:after, .cat-radio-btn-list [type=radio]:not(:checked)+label:after, .etn-default-calendar-style .fc-button:hover, .etn-default-calendar-style .fc-state-highlight, .etn-calender-list a:hover, .events_calendar_standard .cat-dropdown-list select, .etn-event-banner-wrap, .events_calendar_list .calendar-event-details .calendar-event-content .calendar-event-category-wrap .etn-event-category, .etn-variable-ticket-widget .etn-add-to-cart-block, .etn-recurring-event-wrapper #seeMore, .more-event-tag, .etn-settings-dashboard .button-primary{ background-color: #00bcdd; } .etn-event-item .etn-event-footer .etn-atend-btn .etn-btn-border, .etn-btn.etn-btn-border, .attr-btn-primary.etn-btn-border, .etn-attendee-form .etn-btn.etn-btn-border, .etn-ticket-widget .etn-btn.etn-btn-border, .event-tab-wrapper ul li a.etn-tab-a, .event-tab-wrapper ul li a.etn-tab-a.etn-active, .etn-schedule-style-3 ul li:after, .etn-default-calendar-style .fc-ltr .fc-basic-view .fc-day-top.fc-today .fc-day-number, .etn-default-calendar-style .fc-button:hover, .etn-variable-ticket-widget .etn-variable-total-price, .etn-settings-dashboard .button-primary.etn-btn-border{ border-color: #00bcdd; } .schedule-tab-wrapper .etn-nav li a.etn-active, .etn-speaker-item.style-3 .etn-speaker-content{ border-bottom-color: #00bcdd; } .schedule-tab-wrapper .etn-nav li a:after, .etn-event-list2 .etn-event-content, .schedule-tab-1 .etn-nav li a.etn-active:after{ border-color: #00bcdd transparent transparent transparent; } .etn-default-calendar-style .fc .fc-daygrid-bg-harness:first-of-type:before{ background-color: #00bcdd2A; } .sidebar .etn-default-calendar-style .fc .fc-daygrid-bg-harness:nth-of-type(1)::before, .left-sidebar .etn-default-calendar-style .fc .fc-daygrid-bg-harness:nth-of-type(1)::before, .right-sidebar .etn-default-calendar-style .fc .fc-daygrid-bg-harness:nth-of-type(1)::before, .widget .etn-default-calendar-style .fc .fc-daygrid-bg-harness:nth-of-type(1)::before, .widgets .etn-default-calendar-style .fc .fc-daygrid-bg-harness:nth-of-type(1)::before, .main-sidebar .etn-default-calendar-style .fc .fc-daygrid-bg-harness:nth-of-type(1)::before, #sidebar .etn-default-calendar-style .fc .fc-daygrid-bg-harness:nth-of-type(1)::before{ background-color: #00bcdd; } .etn-event-item .etn-event-location, .etn-event-tag-list a:hover, .etn-schedule-wrap .etn-schedule-info .etn-schedule-time{ color: #0057c1; } .etn-event-tag-list a:hover{ border-color: #0057c1; } .etn-btn:hover, .attr-btn-primary:hover, .etn-attendee-form .etn-btn:hover, .etn-ticket-widget .etn-btn:hover, .speaker-style4 .etn-speaker-content p, .etn-btn, button.etn-btn.etn-btn-primary:hover, .etn-zoom-btn, .events_calendar_list .calendar-event-details .event-calendar-action .etn-btn, .events_calendar_list .calendar-event-details .event-calendar-action .etn-price.event-calendar-details-btn, .etn-speaker-item.style-3 .etn-speaker-content .etn-speakers-social a:hover, .etn-single-speaker-item .etn-speaker-thumb .etn-speakers-social a:hover, .etn-recurring-event-wrapper #seeMore:hover, .etn-recurring-event-wrapper #seeMore:focus, .etn-settings-dashboard .button-primary:hover{ background-color: #0057c1; } </style> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/masonry.min.js" id="masonry-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/be-gdpr/public/js/magnificpopup.min.js" id="gdprmagnificpopup-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/awsm-team-pro/js/team.min.js" id="awsm-team-js"></script> <script type="text/javascript" id="leadin-script-loader-js-js-extra"> /* <![CDATA[ */ var leadin_wordpress = {"userRole":"visitor","pageType":"archive","leadinPluginVersion":"11.1.66"}; /* ]]> */ </script> <script defer type="text/javascript" src="https://js.hs-scripts.com/1865444.js?integration=WordPress" id="leadin-script-loader-js-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/oshine-modules/public/js/vendor/asyncloader.min.js" id="asyncloader-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/accordion.min.js" id="jquery-ui-accordion-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-includes/js/jquery/ui/tabs.min.js" id="jquery-ui-tabs-js"></script> <script type="text/javascript" id="oshine-modules-js-extra"> /* <![CDATA[ */ var oshineModulesConfig = {"pluginUrl":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/","vendorScriptsUrl":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/","dependencies":{"asyncloader":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/asyncloader.min.js","backgroundcheck":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/backgroundcheck.min.js","backgroundposition":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/backgroundposition.min.js","be-modules-plugin":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/be-modules-plugin.min.js","beslider":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/beslider.min.js","countdown":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/countdown.min.js","easing":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/easing.min.js","easypiechart":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/easypiechart.min.js","fitvids":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/fitvids.min.js","fullscreenheight":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/fullscreenheight.min.js","hoverdir":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/hoverdir.min.js","imagesloaded":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/imagesloaded.min.js","isotope":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/isotope.min.js","justifiedgallery":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/justifiedgallery.min.js","magnificpopup":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/magnificpopup.min.js","mousewheel":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/mousewheel.min.js","owlcarousel":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/owlcarousel.min.js","photoswipe":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/photoswipe.min.js","resizetoparent":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/resizetoparent.min.js","rotate":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/rotate.min.js","tilt":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/tilt.min.js","typed":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/typed.min.js","vivusSVGanimation":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/vivusSVGanimation.min.js","waypoints":"https:\/\/odsc.com\/wp-content\/plugins\/oshine-modules\/public\/js\/vendor\/waypoints.min.js"}}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/oshine-modules/public/js/oshine-modules.min.js" id="oshine-modules-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/sg-cachepress/assets/js/lazysizes.min.js" id="siteground-optimizer-lazy-sizes-js-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/tatsu/public/js/vendor/es6-promise.auto.min.js" id="es6-promises-polyfill-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/tatsu/public/js/helpers.min.js" id="be-script-helpers-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/tatsu/public/js/vendor/debouncedresize.min.js" id="debouncedresize-js"></script> <script type="text/javascript" id="tatsu-js-extra"> /* <![CDATA[ */ var tatsuFrontendConfig = {"ajax_url":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","pluginUrl":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu","vendorScriptsUrl":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/","mapsApiKey":"AIzaSyBApCqI3PUzglTtm3t6AdOqBfEH0sdhN6E","dependencies":{"anime":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/anime.min.js?ver=3.5.2","asyncloader":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/asyncloader.min.js?ver=3.5.2","backgroundposition":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/backgroundposition.min.js?ver=3.5.2","begrid":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/begrid.min.js?ver=3.5.2","countTo":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/countTo.min.js?ver=3.5.2","debouncedresize":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/debouncedresize.min.js?ver=3.5.2","es6-promise.auto":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/es6-promise.auto.min.js?ver=3.5.2","fitvids":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/fitvids.min.js?ver=3.5.2","flickity":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/flickity.min.js?ver=3.5.2","hoverintent":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/hoverintent.min.js?ver=3.5.2","imagesloaded":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/imagesloaded.min.js?ver=3.5.2","isotope":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/isotope.min.js?ver=3.5.2","magnificpopup":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/magnificpopup.min.js?ver=3.5.2","stickykit":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/stickykit.min.js?ver=3.5.2","superfish":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/superfish.min.js?ver=3.5.2","tatsuCarousel":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/tatsuCarousel.min.js?ver=3.5.2","tatsuColumnParallax":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/tatsuColumnParallax.min.js?ver=3.5.2","tatsuParallax":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/tatsuParallax.min.js?ver=3.5.2","tilt":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/tilt.min.js?ver=3.5.2","typed":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/typed.min.js?ver=3.5.2","unveil":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/unveil.min.js?ver=3.5.2","vivus":"https:\/\/odsc.com\/wp-content\/plugins\/tatsu\/public\/js\/vendor\/vivus.min.js?ver=3.5.2"},"slider_icons":{"left":"<svg viewBox=\"0 0 10 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path opacity=\"0.999943\" d=\"M0 0L7 7.1759L0.343184 14\" transform=\"translate(9 15) rotate(-180)\" stroke-width=\"2\"\/>\r\n<\/svg>\r\n","right":"<svg viewBox=\"0 0 10 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M0 0L7 7.1759L0.343184 14\" transform=\"translate(1 1)\" stroke-width=\"2\"\/>\r\n<\/svg>\r\n"},"version":"3.5.2","recaptcha_type":"","recaptcha_site_key":"","tatsunonce":"b5d492ab54"}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/tatsu/public/js/tatsu.min.js" id="tatsu-js"></script> <script type="text/javascript" id="audioigniter-js-extra"> /* <![CDATA[ */ var aiStrings = {"play_title":"Play %s","pause_title":"Pause %s","previous":"Previous track","next":"Next track","toggle_list_repeat":"Toggle track listing repeat","toggle_track_repeat":"Toggle track repeat","toggle_list_visible":"Toggle track listing visibility","buy_track":"Buy this track","download_track":"Download this track","volume_up":"Volume Up","volume_down":"Volume Down","open_track_lyrics":"Open track lyrics","set_playback_rate":"Set playback rate","skip_forward":"Skip forward","skip_backward":"Skip backward","shuffle":"Shuffle"}; var aiStats = {"enabled":"","apiUrl":"https:\/\/odsc.com\/wp-json\/audioigniter\/v1"}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/audioigniter.min.js" id="audioigniter-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/gtm4wp-form-move-tracker.min.js" id="gtm4wp-form-move-tracker-js"></script> <script type="text/javascript" id="etn-public-js-extra"> /* <![CDATA[ */ var localized_data_obj = {"ajax_url":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","site_url":"https:\/\/odsc.com","evnetin_pro_active":"1","locale_name":"en-us","start_of_week":"1","expired":"Expired","author_id":"0","scanner_common_msg":"Something went wrong! Please try again.","ticket_scanner_link":"https:\/\/odsc.com\/wp-admin\/edit.php?post_type=etn-attendee","attendee_form_validation_msg":{"email":{"invalid":"Email is not valid","empty":"Please fill the field"},"tel":{"empty":"Please fill the field","invalid":"Invalid phone number","only_number":"Only number allowed"},"text":"Please fill the field","number":"Please input a number","date":"Please fill the field","radio":"Please check the field"},"post_id":"92895"}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/etn-public.min.js" id="etn-public-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/themes/oshin/oshin/js/vendor/perfect-scrollbar.jquery.min.js" id="custom-scrollbar-js"></script> <script type="text/javascript" id="be-themes-script-js-js-extra"> /* <![CDATA[ */ var oshineThemeConfig = {"vendorScriptsUrl":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/","dependencies":{"asyncloader":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/asyncloader.min.js","backgroundcheck":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/backgroundcheck.min.js","backgroundposition":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/backgroundposition.min.js","classie":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/classie.min.js","easing":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/easing.min.js","fitvids":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/fitvids.min.js","flickity":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/flickity.min.js","fullscreenheight":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/fullscreenheight.min.js","galaxycanvas":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/galaxycanvas.min.js","greensock":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/greensock.min.js","horizontalcarousel":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/horizontalcarousel.min.js","hoverintent":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/hoverintent.min.js","imagesloaded":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/imagesloaded.min.js","isotope":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/isotope.min.js","magnificpopup":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/magnificpopup.min.js","mcustomscrollbar":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/mcustomscrollbar.min.js","modernizr":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/modernizr.min.js","mousewheel":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/mousewheel.min.js","multi_level_menu":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/multi_level_menu.min.js","old_menu_animation":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/old_menu_animation.min.js","page_stack_top":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/page_stack_top.min.js","patterncanvas":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/patterncanvas.min.js","perfect-scrollbar.jquery":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/perfect-scrollbar.jquery.min.js","perspective_navigation":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/perspective_navigation.min.js","request_animation_frame":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/request_animation_frame.min.js","resizetoparent":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/resizetoparent.min.js","scrolltosections":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/scrolltosections.min.js","simplebar":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/simplebar.min.js","simplebar_old":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/simplebar_old.min.js","sticky_sections":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/sticky_sections.min.js","stickykit":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/stickykit.min.js","superfish":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/superfish.min.js","transparentheader":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/transparentheader.min.js","waterdropcanvas":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/waterdropcanvas.min.js","webfont":"https:\/\/odsc.com\/wp-content\/themes\/oshin\/oshin\/js\/vendor\/webfont.min.js"}}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/themes/oshin/oshin/js/script.min.js" id="be-themes-script-js-js"></script> <script type="text/javascript" id="popup-maker-site-js-extra"> /* <![CDATA[ */ var pum_vars = {"version":"1.20.2","pm_dir_url":"https:\/\/odsc.com\/wp-content\/plugins\/popup-maker\/","ajaxurl":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","restapi":"https:\/\/odsc.com\/wp-json\/pum\/v1","rest_nonce":null,"default_theme":"47574","debug_mode":"","disable_tracking":"","home_url":"\/","message_position":"top","core_sub_forms_enabled":"1","popups":[],"cookie_domain":"","analytics_route":"analytics","analytics_api":"https:\/\/odsc.com\/wp-json\/pum\/v1"}; var pum_sub_vars = {"ajaxurl":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","message_position":"top"}; var pum_popups = {"pum-60769":{"triggers":[{"type":"click_open","settings":{"cookie_name":"","extra_selectors":".path1 a"}}],"cookies":[],"disable_on_mobile":true,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"47575","size":"normal","responsive_min_width":"0%","responsive_max_width":"100%","custom_width":"640px","custom_height_auto":false,"custom_height":"380px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"center top","open_sound":"none","custom_sound":"","location":"center top","position_top":"100","position_bottom":"0","position_left":"0","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"0","close_on_overlay_click":false,"close_on_esc_press":false,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"lightbox","id":60769,"slug":"tree"}}; /* ]]> */ </script> <script defer type="text/javascript" src="//odsc.com/wp-content/uploads/pum/pum-site-scripts.js?defer" id="popup-maker-site-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/popup-maker/assets/js/vendor/mobile-detect.min.js" id="mobile-detect-js"></script> <script type="text/javascript" id="fca_pc_client_js-js-extra"> /* <![CDATA[ */ var fcaPcEvents = []; var fcaPcPost = {"title":"Generating Content-Based Recommendations for Millions of Merchants and Products","type":"post","id":"92895","categories":["Deep Learning"]}; var fcaPcOptions = {"pixel_types":[],"ajax_url":"https:\/\/odsc.com\/wp-admin\/admin-ajax.php","debug":"","edd_currency":"USD","nonce":"aa89b8bb23","utm_support":"","user_parameters":"","edd_enabled":"","edd_delay":"0","woo_enabled":"","woo_delay":"0","video_enabled":""}; /* ]]> */ </script> <script defer type="text/javascript" src="https://odsc.com/wp-content/plugins/facebook-conversion-pixel/pixel-cat.min.js" id="fca_pc_client_js-js"></script> <script defer type="text/javascript" src="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/fca_pc_video_js.min.js" id="fca_pc_video_js-js"></script> <script type="text/javascript" src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" id="remote_sdk-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" id="gt_widget_script_24731535-js-before"> /* <![CDATA[ */ window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['24731535'] = {"default_language":"en","languages":["en","fr","de","pt","es"],"url_structure":"none","flag_style":"2d","flag_size":16,"alt_flags":{"pt":"brazil"},"flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"}; /* ]]> */ </script><script src="https://odsc.com/wp-content/plugins/gtranslate/js/base.js" data-no-optimize="1" data-no-minify="1" data-gt-orig-url="/blog/category/deep-learning/" data-gt-orig-domain="odsc.com" data-gt-widget-id="24731535" defer></script><!-- start Simple Custom CSS and JS --> <script type="text/javascript"> const chartData = [ { "Title": "September 30th : Network Analysis Make Simple", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "Live", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "October 6th : NLP Fundamentals", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "Live", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "October 12th : Introduction to Python Programming", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "Live", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "October 21st : Getting Started with Practical MLOps", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "Live", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "October 26th: Boocamp Warmup : Data Literacy", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "Live", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Tutorial", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "October 28th : Gradient Boosting", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "Live", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "October 26th: Boocamp Warmup : AI Literacy", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "Live", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Tutorial", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Complete Python Fundamentals", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Modern Data Acquisition using Python", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Machine Learning 101", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "SQL for Data Science", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Recommendation Systems in Python", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Machine Learning Foundations: Linear Algebra", "URL": "www.odsc.com/california", "Level": "Pre-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Mathematics and Statistics for Machine Learning", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 1", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Introduction to SQL", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 1", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Introduction to Python", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 1", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Introduction to Data Analysis", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 1", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Introduction to Machine Learning Using scikit-learn", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 1", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Introduction to Deep Learning", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 1", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Introduction to Intermediate Deep Learning with Tensorflow", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Deep Learning with Keras", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Transfer Learning in NLP", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "MLOps with Kubeflow & Kubernetes", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Causal Reinforcement Learning", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Reinforcement Learning with TF-Agents", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Security and Privacy in Machine Learning", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Building Machine Learning Pipelines", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 2", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Advanced Deep Learning with Tensorflow", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 3", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Reinforcement Learning for Human Language", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 3", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "NLP Word Embeddings", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 3", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Deep Learning for Detecting DeepFakes", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 3", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Machine Learning at Scale using Apache Spark", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 3", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Augmented & Decision Analytics", "URL": "www.odsc.com/california", "Level": "Bootcamp", "Level 1": "Day 3", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Data wrangingling", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "SQL", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Programming", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Supervised Learning", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Unsupervised Learning", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Reinforcement Learning", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Deep Learning", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "NLP", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Tools", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" }, { "Title": "Frameworks", "URL": "www.odsc.com/california", "Level": "Post-Bootcamp", "Level 1": "On-demand", "Level 2": "", "Level 3": "", "Level 4": "", "Level 5": "", "Type": "Training", "Duration": "90 Minutes", "Course Link": "www.someurl.com", "": "" } ]; function convertData(data) { let result = {}; let colors = ['cadetblue', 'cornflowerblue', 'darkseagreen', 'greenyellow', 'forestgreen', 'lightseagreen', 'orangered', 'mediumvioletred', 'yellow', 'saddlebrown', 'rosybrown', 'dimgray']; for (let item of data) { const level = item["Level"].trim(); const level1 = item["Level 1"].trim(); const level2 = item["Level 2"].trim(); const level3 = item["Level 3"].trim(); const level4 = item["Level 4"].trim(); const level5 = item["Level 5"].trim(); if (level && item.Title) { if (!result[level]) { result[level] = {}; } if (!level1) { result[level][item.Title] = item; continue; } if (!result[level][level1]) { result[level][level1] = {}; } if (!level2) { result[level][level1][item.Title] = item; continue; } if (!result[level][level1][level2]) { result[level][level1][level2] = {}; } if (!level3) { result[level][level1][level2][item.Title] = item; continue; } if (!result[level][level1][level2][level3]) { result[level][level1][level2][level3] = {}; } if (!level4) { result[level][level1][level2][level3][item.Title] = item; continue; } if (!result[level][level1][level2][level3][level4]) { result[level][level1][level2][level3][level4] = {}; } if (!level5) { result[level][level1][level2][level3][level4][item.Title] = item; continue; } result[level][level1][level2][level3][level4][level5][item.Title] = item; } } function convertChildrenAsArray(name, item, level, color) { if (item['Level']) { return { ...item, name: item['Title'], color, }; } let children = []; let index = 0; for (let key in item) { children.push(convertChildrenAsArray(key, item[key], level + 1, level === 0 ? colors[index] : color)); index ++; } return { name, children, color, }; } return convertChildrenAsArray("ODSC Bootcamp", result, 0, null); } const treeData = convertData(chartData); function drawChart(data) { d3.selectAll('.tooltip').remove(); d3.selectAll('#tree-container svg').remove(); const viewerWidth = window.innerWidth * 0.8; const viewerHeight = window.innerHeight - 16; const duration = 750; const levels = 6; const maxTextWith = 150; const lineHeight = 14; let hoveredPosition = { x: 0, y: 0 }; // Define the div for the tooltip let tooltip = d3.select("body").append("div") .attr("class", "tooltip") .style("opacity", 0); let nodeId = 0; let root; let tree = d3.layout.tree() .size([viewerHeight, viewerWidth]); // define a d3 diagonal projection for use by the node paths later on. const diagonal = d3.svg.diagonal() .projection(d => [d.y, d.x]); // Define the zoom function for the zoomable tree function zoom() { svgGroup.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")"); } // define the zoomListener which calls the zoom function on the "zoom" event constrained within the scaleExtents const zoomListener = d3.behavior.zoom().scaleExtent([0.1, 3]).on("zoom", zoom); // define the baseSvg, attaching a class for styling and the zoomListener const baseSvg = d3.select("#tree-container").append("svg") .attr("width", viewerWidth) .attr("height", viewerHeight) .attr("class", "overlay") .on("mousemove", (d) => mouseOut(d)); // Function to collapse node function collapse(d) { if (d.children) { d._children = d.children; d._children.forEach(collapse); d.children = null; } } // Function to center node when clicked/dropped so node doesn't get lost when collapsing/moving with large amount of children. function centerNode(source) { let scale = zoomListener.scale(); let x = -source.y0; let y = -source.x0; x = x * scale + viewerWidth / 2; y = y * scale + viewerHeight / 2; d3.select('g').transition() .duration(duration) .attr("transform", "translate(" + x + "," + y + ")scale(" + scale + ")"); zoomListener.scale(scale); zoomListener.translate([x, y]); } // Toggle children function function toggleChildren(d) { if (d.children) { d._children = d.children; d.children = null; } else if (d._children) { d.children = d._children; d._children = null; } return d; } // Toggle children on click. function click(d) { if (d3.event.defaultPrevented) { return; } d = toggleChildren(d); update(d); if (d.children || d._children) { centerNode(d); } if (d.depth === 0) { if (d.children) { baseSvg.call(zoomListener); } else { baseSvg.on('.zoom', null); } } } // Get width of text function measureWidth(text) { const context = document.createElement("canvas").getContext("2d"); return context.measureText(text).width; } // Split string into words function splitWords(text, node) { const words = text.split(/\s+/g); // To hyphenate: /\s+|(?<=-)/ if (!words[words.length - 1]) { words.pop(); } else if (!words[0]) { words.shift(); } return { words, node }; } // Get lines from text when it overflows maxTextWidth function getLines(node) { let line; let lineWidth0 = Infinity; let lines = []; for (let i = 0, n = node.words.length; i < n; ++i) { let lineText1 = (line ? line.text + " " : "") + node.words[i]; let lineWidth1 = measureWidth(lineText1); if ((lineWidth0 + lineWidth1) / 2 < maxTextWith) { line.width = lineWidth0 = lineWidth1; line.text = lineText1; } else { lineWidth0 = measureWidth(node.words[i]); line = { width: lineWidth0, text: node.words[i], ...node.node, length: lines.length }; lines.push(line); } } return lines; } function mouseOver(d) { if (!d["Level"]) { return; } let html = ""; if (d["URL"]) { html += `<a target="_blank" rel="noopener">Course Link</a>`; } html += `<p><strong>Level: </strong>${d["Level"]}</p>`; if (d["Type"]) { html += `<p><strong>Type: </strong>${d["Type"]}</p>`; } if (d["Duration"]) { html += `<p><strong>Duration: </strong>${d["Duration"]}</p>`; } tooltip.transition() .duration(200) .style("opacity", .9); tooltip.html(html) .style("left", (d3.event.pageX) + "px") .style("top", (d3.event.pageY) + "px"); hoveredPosition = { x: d3.event.pageX, y: d3.event.pageY }; } function mouseOut(d) { if (hoveredPosition.x === 0 || (d3.event.pageX > hoveredPosition.x - 10 && d3.event.pageX < hoveredPosition.x + 150 && d3.event.pageY > hoveredPosition.y - 10 && d3.event.pageY < hoveredPosition.y + 90)) { return; } tooltip.transition() .duration(500) .style("opacity", 0); tooltip.html(null); } function update(source) { // Compute the new height, function counts total children of root node and sets tree height accordingly. // This prevents the layout looking squashed when new nodes are made visible or looking sparse when nodes are removed // This makes the layout more consistent. let levelWidth = [1]; const childCount = (level, n) => { if (n.children && n.children.length > 0) { if (levelWidth.length <= level + 1) { levelWidth.push(0); } levelWidth[level + 1] += n.children.length; n.children.forEach((d) => { childCount(level + 1, d); }); } }; childCount(0, root); const newHeight = d3.max(levelWidth) * (25 + (source.depth ? source.depth * 5 : 0)); // 25 pixels per line tree = tree.size([newHeight, viewerWidth]); // Compute the new tree layout. const nodes = tree.nodes(root).reverse(), links = tree.links(nodes); // Set widths between levels based on maxLabelLength. nodes.forEach((d) => { d.y = (d.depth * 300); d.x = d.x * 2.5; }); // Update the nodes… node = svgGroup.selectAll("g.node") .data(nodes, (d) => { return d.id || (d.id = ++nodeId); }); // Enter any new nodes at the parent's previous position. let nodeEnter = node.enter().append("g") .attr("class", "node") .attr("transform", (d) => { return "translate(" + source.y0 + "," + source.x0 + ")"; }) .on('click', click); nodeEnter.append("circle") .attr('class', 'nodeCircle') .attr("r", 0) .style("fill", (d) => { return d._children ? (d.color || "lightsteelblue") : "#fff"; }); let rect = nodeEnter.append("rect") .attr('class', 'nodeRect') .attr('x', (d) => 5) .attr('y', (d) => { return d.children || d._children ? 0 : -12 - getLines(splitWords(d.name, d)).length * 2; }) .attr('width', (d) => { return d.children || d._children ? 0 : 240; }) .attr('height', (d) => { return d.children || d._children ? 0 : getLines(splitWords(d.name, d)).length * 18; }) .attr('stroke', '#fff') .attr('fill', 'transparent') .attr('rx', 10); nodeEnter.append("text") .attr('class', 'nodeText') .attr("text-anchor", (d) => { return d.children || d._children ? "end" : "start"; }) .style("fill", (d) => { return d.children || d._children ? "#ddd" : "#fff"; }) .style("fill-opacity", 0) .on("mouseover", (d) => mouseOver(d)) .selectAll("tspan") .data(d => getLines(splitWords(d.name, d))) .enter() .append("tspan") .attr("x", (d) => { return d.children || d._children ? -8 : 8; }) .attr("y", (d, i) => i * lineHeight) .attr("dy", d => { if (d.children || d._children) { return '-1.2em'; } return '0em'; }) .text(d => d.text); // Change the circle fill depending on whether it has children and is collapsed node.select("circle.nodeCircle") .attr("r", d => { let maxChildLength = 0; if (d.children || d._children) { (d.children || d._children).forEach(c => { if ((c.children || c._children) && (c.children || c._children).length > maxChildLength) { maxChildLength = (c.children || c._children).length; } }); if ((d.children || d._children).length > maxChildLength) { maxChildLength = (d.children || d._children).length; } if (maxChildLength < 4) { maxChildLength = 4; } } else { maxChildLength = 1.5; } return (maxChildLength * 3 / 2) + "px"; }) .style("fill", (d) => { return d._children ? (d.color || "green") : "#fff"; }); // Transition nodes to their new position. let nodeUpdate = node.transition() .duration(duration) .attr("transform", (d) => { return "translate(" + d.y + "," + d.x + ")"; }); // Fade the text in nodeUpdate.select("text") .style("fill-opacity", 1); // Transition exiting nodes to the parent's new position. let nodeExit = node.exit().transition() .duration(duration) .attr("transform", (d) => { return "translate(" + source.y + "," + source.x + ")"; }) .remove(); nodeExit.select("circle") .attr("r", 0); nodeExit.select("text") .style("fill-opacity", 0); // Update the links… let link = svgGroup.selectAll("path.link") .data(links, (d) => { return d.target.id; }); // Enter any new links at the parent's previous position. link.enter().insert("path", "g") .attr("class", "link") .attr("stroke-width", d => { if (d.target.children || d.target._children) { return (d.target.children || d.target._children).length * 3 + "px"; } return "2px"; }) .attr("stroke", d => d.target.color || "#ccc") .attr("d", (d) => { const o = { x: source.x0, y: source.y0 }; return diagonal({ source: o, target: o }); }); // Transition links to their new position. link.transition() .duration(duration) .attr("d", diagonal); // Transition exiting nodes to the parent's new position. link.exit().transition() .duration(duration) .attr("d", (d) => { const o = { x: source.x, y: source.y }; return diagonal({ source: o, target: o }); }) .remove(); // Stash the old positions for transition. nodes.forEach((d) => { d.x0 = d.x; d.y0 = d.y; }); } // Append a group which holds all nodes and which the zoom Listener can act upon. let svgGroup = baseSvg.append("g"); // Define the root root = JSON.parse(JSON.stringify(data)); root.x0 = viewerHeight / 2; root.y0 = 0; // Layout the tree initially and center on the root node. collapse(root); update(root); centerNode(root); } drawChart(treeData); window.addEventListener('resize', () => { drawChart(treeData); });</script> <!-- end Simple Custom CSS and JS --><div id='icon_wrapper'><a target="_blank" class='fuse_social_icons_links' href='https://www.facebook.com/OPENDATASCI'> <i class='fa fa-facebook fb-awesome-social awesome-social'></i></a><br /><a target="_blank" class='fuse_social_icons_links' href='https://twitter.com/_odsc'> <i class='fa-brands fa-x-twitter tw-awesome-social awesome-social'></i></a><br /><a target="_blank" class='fuse_social_icons_links' href='https://www.linkedin.com/company/open-data-science/'> <i class='fa fa-linkedin linkedin-awesome-social awesome-social'></i></a><br /><a target="_blank" class='fuse_social_icons_links' href='https://www.youtube.com/c/OpenDataScienceCon'> <i class='fa fa-youtube youtube-awesome-social awesome-social'></i></a><br /><a target="_blank" class='fuse_social_icons_links' href='https://instagram.com/odsc/'> <i class='fa fa-instagram instagram-awesome-social awesome-social'></i></a><br /><a target="_blank" class='fuse_social_icons_links' href='https://bit.ly/35pfPZo'> <i class='fa fa-slack slack-awesome-social awesome-social'></i></a><br /><a target="_blank" class='fuse_social_icons_links' href='mailto:info@odsc.com'> <i class='fa fa-envelope envelope-awesome-social awesome-social'></i></a><br /> <!-- Cookie Notice plugin v2.4.18 by Hu-manity.co https://hu-manity.co/ --><div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-bottom" aria-label="Cookie Notice" style="background-color: rgba(50,50,58,1);"><div class="cookie-notice-container" style="color: #fff"><span id="cn-notice-text" class="cn-text-container">We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.</span><span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie cn-button" aria-label="Confirm" style="background-color: #00a99d">Confirm</a><a href="#" id="cn-refuse-cookie" data-cookie-set="refuse" class="cn-set-cookie cn-button" aria-label="No" style="background-color: #00a99d">No</a><a href="https://odsc.com/privacy-policy/" target="_blank" id="cn-more-info" class="cn-more-info cn-button" aria-label="Privacy policy" style="background-color: #00a99d">Privacy policy</a></span><span id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" title="No"></span></div><div class="cookie-revoke-container" style="color: #fff"><span id="cn-revoke-text" class="cn-text-container">You can revoke your consent any time using the Revoke consent button.</span><span id="cn-revoke-buttons" class="cn-buttons-container"><a href="#" class="cn-revoke-cookie cn-button" aria-label="Revoke consent" style="background-color: #00a99d">Revoke consent</a></span></div></div> <!-- / Cookie Notice plugin --><!-- Option Panel Custom JavaScript --> <script> //jQuery(document).ready(function(){ jQuery(document).ready(function($){ function timeout() { setTimeout(function () { console.log('fired'); if(jQuery.fn.hasOwnProperty('magnificPopup')){ jQuery('.mptt-shortcode-wrapper').magnificPopup({ delegate: 'a', // child items selector, by clicking on it popup will open type: 'ajax', callbacks: { parseAjax: function(mfpResponse) { var title = $(mfpResponse.data).find('.post-title a').text(); var content = $(mfpResponse.data).find('.post-content').html(); mfpResponse.data ="<h4>"+title +'</h4>'+ content; } } }); } else{ timeout(); } }, 500); } if(jQuery('.mptt-shortcode-wrapper').length){ timeout(); } // jQuery('.mptt-shortcode-table:not(:first)').remove(); }); // }); </script> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/1865444.js"></script> <!-- End of HubSpot Embed Code --> <script type="text/javascript"> adroll_adv_id = "MN7XH5FMX5AODAUTQ7LEYH"; adroll_pix_id = "4WF3QPQPGRHLJNYPUIJSDC"; /* OPTIONAL: provide email to improve user identification */ /* adroll_email = "username@example.com"; */ (function () { var _onload = function(){ if (document.readyState && !/loaded|complete/.test(document.readyState)){setTimeout(_onload, 10);return} if (!window.__adroll_loaded){__adroll_loaded=true;setTimeout(_onload, 50);return} var scr = document.createElement("script"); var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com"); scr.setAttribute('async', 'true'); scr.type = "text/javascript"; scr.src = host + "/j/roundtrip.js"; ((document.getElementsByTagName('head') || [null])[0] || document.getElementsByTagName('script')[0].parentNode).appendChild(scr); }; if (window.addEventListener) {window.addEventListener('load', _onload, false);} else {window.attachEvent('onload', _onload)} }()); </script> <!-- FAQ --> <script type="text/javascript"> $(".parent").click(function(){ $(".parent").toggleClass("activated"); $(".faq_categories").toggleClass("activated"); $(".subcategories").toggleClass("activated"); }); </script></body></html>