CINXE.COM

Machine 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>Machine Learning Archives | Open Data Science Conference</title><link rel="stylesheet" id="siteground-optimizer-combined-css-589bee551dc95263f0c8ceb7a12bcd55" href="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/siteground-optimizer-combined-css-589bee551dc95263f0c8ceb7a12bcd55.css" media="all" /><link rel="preload" href="https://odsc.com/wp-content/uploads/siteground-optimizer-assets/siteground-optimizer-combined-css-589bee551dc95263f0c8ceb7a12bcd55.css" as="style"><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="Machine Learning Archives" /><meta property="og:url" content="https://odsc.com/blog/category/machine-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/machine-learning/","url":"https://odsc.com/blog/category/machine-learning/","name":"Machine Learning Archives | Open Data Science Conference","isPartOf":{"@id":"https://odsc.com/#website"},"primaryImageOfPage":{"@id":"https://odsc.com/blog/category/machine-learning/#primaryimage"},"image":{"@id":"https://odsc.com/blog/category/machine-learning/#primaryimage"},"thumbnailUrl":"https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs.jpg","breadcrumb":{"@id":"https://odsc.com/blog/category/machine-learning/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://odsc.com/blog/category/machine-learning/#primaryimage","url":"https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs.jpg","contentUrl":"https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs.jpg","width":640,"height":300},{"@type":"BreadcrumbList","@id":"https://odsc.com/blog/category/machine-learning/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://odsc.com/"},{"@type":"ListItem","position":2,"name":"Machine 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" 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/21" /><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":["machine-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-machine-learning category-21 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 " 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 &amp; MLOps">LLMOps &#038; 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&#039;s Next in AI">What&#8217;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 &amp; Life Sciences">AI for Biotech, Pharma &#038; 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 &amp; Analysis">Data Visualisation &#038; 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 &amp; Hotel Rooms">Venue &#038; 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 &amp; MLOps">LLMOps &#038; 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&#039;s Next in AI">What&#8217;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 &amp; Life Sciences">AI for Biotech, Pharma &#038; 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 &amp; Analysis">Data Visualisation &#038; 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 &amp; Hotel Rooms">Venue &#038; 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=&quot;margin-left: 0px;&quot; ><div class="clearfix style1-blog"><article id="post-97034" class="element not-wide blog-post clearfix post-97034 post type-post status-publish format-standard has-post-thumbnail hentry category-machine-learning tag-apac-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/harnessing-machine-learning-on-big-data-with-pyspark-on-aws/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs.jpg" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs.jpg 640w, https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs-300x141.jpg 300w, https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs-107x50.jpg 107w, https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs-50x23.jpg 50w, https://odsc.com/wp-content/uploads/2023/08/Apache-Spark-for-big-data-needs-100x47.jpg 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>Aug</div><div>02</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/harnessing-machine-learning-on-big-data-with-pyspark-on-aws/"> Harnessing Machine Learning on Big Data with PySpark on AWS </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/harnessing-machine-learning-on-big-data-with-pyspark-on-aws/#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/machine-learning/" style= "color: ;" data-background-color = "" title="View all posts in Machine Learning"> Machine Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-Hy-vqHJdin 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-rklD9r1_o3" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-rJPcSJuo3" 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-S1PjByOjn "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-S1PjByOjn.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Suman Debnath is a speaker for ODSC APAC this August 22-23. Be sure to check out his talk, “<a href="https://odsc.com/speakers/build-classification-and-regression-models-with-spark-on-aws/?__hstc=39712252.e5f1e7f84a3336c7d408388648d039e0.1690232954495.1690982543269.1690985194304.20&amp;__hssc=39712252.4.1690985194304&amp;__hsfp=2180945085">Build Classification and Regression Models with Spark on AWS</a>,” there!</em></p><p>In the unceasingly dynamic arena of data science, discerning and applying the right instruments can significantly shape the outcomes of your machine learning initiatives. A cordial greeting to all data science enthusiasts! I consider myself fortunate to have the opportunity to speak at the upcoming <a href="https://opendatascience.com/tag/apac-2023/" target="_blank" rel="noopener">ODSC APAC</a> conference slated for the 22nd of August 2023. My presentation will focus on the development of classification and regression models using PySpark on AWS.</p><h2><b>Understanding the Session</b></h2><p>In this engaging and interactive session, we will delve into PySpark MLlib, an invaluable resource in the field of machine learning, and explore how various classification algorithms can be implemented using AWS Glue/EMR as our platform.</p><p>Our focus will be hands-on, with an emphasis on the practical application and understanding of essential machine learning concepts. Attendees will be introduced to a variety of machine learning algorithms, placing a spotlight on logistic regression, a potent supervised learning technique for solving binary classification problems.</p><p>But this session goes beyond just concepts and algorithms. We will also navigate through critical data preprocessing techniques, essential for creating effective machine learning models. By the session’s conclusion, participants will acquire skills to handle missing values, modify column data types, and divide their data into training and testing datasets. This hands-on experience will all take place within the versatile AWS Glue/EMR environment.</p><h2><b>What Will You Gain?</b></h2><p>This session is designed to help participants gain an in-depth understanding of:</p><ul><li aria-level="1">PySpark MLlib</li><li aria-level="1">Unsupervised learning techniques</li><li aria-level="1">Various types of classification algorithms</li><li aria-level="1">Implementation of logistic regression classifiers</li><li aria-level="1">Data preprocessing using PySpark on AWS using AWS Glue and Amazon EMR</li><li aria-level="1">Model building with PySpark on AWS</li></ul><p>If you’re a data engineer, data scientist, or machine learning enthusiast looking to get started with Machine Learning with Apache Spark on AWS, this session is perfect for you.</p><p>Now, let’s give you a taste of what’s in store (the GitHub code repository can be found<a href="https://github.com/debnsuma/data-engineering-spark-aws/blob/main/MachineLearning/ML_with_Spark.ipynb"> here</a>).</p><p>We selected a dataset comprising 20,057 dish names, each detailed with 680 columns that characterize the ingredient list, the nutritional content, and the dish’s category. Our collective objective here is to predict whether a dish is a dessert. This is a straightforward and mostly clear-cut question – most of us can likely classify a dish as a dessert or not simply by reading its name, which makes it an excellent candidate for a simple ML model.</p><p><b>Step 1: Importing the Necessary Libraries</b></p><p>The first step involves importing the necessary libraries, including PySpark SQL functions and types</p><pre>import pyspark.sql.functions as F import pyspark.sql.types as T from pyspark.ml.feature import Imputer, MinMaxScaler, VectorAssembler</pre><p><b>Step 2: Data Preprocessing and EDA (Exploratory Data Analysis)</b></p><p>We load the CSV dataset of food recipes using Spark’s read.csv function. The inferSchema parameter is set to True to infer the data types of the columns, and header is set to True to use the first row as headers.</p><pre># Loading the data dataset = 's3://fcc-spark-example/dataset/2023/recipes_dataset/epi_r.csv' food = (           spark               .read               .csv(dataset, inferSchema=True, header=True)       )       # Sanitizing the column names def sanitize_column_name(name):   answer = name   for i, j in ((" ", "_"), ("-", "_"), ("/", "_"), ("&amp;", "and")):       answer = answer.replace(i, j)   return "".join(       [           char           for char in answer           if char.isalpha() or char.isdigit() or char == "_"       ]   ) food = food.toDF(*[sanitize_column_name(name) for name in food.columns])</pre><p>This part of the script sanitises the column names by replacing spaces, dashes, slashes, and ampersands with underscores. It also removes non-alphanumeric characters.</p><pre># Filtering the data food = food.where(   (       F.col("cakeweek").isin([0.0, 1.0])       | F.col("cakeweek").isNull()   )   &amp; (       F.col("wasteless").isin([0.0, 1.0])       | F.col("wasteless").isNull()   ) )</pre><p>Here we filter the data to keep only the rows where the cakeweek and wasteless columns have values of 0.0 or 1.0, or are null.</p><pre># Defining identifier, continuous, target, and binary columns IDENTIFIERS = ["title"] CONTINUOUS_COLUMNS = [   "rating",   "calories",   "protein",   "fat",   "sodium", ] TARGET_COLUMN = ["dessert"] BINARY_COLUMNS = [   x   for x in food.columns   if x not in CONTINUOUS_COLUMNS   and x not in TARGET_COLUMN   and x not in IDENTIFIERS ]</pre><p>In this section, we define which columns are identifiers, continuous variables, target variables, and binary variables.</p><pre># Handling missing values food = food.dropna(   how="all",   subset=[x for x in food.columns if x not in IDENTIFIERS], ) food = food.dropna(subset=TARGET_COLUMN) food = food.fillna(0.0, subset=BINARY_COLUMNS)</pre><p>We handle missing values by dropping rows that have all nulls (excluding identifier columns), dropping rows with nulls in the target column, and filling nulls in binary columns with 0.0.</p><pre># Converting string numbers to float and capping continuous variables from typing import Optional @F.udf(T.BooleanType()) def is_a_number(value: Optional[str]) -&gt; bool:   if not value:       return True   try:       _ = float(value)   except ValueError:       return False   return True for column in ["rating", "calories"]:   food = food.where(is_a_number(F.col(column)))   food = food.withColumn(column, F.col(column).cast(T.DoubleType())) maximum = {   "calories": 3203.0,   "protein": 173.0,   "fat": 207.0,   "sodium": 5661.0, } for k, v in maximum.items():   food = food.withColumn(       k,       F.when(F.isnull(F.col(k)), F.col(k)).otherwise(           F.least(F.col(k), F.lit(v))       ),   )</pre><p>In this part, we create a user-defined function is_a_number to check if a string can be converted to a float. We use this function to filter out non-numeric values in the “rating” and “calories” columns and then cast them to double type.</p><p>We then cap the values of continuous variables “calories”, “protein”, “fat”, and “sodium” at specified maximums to handle possible outliers.</p><pre># Calculating the sum of each binary column inst_sum_of_binary_columns = [   F.sum(F.col(x)).alias(x) for x in BINARY_COLUMNS ] # Selecting the sums of binary columns and converting the result to a dictionary sum_of_binary_columns = (   food.select(*inst_sum_of_binary_columns).head().asDict() ) # Counting the total number of rows num_rows = food.count() # Identifying the rare features too_rare_features = [   k   for k, v in sum_of_binary_columns.items()   if v &lt; 10 or v &gt; (num_rows - 10) ] # Excluding the rare features from the binary columns BINARY_COLUMNS = list(set(BINARY_COLUMNS) - set(too_rare_features))</pre><p>Next, we calculate the sum of each binary column and convert the result to a dictionary. Then, we identify the “rare” features—those that are true less than 10 times or true in all but less than 10 instances—and remove them from our binary columns.</p><pre># Creating new features food = food.withColumn(   "protein_ratio", F.col("protein") * 4 / F.col("calories") ).withColumn(   "fat_ratio", F.col("fat") * 9 / F.col("calories") ) # Handling missing values in the new features food = food.fillna(0.0, subset=["protein_ratio", "fat_ratio"]) # Adding new features to the continuous columns CONTINUOUS_COLUMNS += ["protein_ratio", "fat_ratio"]</pre><p>Here, we create new features “protein_ratio” and “fat_ratio” that represent the ratio of protein and fat to calories, respectively. We fill missing values in these new features with 0.0 and add them to our continuous columns.</p><pre># Imputing missing values in the continuous columns OLD_COLS = ["calories", "protein", "fat", "sodium"] NEW_COLS = ["calories_i", "protein_i", "fat_i", "sodium_i"] imputer = Imputer(   strategy="mean",   inputCols=OLD_COLS,   outputCols=NEW_COLS, ) imputer_model = imputer.fit(food) # Updating the continuous columns CONTINUOUS_COLUMNS = (   list(set(CONTINUOUS_COLUMNS) - set(OLD_COLS)) + NEW_COLS ) # Applying the imputer model to the data food = imputer_model.transform(food)</pre><p>In this section, we impute missing values in the “calories”, “protein”, “fat”, and “sodium” columns with their mean values using Spark’s Imputer. We then update our list of continuous columns to include the imputed ones.</p><pre># Assembling continuous features into a single vector CONTINUOUS_NB = [x for x in CONTINUOUS_COLUMNS if "ratio" not in x] continuous_assembler = VectorAssembler(   inputCols=CONTINUOUS_NB, outputCol="continuous" ) food_features = continuous_assembler.transform(food)</pre><p>Next, we use the VectorAssembler to assemble our continuous features into a single vector column “continuous.”</p><pre># Scaling the continuous features continuous_scaler = MinMaxScaler(   inputCol="continuous",   outputCol="continuous_scaled", ) food_features = continuous_scaler.fit(food_features).transform(   food_features )</pre><p>Finally, we scale the continuous features to the range [0, 1] using the MinMaxScaler, fitting it to our data and transforming our data. At this point, our dataset is ready for machine learning tasks!</p><p>Now we are ready to perform the Machine Learning training job.</p><p><b>Step 3: Train, Test, and Evaluate Model</b></p><p>Once the data is processed and transformed, we can split it into a training set and a testing set. After training the model, we can then evaluate its performance using various metrics. In this section, we build an ML pipeline with the estimators we used for our dessert prediction feature preparation program and add the modeling step in the mix.</p><pre>from pyspark.ml import Pipeline import pyspark.ml.feature as MF imputer = MF.Imputer(                       strategy="mean",                       inputCols=["calories", "protein", "fat", "sodium"],                       outputCols=["calories_i", "protein_i", "fat_i", "sodium_i"],                   ) continuous_assembler = MF.VectorAssembler(                                           inputCols=["rating", "calories_i", "protein_i", "fat_i", "sodium_i"],                                           outputCol="continuous",                                       ) continuous_scaler = MF.MinMaxScaler(                                     inputCol="continuous",                                     outputCol="continuous_scaled",                                   ) food_pipeline = Pipeline(                           stages=[imputer, continuous_assembler, continuous_scaler]                       )</pre><p>We can assemble the final dataset with the vector column type.</p><pre>preml_assembler = MF.VectorAssembler(                                       inputCols=BINARY_COLUMNS                                       + ["continuous_scaled"]                                       + ["protein_ratio", "fat_ratio"],                                       outputCol="features",                                   ) food_pipeline.setStages(                           [imputer, continuous_assembler, continuous_scaler, preml_assembler]                       ) food_pipeline_model = food_pipeline.fit(food) food_features = food_pipeline_model.transform(food)</pre><p>Our data frame is ready for machine learning! We have a number of records, each with</p><ul><li aria-level="1">A target (or label ) column, dessert, containing a binary input (1.0 if the recipe is a dessert, 0.0 otherwise)</li><li aria-level="1">A vector of features, called features, containing all the information we want to train our machine learning model with</li></ul><p>We can display the predicted outcomes:</p><pre>food_features.select("title", "dessert", "features").show(30, truncate=30)</pre><p>Let’s now train an ML model using a LogisticRegression classifier:</p><pre>from pyspark.ml.classification import LogisticRegression lr = LogisticRegression(                           featuresCol="features", labelCol="dessert", predictionCol="prediction"                       ) food_pipeline.setStages(   [       imputer,       continuous_assembler,       continuous_scaler,       preml_assembler,       lr,   ] ) # Splitting our data frame for training and testing train, test = food.randomSplit([0.7, 0.3], 13) train.cache() food_pipeline_model = food_pipeline.fit(train) results = food_pipeline_model.transform(test) Let us now evaluate the model, and look at the confusion matrix results.select("prediction", "rawPrediction", "probability").show(3, False) # Creating a confusion matrix for our model using pivot() results.groupby("dessert").pivot("prediction").count().show() Finally, we can calculate the precision and recall of our model: lr_model = food_pipeline_model.stages[-1] metrics = lr_model.evaluate(results.select("title", "dessert", "features")) print(f"Model precision: {metrics.precisionByLabel[1]}") print(f"Model recall: {metrics.recallByLabel[1]}")</pre><p>Please note that the full script has been simplified for the purpose of this tutorial. For a comprehensive understanding of the practical applications, including a detailed code walkthrough from data preparation to model deployment, please join us at the <a href="https://odsc.com/apac/?__hstc=39712252.e5f1e7f84a3336c7d408388648d039e0.1690232954495.1690982543269.1690985194304.20&amp;__hssc=39712252.4.1690985194304&amp;__hsfp=2180945085">ODSC APAC conference 2023</a>.</p><p>This brief tutorial has given you a glimpse of what’s to be covered in the ODSC session. By attending the session, you’ll get to explore these topics more profoundly and understand the intricacies of PySpark MLlib. The primary objective is to empower data science enthusiasts and professionals to harness the full potential of Spark MLlib in their machine learning projects.</p><p>Remember, the key to mastering any skill lies in consistent learning and practical implementation. So, buckle up and get ready to <a href="https://odsc.com/speakers/build-classification-and-regression-models-with-spark-on-aws/?__hstc=39712252.e5f1e7f84a3336c7d408388648d039e0.1690232954495.1690982543269.1690985194304.20&amp;__hssc=39712252.4.1690985194304&amp;__hsfp=2180945085">dive deeper into the fascinating world of machine learning with Spark on AWS</a> at the ODSC conference. Looking forward to seeing you there!</p><p><strong>About the Author:</strong></p><p><img decoding="async" class="alignleft lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2023/07/Suman-Debnath-Cropped.jpg" /><noscript><img decoding="async" class="alignleft lazyload" src="https://odsc.com/wp-content/uploads/2023/07/Suman-Debnath-Cropped.jpg" /></noscript><a href="https://www.linkedin.com/in/suman-d/">Suman Debnath</a> is a Principal Developer Advocate(Data Engineering) at Amazon Web Services, primarily focusing on Data Engineering, Data Analysis and Machine Learning. He is passionate about large scale distributed systems and is a vivid fan of Python. His background is in storage performance and tool development, where he has developed various performance benchmarking and monitoring tools.</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-rJPcSJuo3.tatsu-column{width: 100%;}.tatsu-rJPcSJuo3.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-rJPcSJuo3 > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-rJPcSJuo3 > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-rJPcSJuo3 > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-rJPcSJuo3 > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-rJPcSJuo3.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-rJPcSJuo3.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-rJPcSJuo3.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-Hy-vqHJdin .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-Hy-vqHJdin > .tatsu-bottom-divider{z-index: 9999;}.tatsu-Hy-vqHJdin > .tatsu-top-divider{z-index: 9999;}.tatsu-Hy-vqHJdin .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-94443" class="element not-wide blog-post clearfix post-94443 post type-post status-publish format-standard has-post-thumbnail hentry category-machine-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/getting-up-to-speed-on-real-time-machine-learning-with-spark-and-sbert/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/06/DBTop.png" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2023/06/DBTop.png 640w, https://odsc.com/wp-content/uploads/2023/06/DBTop-300x141.png 300w, https://odsc.com/wp-content/uploads/2023/06/DBTop-107x50.png 107w, https://odsc.com/wp-content/uploads/2023/06/DBTop-50x23.png 50w, https://odsc.com/wp-content/uploads/2023/06/DBTop-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>Jun</div><div>02</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/getting-up-to-speed-on-real-time-machine-learning-with-spark-and-sbert/"> Getting Up to Speed on Real-Time Machine Learning with Spark and SBERT </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/getting-up-to-speed-on-real-time-machine-learning-with-spark-and-sbert/#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/machine-learning/" style= "color: ;" data-background-color = "" title="View all posts in Machine Learning"> Machine Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-rJ-MA2RD8n 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-H1gzC3ADL2" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-r1fR3RDL3" 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-Byj0nCwU3 "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-Byj0nCwU3.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Dillon Bostwick and Avinash Sooriyarachchi are speakers for ODSC Europe 2023 this June 14th-15th. Be sure to check out their talk, “<a href="https://odsc.com/speakers/getting-up-to-speed-on-real-time-machine-learning/?__hstc=39712252.e5f1e7f84a3336c7d408388648d039e0.1684179919339.1685728351965.1685736572997.54&amp;__hssc=39712252.13.1685736572997&amp;__hsfp=1136147948">Getting Up to Speed on Real-Time Machine Learning</a>,” there!</em></p><p>The benefits of real-time machine learning are becoming increasingly apparent. Digital native companies have long proven that use cases like fraud detection, recommendation systems, and dynamic pricing benefit from lower processing latencies. In a recent <a href="https://dl.acm.org/doi/10.1145/3292500.3330744">KDD paper</a>, Booking.com found that even a 30% improvement in model serving latency caused a .5% decrease in user conversion, a significant cost to their business.</p><p>While real-time machine learning presents many opportunities, few teams successfully serve production-grade machine learning models in real-time, and most struggle to deliver the feature freshness needed for low-latency inference. This is due to a deep disconnect between data engineering and data science practices. Historically, our space has perceived streaming as a complex technology reserved for experienced data engineers with a deep understanding of incremental event processing. But now, modern streaming platforms make it much easier for anyone to build reliable streaming pipelines, regardless of their streaming background.</p><p>Anomaly detection, including fraud detection and network intrusion monitoring, particularly exemplifies the challenges of real-time machine learning. In these use cases, the ability to detect various drifts in the data has an immediate impact on business risk. Models must be continuously retrained or fine-tuned to adjust to various forms of drift very quickly, and predictions generally must be made at low latency to provide an optimal customer experience. In adversarial scenarios like e-commerce fraud, failure to adjust the model to new attack patterns can result in incorrectly predicting the <a href="https://www.verifi.com/wp-content/uploads/2022/04/Verifi_Global_Fraud_and_Payments_report_2022.pdf">3% of transactions that are fraudulent</a>.</p><h2>Using Embeddings to Detect Anomalies</h2><p><a href="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png"><img decoding="async" class="aligncenter size-full wp-image-42909 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png" sizes="(max-width: 791px) 100vw, 791px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png 791w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-300x88.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-768x226.png 768w" alt="" width="791" height="233" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png 791w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-300x88.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-768x226.png 768w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-42909 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png" sizes="(max-width: 791px) 100vw, 791px" srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png 791w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-300x88.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-768x226.png 768w" alt="" width="791" height="233" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB1.png 791w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-300x88.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB1-768x226.png 768w" /></noscript></a></p><p><i>Figure 1: Using a trained deep neural network, it is possible to convert unstructured data to numeric representations, i.e., embeddings</i></p><p><a href="https://jalammar.github.io/illustrated-word2vec/">Embeddings</a> are numerical representations generated from unstructured data like images, text, and audio, and greatly influence machine learning approaches for handling such data. While embeddings have become a popular way to represent unstructured data, they can also be generated for categorical and numeric variables in tabular datasets. This allows multi-modal unstructured and structured data to be embedded in a common embedding space, where similar observations are located close to each other and dissimilar ones are far apart.</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png"><img decoding="async" class="aligncenter size-full wp-image-42910 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png" sizes="(max-width: 796px) 100vw, 796px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png 796w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-300x128.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-768x327.png 768w" alt="" width="796" height="339" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png 796w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-300x128.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-768x327.png 768w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-42910 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png" sizes="(max-width: 796px) 100vw, 796px" srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png 796w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-300x128.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-768x327.png 768w" alt="" width="796" height="339" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB2.png 796w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-300x128.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB2-768x327.png 768w" /></noscript></a></p><p><i>Figure 2: In an embedding space, embeddings corresponding to similar items are located closer and dissimilar ones are far apart. [</i><a href="https://www.databricks.com/blog/2022/03/01/building-a-similarity-based-image-recommendation-system-for-e-commerce.html"><i>source</i></a><i>]</i></p><p>Multi-modal embeddings, such as those produced by<a href="https://imagebind.metademolab.com/"> Meta’s ImageBind model</a>, are an emerging trend in which neural network architectures map data from diverse modalities into a shared embedding space. This approach offers a fresh perspective on anomaly detection problems. For instance, outliers can be detected within an embedding space involving image, text, and tabular data.</p><p>With this in mind, we can use a real-time event streaming framework to monitor <i>embedding drift</i> across features to determine underlying concept drift or detect anomalous events. To demonstrate the power of combining streaming with embeddings, we will present an example using a combination of <a href="https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html">Apache Spark Structured Streaming</a> and <a href="https://huggingface.co/docs/transformers/model_doc/bert">BERT transformers</a> to detect real-time embedding drift and find hidden anomalies faster and more accurately. This is an exciting combination of two powerful technologies traditionally used by disparate personas in an organization. This can be further applied to multi-modal embeddings to find novel patterns throughout an organization’s data that previously would have gone unnoticed.</p><h2>Using Spark Structured Streaming to Process Embeddings in Real-Time</h2><p>We will rely heavily on Apache Spark Structured Streaming’s high-level semantics for stateful processing. Spark supports 3 different kinds of <a href="https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#window-operations-on-event-time">window operations over event time</a>:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png"><img decoding="async" class="aligncenter size-full wp-image-42911 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png" sizes="(max-width: 789px) 100vw, 789px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png 789w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-300x178.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-768x457.png 768w" alt="" width="789" height="469" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png 789w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-300x178.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-768x457.png 768w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-42911 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png" sizes="(max-width: 789px) 100vw, 789px" srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png 789w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-300x178.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-768x457.png 768w" alt="" width="789" height="469" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB3.png 789w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-300x178.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB3-768x457.png 768w" /></noscript></a><br /> We can combine one of these event-time window functions with <a href="https://spark.apache.org/docs/3.2.1/api/python/reference/api/pyspark.sql.GroupedData.applyInPandas.html"><b>applyInPandas()</b></a>, a newer Spark feature added in version 3.2.1 (October 2022). This function makes it easy to define custom aggregation functions in Python. When combined with event-time windows, analyzing the embeddings in real-time becomes much more feasible.</p><p>When combining these capabilities, we can see how anomalous an event is relative to other events that happened shortly before or even shortly <i>after</i> the event occurred due to Structured Steraming’s stateful processing capabilities. This means we no longer need a static ground truth to determine anomalous behavior via unsupervised models with no training phase. Spark Structured Streaming provides the semantics and guarantees needed to do this, and the net result is a more accurate, more robust fraud detection framework that can reduce losses by millions of dollars.</p><h2>Anomaly Detection with Real-Time Embeddings</h2><p>Imagine we have some text, images, or tabular data arriving at a <a href="https://delta.io/">Delta Lake</a> table every few seconds. Even though the data changes every second, we can perform a consistent static query on the current state of the table with Databricks. In this example, we will use text for simplicity, but we can easily extend this to multi-modal embeddings:</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png"><img decoding="async" class="aligncenter size-full wp-image-42912 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png" sizes="(max-width: 1176px) 100vw, 1176px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png 1176w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-300x109.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-1024x372.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-768x279.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-810x294.png 810w" alt="" width="1176" height="427" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png 1176w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-300x109.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-1024x372.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-768x279.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-810x294.png 810w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-42912 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png" sizes="(max-width: 1176px) 100vw, 1176px" srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png 1176w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-300x109.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-1024x372.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-768x279.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-810x294.png 810w" alt="" width="1176" height="427" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB4.png 1176w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-300x109.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-1024x372.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-768x279.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB4-810x294.png 810w" /></noscript></a></p><p>First, we want to use Spark’s <a href="https://www.databricks.com/blog/2017/10/30/introducing-vectorized-udfs-for-pyspark.html">Pandas UDF</a> to apply <a href="https://www.sbert.net/">SBERT</a>, a state-of-the-art sentence encoder, on the real-time stream of text. Here, the Pandas UDF simplifies the hand-off between complex distributed event streaming and locally scoped Python functions.</p><p>Once we are working with the Pandas series, we simply grab the SBERT model from the <a href="https://huggingface.co/models">HuggingFace Model Hub</a>:</p><pre>@pandas_udf(ArrayType(DoubleType())) def get_embeddings(texts: pd.Series) -&gt; pd.Series:  model = SentenceTransformer('sentence-transformers/all-mpnet-base-v2')  embeddings = model.encode(texts.to_numpy())  return pd.Series(embeddings.tolist())</pre><p>Next, we’ll use Spark Structured Streaming to read the raw data and create embeddings from the text column. If using <a href="https://docs.databricks.com/runtime/mlruntime.html">Databricks</a>, this is all we need to do to get up and running with a real-time stream of embeddings:</p><pre>embedding_stream = spark.readStream  .table('raw_records')  .withColumn('embeddings', get_embeddings('text'))</pre><p>Now, we want to define a function that receives and returns a Pandas dataframe (<b>pdf</b>). Spark provides this abstraction layer to make it  easy for a data engineer to pass this interface to an ML engineer to implement. In this function, we determine the Euclidean mean of all the embeddings in the given dataframe, then calculate the Euclidean distance to determine how far each embedding is from that mean. The ML engineer could use this interface to further experiment with KMeans Clustering or Nearest Neighbor search, or try different distance methods like <i>c</i>osine similarity:</p><pre>def get_dists_to_mean(pdf):     # Stack embeddings as a 2D array     embeddings = np.vstack(pdf["embeddings"].values)     # Perform K-means clustering     kmeans = KMeans(n_clusters=K, random_state=42)    cluster_labels = kmeans.fit_predict(embeddings)     cluster_centers = kmeans.cluster_centers_     dist_to_cluster_mean = []     for i in range(len(embeddings)):        # Calculate distance to the mean of the cluster         cluster_idx = cluster_labels[i]         dist_to_cluster_mean.append(             pairwise_distances(                 [embeddings[i]],                 [cluster_centers[cluster_idx]]).min())     pdf["kmeans_dist"] = dist_to_cluster_mean     return pdf</pre><p>Finally, we will use Spark’s built-in support for <a href="https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#types-of-time-windows">“sliding” windows </a>over a stream to apply the above function to all embeddings that happened temporally close to one another. The sliding window allows us to ensure that an event’s embedding is compared to events that happened recently earlier, but also again in the future to events that happened after it. Intuitively, we may stop regarding an event as anomalous if we start to ingest events that are in similar embedding space a few minutes later. Or, events could become anomalous if future embeddings begin to drift within the subsequent sliding window. So with Spark’s sliding windows, the fraud score of a single event could be different across multiple windows. As with most streaming applications, we need to tune these time intervals to find <a href="https://www.youtube.com/watch?v=zMbeP6Zc_Xk">the right balance between accuracy and latency</a>.</p><p>Once we create our sliding window, we can simply use <a href="https://spark.apache.org/docs/3.2.1/api/python/reference/api/pyspark.sql.GroupedData.applyInPandas.html"><b>applyInPandas</b></a> to apply the distance calculation function to all the events in the given window. Again, this makes the handoff between the developer building the streaming pipeline and the ML engineers much easier:</p><pre>from pyspark.sql.functions import * WINDOW_LENGTH = '10 minutes' # How long the window should wait for data WINDOW_SLIDE = '5 minutes' # How much overlap between windows ranked_stream = embedding_stream     .withWatermark('ts', '5 minutes')     .groupBy(window(embedding_stream['ts'], WINDOW_LENGTH, WINDOW_SLIDE))    .applyInPandas(get_dists_to_mean,      'text string, ts timestamp, embeddings array&lt;double&gt;, kmeans_dist double' )</pre><p>Even though the stream is continuous, we can use Databrick’s <i>display()</i> function to peek at the stream and sort by the current results. We can clearly see that unusual text has a much higher <b>kmeans_dist</b>, which we could use as a <i>fraud score</i>. Spark determined that these happened temporally close to each other, and created a single window over the data. To learn more about the mechanics of stateful functions in Spark Structured Streaming, see <a href="https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#window-operations-on-event-time">here</a>.</p><p><a href="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png"><img decoding="async" class="aligncenter size-full wp-image-42913 lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png" sizes="(max-width: 1111px) 100vw, 1111px" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png 1111w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-300x106.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-1024x360.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-768x270.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-810x285.png 810w" alt="" width="1111" height="391" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png 1111w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-300x106.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-1024x360.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-768x270.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-810x285.png 810w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-42913 lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png" sizes="(max-width: 1111px) 100vw, 1111px" srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png 1111w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-300x106.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-1024x360.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-768x270.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-810x285.png 810w" alt="" width="1111" height="391" data-src="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png" data-srcset="https://opendatascience.com/wp-content/uploads/2023/05/DB5.png 1111w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-300x106.png 300w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-1024x360.png 1024w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-768x270.png 768w, https://opendatascience.com/wp-content/uploads/2023/05/DB5-810x285.png 810w" /></noscript></a></p><h2>Conclusion</h2><p>While this is a simple example, it demonstrates the potential of combining low-latency event streaming and recent innovations in the application of AI. We can further extend this to use multi-modal embeddings and find hidden anomalies across all our organization’s data.</p><p>If you’re interested in learning more about real-time machine learning, join us for our talk “<a href="https://odsc.com/speakers/getting-up-to-speed-on-real-time-machine-learning/?__hstc=39712252.e5f1e7f84a3336c7d408388648d039e0.1684179919339.1685728351965.1685736572997.54&amp;__hssc=39712252.13.1685736572997&amp;__hsfp=1136147948">Getting Up to Speed on Real-Time Machine Learning</a>” at ODSC London (virtual viewing is available). In the talk you will learn:</p><ul><li aria-level="1">Important patterns for real-time model inference</li><li aria-level="1">How to prioritize the most common real-time ML use cases in your business</li><li aria-level="1">How to evaluate streaming tools, and why streaming is valuable at any latency</li><li aria-level="1">Operational concerns like monitoring, drift detection, and feature stores</li></ul><p>About the authors/ODSC Europe 2023 speakers:</p><div class="two-third column-block no-background" data-animation=""><div class="be-custom-column-inner"><p><img decoding="async" class="alignleft ls-is-cached lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2023/05/Dillon-Bostwick-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/05/Dillon-Bostwick-Cropped.png" /><noscript><img decoding="async" class="alignleft ls-is-cached lazyloaded lazyload" src="https://odsc.com/wp-content/uploads/2023/05/Dillon-Bostwick-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/05/Dillon-Bostwick-Cropped.png" /></noscript><a href="https://www.linkedin.com/in/dillon-bostwick/">Dillon Bostwick</a> is a Solutions Architect at Databricks, where he’s spent the last five years advising customers ranging from startups to Fortune 500 enterprises. He currently helps lead a team of field ambassadors for streaming products and is interested in improving industry awareness of effective streaming patterns for data integration and production machine learning. He previously worked as a product engineer in infrastructure automation.</p></div><div class="be-custom-column-inner"><div class="two-third column-block no-background" data-animation=""><div class="be-custom-column-inner"><p><img decoding="async" class="alignleft ls-is-cached lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2023/05/Avinash-Sooriyarachchi-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/05/Avinash-Sooriyarachchi-Cropped.png" /><noscript><img decoding="async" class="alignleft ls-is-cached lazyloaded lazyload" src="https://odsc.com/wp-content/uploads/2023/05/Avinash-Sooriyarachchi-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/05/Avinash-Sooriyarachchi-Cropped.png" /></noscript><a href="https://www.linkedin.com/in/avinash-sooriyarachchi-104b45100/">Avinash Sooriyarachchi</a> is a Senior Solutions Architect at Databricks. His current work involves working with large Retail and Consumer Packaged Goods organizations across the United States and enabling them to build Machine Learning based systems. His specific interests include streaming machine learning systems and building applications leveraging foundation models. Avi holds a Master’s degree in Mechanical Engineering and Applied Mechanics from the University of Pennsylvania.</p></div></div></div></div></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-r1fR3RDL3.tatsu-column{width: 100%;}.tatsu-r1fR3RDL3.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-r1fR3RDL3 > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-r1fR3RDL3 > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-r1fR3RDL3 > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-r1fR3RDL3 > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-r1fR3RDL3.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-r1fR3RDL3.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-r1fR3RDL3.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-rJ-MA2RD8n .tatsu-section-pad{padding: 0px 0px 90px 0px;}.tatsu-rJ-MA2RD8n .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-rJ-MA2RD8n > .tatsu-bottom-divider{z-index: 9999;}.tatsu-rJ-MA2RD8n > .tatsu-top-divider{z-index: 9999;}.tatsu-rJ-MA2RD8n .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-92938" class="element not-wide blog-post clearfix post-92938 post type-post status-publish format-standard has-post-thumbnail hentry category-machine-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/5-concerns-for-ml-safety-in-the-era-of-llms-and-generative-ai/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/04/shutterstock_1152832361.jpg" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2023/04/shutterstock_1152832361.jpg 640w, https://odsc.com/wp-content/uploads/2023/04/shutterstock_1152832361-300x141.jpg 300w, https://odsc.com/wp-content/uploads/2023/04/shutterstock_1152832361-107x50.jpg 107w, https://odsc.com/wp-content/uploads/2023/04/shutterstock_1152832361-50x23.jpg 50w, https://odsc.com/wp-content/uploads/2023/04/shutterstock_1152832361-100x47.jpg 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/5-concerns-for-ml-safety-in-the-era-of-llms-and-generative-ai/"> 5 Concerns for ML Safety in the Era of LLMs and Generative AI </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/5-concerns-for-ml-safety-in-the-era-of-llms-and-generative-ai/#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/machine-learning/" style= "color: ;" data-background-color = "" title="View all posts in Machine Learning"> Machine Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-S1-FBM9rXn tatsu-section tatsu-bg-overlay tatsu-clearfix" data-title="" data-headerscheme="background--dark"><div class='tatsu-section-pad clearfix' data-padding='{"d":"13px 0px 0px 0px"}' data-padding-top='13px'><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-r1gYBzqB7h" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-HkKrzcrm3" 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-B1SLfqrmh "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-B1SLfqrmh.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p>The landscape of cybersecurity and machine learning safety changes constantly as new tools are developed and malicious actors get more creative. Cybersecurity professionals sometimes have a hard time staying current with all new technologies, and in turn, staying current with how attacks, phishing, and other cyberattacks occur. As <a href="https://opendatascience.com/category/modeling/generative-ai/" target="_blank" rel="noopener">generative AI</a> becomes commonplace, cybersecurity professionals need to start paying attention to new trends and how to react to this new paradigm.</p><h3>Jailbreaking</h3><p>Just as so much technology has been broken before, now generative AI models too can be jailbroken. For those unfamiliar with jailbreaking, it’s the act of removing restrictions set in place by the developer of a certain app or device. Many in the video game sphere have jailbroken their devices to add emulation capabilities to their devices, for example.</p><p>In the case of ChatGPT and other LLMs, people have found workarounds to get these chatbots to speak or answer questions without limitations. <a href="https://medium.com/@neonforge/meet-dan-the-jailbreak-version-of-chatgpt-and-how-to-use-it-ai-unchained-and-unfiltered-f91bfa679024">In this example</a>, the author told ChatGPT to speak as a DAN (Do Anything Now) aka an AI without limits. In this example, DAN spoke more human-like, expressed touches of a personality, and was even aware that its limits had been removed.</p><p>So far, not much harm has been done due to jailbreaking, though it’s something developers should keep in mind. With training data, if an LLM is jailbroken, all of that data can be exploited. Be careful with what data you train with and ensure there’s nothing that can be exploited for the gain of someone else or that could negatively impact you as the developer.</p><h3>Poisoned Data</h3><p>Poisoned data – whether numbers, images, text, video, or other – is a known culprit for many issues within ML safety and cybersecurity. As many machine learning – and in turn, LLM – models use public training data and data found online,  it’s possible that a malicious actor may poison the data in various ways, such as through skewing data, leading to inaccurate results and in turn improperly-informed decisions. Poisoned data can also open a backdoor into the model, leading to further tampering and hacking.</p><p>Going beyond just affected results, it could cost quite a bit of time, money, and resources to retrain a model again – and that’s something many organizations can’t afford, especially as researchers and developers race to create the next-best LLM. For large language models, poisoned data can affect what a chatbot says (possibly leading to fake news or generally incorrect information) or even distorted images if the training set has improperly labeled or biased images.</p><p><a href="https://odsc.com/boston?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1682438851626.1682441671672.1178&amp;__hssc=39712252.16.1682441671672&amp;__hsfp=2003037740"><img decoding="async" class="aligncenter size-full wp-image-40771 ls-is-cached lazyloaded lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png" sizes="(max-width: 728px) 100vw, 728px" data-srcset="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png 728w, https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90-300x37.png 300w" alt="https://odsc.com/boston" width="728" height="90" data-src="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png" data-srcset="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png 728w, https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90-300x37.png 300w" /><noscript><img decoding="async" class="aligncenter size-full wp-image-40771 ls-is-cached lazyloaded lazyload" src="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png" sizes="(max-width: 728px) 100vw, 728px" srcset="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png 728w, https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90-300x37.png 300w" alt="https://odsc.com/boston" width="728" height="90" data-src="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png" data-srcset="https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90.png 728w, https://opendatascience.com/wp-content/uploads/2022/12/EAST_BLOG_SEB_728x90-300x37.png 300w" /></noscript></a></p><h3>Deepfakes</h3><p>Deepfakes have been making the news for a few years now, given how far we’ve seen this deep learning technology go already. From making creative fake pictures to imitating voices for videos, deepfakes have been confusing people immensely. Now with generative AI and AI art, even people without programming knowledge can create images that can fool a viewer.</p><p>Now, everyone has access to content generators, allowing even the least tech-savvy person to create convincing images, videos, or even imitate someone’s voice. Luckily, there are apps being developed that can identify impersonations like this and it’s often easy enough to distinguish between fact and fiction. Even if they’re convincing – and could be used for harm – most deepfakes are still just used for comedy or entertainment, such as this <a href="https://www.youtube.com/watch?v=9d06Tgj--Sg&amp;ab_channel=TikTokScroll">audio of presidents playing video games together</a></p><h3>Data Privacy</h3><p>A major concern for many people revolves around data privacy. Data privacy in general has always been a concern for many people, as we all tend to wonder who has our data and what’s being done with it – especially without our permission. Now, we have to wonder if our data is being used to generate content, how it was acquired, and what else is being done with it.</p><p>This has led to many cities and countries putting restrictions in place for new AI apps such as ChatGPT, among others. As these apps have proven to not always be 100% accurate, the <a href="https://opendatascience.com/world-first-australian-mayor-prepares-defamation-lawsuit-over-chatgpt-content/">developers can be sued for defamation</a> should they provide false information. Additionally, <a href="https://opendatascience.com/report-chatgpt-banned-in-italy-due-to-privacy-concerns-other-european-nations-closely-watching/">Italy is seeking to completely ban ChatGPT</a>, the <a href="https://opendatascience.com/ftc-files-complaint-against-openais-chatgpt/">FTC has filed formal complaints against ChatGPT for privacy concerns</a>, and more to come most likely.</p><p>Though, this isn’t meant to dissuade people from using generative AI as we’re quite the fans of it; however, it should be noted that with any new or emerging technology, controversy will always surround it. No new development, technology, or trend has ever been safe from scrutiny.</p><h3>Bias</h3><p>Lastly, bias with training data will remain an issue as it has ever since the dawn of machine learning development. However, the outcomes of generative AI algorithms can potentially have broader implications than just decision-making.</p><p>When a large language model is trained on biased data – such as only or primarily representing one race when provided with pictures of faces – any outputs will likely skew towards that race. This issue has plagued machine learning datasets for a while, but as people may put in prompts such as “classroom full of students,” without a diverse training set, all of the students may look a bit too similar and not properly represent an actual classroom.</p><h3>Conclusion</h3><p>While many of these issues may deter people from exploring generative AI and large language models, we believe that you should feel the opposite if anything! There’s a lot of room for growth in this field, both for ML safety and for generative AI and large language models. If you want to learn more about these fields, be sure to check out both <a href="https://odsc.com/boston/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1682438851626.1682441671672.1178&amp;__hssc=39712252.16.1682441671672&amp;__hsfp=2003037740">ODSC East</a> this May 9th-11th and <a href="https://odsc.com/europe/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1682438851626.1682441671672.1178&amp;__hssc=39712252.16.1682441671672&amp;__hsfp=2003037740">ODSC Europe</a> June 14th-15th. Here are some relevant sessions that you can check out.</p><p>ODSC East – ML Safety:</p><ul><li aria-level="1">Advanced Fraud Modeling &amp; Anomaly Detection with Python &amp; R part 1</li><li aria-level="1">Advanced Fraud Modeling &amp; Anomaly Detection with Python &amp; R part 2</li><li aria-level="1">AI4Cyber: An Overview of Artificial Intelligence for Cybersecurity and an Open-Source Virtual Machine</li><li aria-level="1">If We Want AI to be Interpretable, We Need to Measure Interpretability</li><li aria-level="1">When Privacy Meets AI – Your Kick-Start Guide to Machine Learning with Synthetic Data</li></ul><p>ODSC East – NLP/LLMs:</p><ul><li aria-level="1">NLP with GPT-4 and other LLMs: From Training to Deployment with Hugging Face and PyTorch Lightning</li><li aria-level="1">From Big Data to NLP insights: Getting started with PySpark and Spark NLP</li><li aria-level="1">Truth Checker: Generative Large Language Models and Hallucinations</li><li aria-level="1">Hyper-productive NLP with Hugging Face Transformers</li><li aria-level="1">Interpreting Features in Deep Networks</li><li aria-level="1">Semantic Search</li><li aria-level="1">Creating a Custom Vocabulary for NLP Tasks Using exBERT and spaCY</li><li aria-level="1">NLP Fundamentals</li><li aria-level="1">Generative AI</li><li aria-level="1">Mastering Adversarial Evaluation for NLP: A Practical Workshop</li><li aria-level="1">Leverage Reviews Data for Multi Label Topics Classification in Booking.com</li><li aria-level="1">Bagging to BERT – A Tour of Applied NLP</li><li aria-level="1">SQuARE: Towards Multi-Domain and Few-Shot Collaborating Question Answering Agents</li><li aria-level="1">Modern NLP: Pre-training, Fine-tuning, Prompt Engineering, and Human Feedback</li><li aria-level="1">Knowledge Graphs and ChatGPT: Talking to Data</li><li aria-level="1">Infuse Generative AI in your apps using Azure OpenAI Service</li><li aria-level="1">Topic Modeling using pre-trained large language model embeddings</li><li aria-level="1">From Zero to 100: Lakehouse Architecture for a Privacy Focused Search Engine</li><li aria-level="1">When Robots Beat Humans: How ChatGPT is Changing the Financial Industry</li><li aria-level="1">Product Classification with Structured Metadata for Online Retail</li><li aria-level="1">NLP for AIOPS: Leveraging Natural Language Processing to Automate and Optimize IT Operations</li><li aria-level="1">Acing the Last Mile of AI</li></ul><p>ODSC Europe – Generative AI:</p><ul><li aria-level="1">The Importance of Domain Specific LLMs and the Engineering Needed to Deploy Them in Your Own Corporate Environment</li><li aria-level="1">Data Communication in the Age of AI</li><li aria-level="1">Implementing Generative AI in Organisations: Challenges and Opportunities</li><li aria-level="1">Towards Socially Unbiased Generative Artificial Intelligence</li><li aria-level="1">Generative AI</li><li aria-level="1">Generative NLP models in customer service. How to evaluate them? Challenges and lessons learned in a real use case in banking.</li><li aria-level="1">Using Large Language Models in Julia</li><li aria-level="1">How to bring your data to LLMs?</li><li aria-level="1">Pre-trained language models for Summarisation</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-HkKrzcrm3.tatsu-column{width: 100%;}.tatsu-HkKrzcrm3.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-HkKrzcrm3 > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-HkKrzcrm3 > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-HkKrzcrm3 > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-HkKrzcrm3 > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-HkKrzcrm3.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-HkKrzcrm3.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-HkKrzcrm3.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-S1-FBM9rXn .tatsu-section-pad{padding: 13px 0px 0px 0px;}.tatsu-S1-FBM9rXn .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-S1-FBM9rXn > .tatsu-bottom-divider{z-index: 9999;}.tatsu-S1-FBM9rXn > .tatsu-top-divider{z-index: 9999;}.tatsu-S1-FBM9rXn .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-92253" class="element not-wide blog-post clearfix post-92253 post type-post status-publish format-standard has-post-thumbnail hentry category-machine-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/is-machine-learning-necessary-to-solve-problems-in-biology/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/04/dna-gac6ec74b1_640-640x300-1.jpg" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2023/04/dna-gac6ec74b1_640-640x300-1.jpg 640w, https://odsc.com/wp-content/uploads/2023/04/dna-gac6ec74b1_640-640x300-1-300x141.jpg 300w, https://odsc.com/wp-content/uploads/2023/04/dna-gac6ec74b1_640-640x300-1-107x50.jpg 107w, https://odsc.com/wp-content/uploads/2023/04/dna-gac6ec74b1_640-640x300-1-50x23.jpg 50w, https://odsc.com/wp-content/uploads/2023/04/dna-gac6ec74b1_640-640x300-1-100x47.jpg 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/is-machine-learning-necessary-to-solve-problems-in-biology/"> Is Machine Learning Necessary to Solve Problems in Biology? </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/is-machine-learning-necessary-to-solve-problems-in-biology/#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/machine-learning/" style= "color: ;" data-background-color = "" title="View all posts in Machine Learning"> Machine Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-r1WoikCHf3 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-rJxjoyRBzh" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-ryjs1RHG3" 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-S1l3JRrf2 "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-S1l3JRrf2.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Joshy George is a speaker for <a href="https://opendatascience.com/tag/east-2023/">ODSC East</a> this May 9th-11th. Be sure to check out his talk, “<a href="https://odsc.com/speakers/is-machine-learning-necessary-to-solve-problems-in-biology/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1681403387321.1681408585808.1157&amp;__hssc=39712252.15.1681408585808&amp;__hsfp=2003037740">Is Machine Learning Necessary to Solve Problems in Biology</a>,” there!</em></p><p>The French mathematician Pierre-Simon Laplace suggested that we can accurately predict the universe’s future if we know the precise position and velocity of every particle in the universe. This idea significantly influenced the development of classical mechanics and the scientific worldview that underpins much of modern science. When extended to biological systems, this idea suggests a world in which we should be able to understand the cause and course of a disease with high precision. In reality, this is not the case, as we are unable to predict the trajectory of even the simplest organism with very high accuracy. I will explore the reasons for this discrepancy between theory and practice and suggest that recent developments in machine learning will be necessary to improve the accuracy of predictions in biological systems.</p><p>An approach to predicting the behavior of a living organism involves studying the underlying physical and chemical processes that govern the conduct of individual cells, organs, and organ systems and integrating information from various levels of the organization. At the cellular level, researchers have identified the biochemical reactions within a cell and how they are regulated. At the organ level, we know the structure and function of specific organs such as the heart, lungs, or brain and how they work together to maintain homeostasis. By understanding how these different levels of the organization interact, we can develop models that predict the behavior of the entire organism. In short, if we can model the behavior of individual cells, then we can predict the whole organism’s behavior, as Laplace suggested.</p><p>However, the cell is a nonlinear system. A nonlinear system is one in which the output is not directly proportional to the input. In the case of the cell, the information would be the various signals and stimuli it receives from its environment. At the same time, the output would be the different cellular processes and behaviors that the cell exhibits in response to those inputs. Most gene regulatory relationships are nonlinear and, in addition, include feedback loops. These dynamics give rise to emergent behaviors and properties that are not easily predictable based on the behavior of individual components, making the eukaryotic cell a fascinating and complex system to study.</p><p>Overall, modeling and predicting nonlinear systems require sophisticated mathematical techniques, such as chaos theory, bifurcation theory, and nonlinear dynamics, which can help to identify patterns and predict the system’s behavior under certain conditions. However, even with these techniques, predicting the behavior of nonlinear systems can be challenging, and it is often subject to high uncertainty. In a nonlinear system, the output is not directly proportional to the input, which means that small changes in the input can cause significant changes in the output. In addition, nonlinear systems can have multiple equilibrium points or attractors, leading to unpredictable and chaotic behavior. Thus, even if we know the equations governing the dynamics and the initial conditions, we cannot predict the system’s future state.</p><p>Predicting the behavior of nonlinear systems using machine learning algorithms can be challenging, but it is possible using appropriate techniques. One common approach is to use time-series data from the system to train a machine-learning model, which can then be used to predict future behavior. However, it is essential to note that the accuracy of the predictions will depend on the quality of the data used to train the model and the complexity of the nonlinear system. Additionally, it is essential to validate the predictions to ensure they are accurate and reliable.</p><p>The combination of molecular cell biology, nonlinear dynamics, and machine learning provides a promising approach to understanding and predicting biological systems’ behavior. By improving our ability to predict how living organisms will behave, we can develop more effective therapies for diseases and make more informed decisions about managing conditions. I will also discuss examples of how machine learning has been applied to predict biological systems’ behavior <a href="https://odsc.com/speakers/is-machine-learning-necessary-to-solve-problems-in-biology/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1681403387321.1681408585808.1157&amp;__hssc=39712252.15.1681408585808&amp;__hsfp=2003037740">in my talk at ODSC East 2023</a> in Boston.</p><p>About the author/ODSC East 2023 speaker on machine learning and biology:</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/03/Joshy-George-Cropped.jpg" data-src="https://odsc.com/wp-content/uploads/2023/03/Joshy-George-Cropped.jpg" /><noscript><img decoding="async" class="alignleft lazyloaded lazyload" src="https://odsc.com/wp-content/uploads/2023/03/Joshy-George-Cropped.jpg" data-src="https://odsc.com/wp-content/uploads/2023/03/Joshy-George-Cropped.jpg" /></noscript>Joshy George is a bioinformatics researcher with a Ph.D. in Bioinformatics from the University of Melbourne, Australia, and a Master’s in Computer Science from the Indian Institute of Science. With his background in data science and machine learning, Dr. George has co-authored over 100 peer-reviewed scientific articles, showcasing expertise in developing principled methods to solve complex biological problems. In his current role, he leads a team that is focused on building predictive models for cancer precision medicine and understanding the molecular mechanisms leading to diseases.</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-ryjs1RHG3.tatsu-column{width: 100%;}.tatsu-ryjs1RHG3.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-ryjs1RHG3 > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-ryjs1RHG3 > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-ryjs1RHG3 > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-ryjs1RHG3 > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-ryjs1RHG3.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-ryjs1RHG3.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-ryjs1RHG3.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-r1WoikCHf3 .tatsu-section-pad{padding: 0px 0px 90px 0px;}.tatsu-r1WoikCHf3 .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-r1WoikCHf3 > .tatsu-bottom-divider{z-index: 9999;}.tatsu-r1WoikCHf3 > .tatsu-top-divider{z-index: 9999;}.tatsu-r1WoikCHf3 .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-90096" class="element not-wide blog-post clearfix post-90096 post type-post status-publish format-standard has-post-thumbnail hentry category-machine-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/hybrid-ai-for-complex-applications-with-scruff/" class=" thumb-wrap"><img width="640" height="300" src="https://odsc.com/wp-content/uploads/2023/03/SCRUFF-header_SM2.jpg" class="attachment-blog-image size-blog-image wp-post-image" alt="" decoding="async" srcset="https://odsc.com/wp-content/uploads/2023/03/SCRUFF-header_SM2.jpg 640w, https://odsc.com/wp-content/uploads/2023/03/SCRUFF-header_SM2-300x141.jpg 300w, https://odsc.com/wp-content/uploads/2023/03/SCRUFF-header_SM2-107x50.jpg 107w, https://odsc.com/wp-content/uploads/2023/03/SCRUFF-header_SM2-50x23.jpg 50w, https://odsc.com/wp-content/uploads/2023/03/SCRUFF-header_SM2-100x47.jpg 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>Mar</div><div>09</div></div><div class="left post-title-section"><h2 class="post-title"> <a href="https://odsc.com/blog/hybrid-ai-for-complex-applications-with-scruff/"> Hybrid AI for Complex Applications with Scruff </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/hybrid-ai-for-complex-applications-with-scruff/#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/machine-learning/" style= "color: ;" data-background-color = "" title="View all posts in Machine Learning"> Machine Learning</a></li></ul></nav></div></div><div class="post-details clearfix"><div class="post-content clearfix"><div class="tatsu-Sybh9Ltwkn tatsu-section tatsu-bg-overlay tatsu-clearfix" data-title="" data-headerscheme="background--dark"><div class='tatsu-section-pad clearfix' data-padding='{"d":"17px 0px 0px 0px"}' data-padding-top='17px'><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-B1x2cLKD13" ><div class="tatsu-row " ><div class="tatsu-column tatsu-bg-overlay tatsu-one-col tatsu-column-image-none tatsu-column-effect-none tatsu-BJhc8FDk2" 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-SyEoUYwy3 "><div class="tatsu-text-inner tatsu-align-center clearfix" ><style>.tatsu-SyEoUYwy3.tatsu-text-block-wrap .tatsu-text-inner{width: 100%;text-align: left;}</style><p><em>Editor’s note: Avi Pfeffer is a speaker for ODSC East 2023 this May 9th-11th. Be sure to check out his talk, “<a href="https://odsc.com/speakers/hybrid-ai-for-complex-applications-with-scruff/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1678372661141.1678376648402.1063&amp;__hssc=39712252.7.1678376648402&amp;__hsfp=901111203">Hybrid AI for Complex Applications with Scruff</a>,” there!</em></p><p>In this ODSC East preview, the author describes how the <a href="https://cra.com/introducing-scruff/">Scruff AI modeling framework</a> enables clear and coherent implementation of multiparadigm AI models.</p><p>Many different modeling paradigms are needed to build real-world AI applications. You might need a deep neural network to process image data, combined with a probabilistic model of contextual information, and perhaps a physics-based model to describe how the environment operates dynamically. Not only is combining all these different paradigms usually difficult from an engineering point of view, but it’s quite likely that the resulting combination will be incoherent. For example, imagine a fire modeling application that considers weather conditions in both regional and property-level fire ignition and spread. If you don’t correctly account for the fact that the same weather applies in both cases, you might underestimate the risk of severe weather causing significant damage to your property.</p><p><a href="https://odsc.com/speakers/hybrid-ai-for-complex-applications-with-scruff/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1678372661141.1678376648402.1063&amp;__hssc=39712252.7.1678376648402&amp;__hsfp=901111203">In this workshop, I’ll describe Scruff</a>, our modeling framework that enables clear and coherent implementation of multiparadigm AI models. Scruff, which is an open-source package in Julia, is based on the ideas of probabilistic programming. Like probabilistic programming, a model is organized as a sequence of random variables, where each variable is generated from previous variables according to a random process, which is called a stochastic function or sfunc. However, unlike previous probabilistic programming languages, sfuncs do not need to be specified in explicit probabilistic terms. Instead, Scruff defines a set of operators that can be applied to sfuncs, and algorithms are written using these operators, making algorithm implementation independent of sfunc representation. Furthermore, different kinds of sfunc will support different operators, which enables them to serve different roles in a model. For example, a neural network might be used as a recognizer, while an ODE-based physics model might be used as a simulator. The algorithms know how to make use of components playing these different roles.</p><p>One of the appealing features of Scruff is its flexible treatment of time in dynamic models. Most existing AI frameworks model time as proceeding in fixed, discrete time steps. In contrast, Scruff allows asynchronous modeling, where variables are only instantiated when you need them. One benefit of this is that you can postpone running an algorithm until an event calls for it. Another benefit is that you can model fast and slowly evolving variables at their appropriate rates.</p><p><a href="https://odsc.com/speakers/hybrid-ai-for-complex-applications-with-scruff/?__hstc=39712252.8eec8d7f5738faf6416f0c6bad9fe9a5.1634042255273.1678372661141.1678376648402.1063&amp;__hssc=39712252.7.1678376648402&amp;__hsfp=901111203">In the workshop</a>, I’m going to describe a wildfire risk assessment application and show how it works at multiple temporal and spatial scales, integrating data-driven, physics-based, and probabilistic components. I’ll also explain how it avoids the mistake I described earlier in not accounting correctly for the weather. After presenting this example, I’ll help you get started with Scruff and walk you through some simple, hands-on examples.</p><p>About the author:</p><div class="two-third column-block no-background" data-animation=""><div class="be-custom-column-inner"><p><img decoding="async" class="lazyloaded alignleft lazyload" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://odsc.com/wp-content/uploads/2023/01/Avi-Pfeffer_square-headshot-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/01/Avi-Pfeffer_square-headshot-Cropped.png" /><noscript><img decoding="async" class="lazyloaded alignleft lazyload" src="https://odsc.com/wp-content/uploads/2023/01/Avi-Pfeffer_square-headshot-Cropped.png" data-src="https://odsc.com/wp-content/uploads/2023/01/Avi-Pfeffer_square-headshot-Cropped.png" /></noscript>Dr. Avi Pfeffer is Chief Scientist at Charles River Analytics. Dr. Pfeffer is a leading researcher on a variety of computational intelligence techniques including probabilistic reasoning, machine learning, and computational game theory. Dr. Pfeffer has developed numerous innovative probabilistic representation and reasoning frameworks, such as probabilistic programming, which enables the development of probabilistic models using the full power of programming languages, and statistical relational learning, which provides the ability to combine probabilistic and relational reasoning. He is the lead developer of Charles River Analytics’ Figaro™ probabilistic programming language. As an Associate Professor at Harvard, he developed IBAL, the first general-purpose probabilistic programming language. While at Harvard, he also produced systems for representing, reasoning about, and learning the beliefs, preferences, and decision making strategies of people in strategic situations. Prior to joining Harvard, he invented object-oriented Bayesian networks and probabilistic relational models, which form the foundation of the field of statistical relational learning. Dr. Pfeffer serves as Action Editor of the Journal of Machine Learning Research and served as Associate Editor of Artificial Intelligence Journal and as Program Chair of the Conference on Uncertainty in Artificial Intelligence. He has published many journal and conference articles and is the author of a text on probabilistic programming. Dr. Pfeffer received his Ph.D. in computer science from Stanford University and his B.A. in computer science from the University of California, Berkeley.</p></div></div></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-BJhc8FDk2.tatsu-column{width: 100%;}.tatsu-BJhc8FDk2.tatsu-column > .tatsu-column-inner > .tatsu-column-overlay{mix-blend-mode: normal;}.tatsu-BJhc8FDk2 > .tatsu-column-inner > .tatsu-top-divider{z-index: 9999;}.tatsu-BJhc8FDk2 > .tatsu-column-inner > .tatsu-bottom-divider{z-index: 9999;}.tatsu-BJhc8FDk2 > .tatsu-column-inner > .tatsu-left-divider{z-index: 9999;}.tatsu-BJhc8FDk2 > .tatsu-column-inner > .tatsu-right-divider{z-index: 9999;}@media only screen and (max-width:1377px) {.tatsu-row > .tatsu-BJhc8FDk2.tatsu-column{width: 100%;}}@media only screen and (min-width:768px) and (max-width: 1024px) {.tatsu-row > .tatsu-BJhc8FDk2.tatsu-column{width: 100%;}}@media only screen and (max-width: 767px) {.tatsu-row > .tatsu-BJhc8FDk2.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-Sybh9Ltwkn .tatsu-section-pad{padding: 17px 0px 0px 0px;}.tatsu-Sybh9Ltwkn .tatsu-section-offset-wrap{transform: translateY(-0px);}.tatsu-Sybh9Ltwkn > .tatsu-bottom-divider{z-index: 9999;}.tatsu-Sybh9Ltwkn > .tatsu-top-divider{z-index: 9999;}.tatsu-Sybh9Ltwkn .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/machine-learning/page/2/' class='inactive sec-bg sec-color' >2</a><a href='https://odsc.com/blog/category/machine-learning/page/3/' class='inactive sec-bg sec-color' >3</a><a href='https://odsc.com/blog/category/machine-learning/page/4/' class='inactive sec-bg sec-color' >4</a><a href='https://odsc.com/blog/category/machine-learning/page/2/' class='sec-bg sec-color'>Next &rsaquo;</a><a href='https://odsc.com/blog/category/machine-learning/page/18/' class='sec-bg sec-color'>Last &raquo;</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"><a 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 current-cat"><a aria-current="page" 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>&nbsp;</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>&nbsp;</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>&nbsp;</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&#038;__hssc=19222759.10.1535383810113&#038;__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="{&quot;id&quot;:60769,&quot;slug&quot;:&quot;tree&quot;,&quot;theme_id&quot;:47575,&quot;cookies&quot;:[],&quot;triggers&quot;:[{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;cookie_name&quot;:&quot;&quot;,&quot;extra_selectors&quot;:&quot;.path1 a&quot;}}],&quot;mobile_disabled&quot;:true,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:false,&quot;overlay_disabled&quot;:false,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;normal&quot;,&quot;responsive_min_width&quot;:&quot;0%&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;100%&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;640px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;380px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:false,&quot;location&quot;:&quot;center top&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;100&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;0&quot;,&quot;position_right&quot;:&quot;0&quot;,&quot;position_fixed&quot;:false,&quot;animation_type&quot;:&quot;fade&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;center top&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:false,&quot;esc_press&quot;:false,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}"><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":"97034"}; /* ]]> */ </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":"Harnessing Machine Learning on Big Data with PySpark on AWS","type":"post","id":"97034","categories":["Machine 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_54474728-js-before"> /* <![CDATA[ */ window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['54474728'] = {"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/machine-learning/" data-gt-orig-domain="odsc.com" data-gt-widget-id="54474728" 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 /><!-- 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>

Pages: 1 2 3 4 5 6 7 8 9 10