CINXE.COM
Jumio Engineering & Data Science - Medium
<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>Jumio Engineering & Data Science - Medium</title><link rel="canonical" href="https://medium.com/jumio"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://medium.com/feed/jumio"><meta name="robots" content="index,follow"><meta name="title" content="Jumio Engineering & Data Science - Medium"><meta name="referrer" content="unsafe-url"><meta name="description" content="When Identity Matters - tech blog."><meta name="theme-color" content="#000000"><meta property="og:title" content="Jumio Engineering & Data Science – Medium"><meta property="twitter:title" content="Jumio Engineering & Data Science – Medium"><meta property="og:url" content="https://medium.com/jumio"><meta property="og:image" content="https://cdn-images-1.medium.com/max/1200/1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="When Identity Matters - tech blog."><meta name="twitter:description" content="When Identity Matters - tech blog."><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg"><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta property="medium-com:creator" content="https://medium.com/@lukas.danzer"><meta name="twitter:site" content="@Medium"><meta property="og:site_name" content="Medium"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://jumio"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://jumio"><meta property="al:android:url" content="medium://jumio"><meta property="al:web:url" content="https://medium.com/jumio"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/jumio" /><script type="application/ld+json">{"@context": "http://schema.org", "@graph": [{"@type": "WebSite", "url": "https:\/\/medium.com", "name": "Medium", "alternateName": "Medium is a community of readers and writers offering unique perspectives on ideas large and small."},{"@type": "Organization", "url": "https:\/\/medium.com\/jumio", "name": "Jumio Engineering \x26 Data Science"}]}</script><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.ouwh4uMviI3QQWIjxRhkHA.12.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>document.domain = document.domain;</script><script>if (window.top !== window.self) window.location = 'about:blank';var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "G-7JY7T788PK", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="https://www.google-analytics.com/analytics.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js"></script><![endif]--><link rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg" color="#171717"></head><body itemscope class=" browser-ie os-windows v-unbound v-glyph v-glyph--m2-unbound-source-serif-pro is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix js-metabar"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="js-metabarLogoLeft"><a href="https://medium.com/" data-log-event="home" class="siteNav-logo u-fillBlack u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--wordmarkMedium svgIcon--120x26px u-flex"><svg class="svgIcon-use" width="120" height="26" ><path d="M29.57 1.404l.036-.008V1.12h-7.27l-6.75 15.979-6.75-15.98H1.003v.278l.035.008c1.327.302 2 .752 2 2.374v18.993c0 1.623-.676 2.073-2.003 2.374L1 25.153v.279h5.315v-.278l-.035-.008c-1.327-.302-2-.751-2-2.374V4.88l8.67 20.552h.492l8.924-21.125V23.24c-.114 1.282-.782 1.677-1.983 1.95l-.036.009v.275h9.259V25.2l-.036-.008c-1.203-.274-1.886-.67-2-1.95l-.006-19.464h.006c0-1.622.674-2.072 2-2.374zm4.23 12.582c.15-3.412 1.367-5.875 3.41-5.918.629.01 1.157.219 1.568.62.872.852 1.282 2.634 1.219 5.298h-6.198zm-.092.962h10.85v-.046c-.03-2.61-.78-4.64-2.228-6.033-1.25-1.204-3.103-1.867-5.048-1.867h-.043c-1.01 0-2.248.246-3.13.693a7.316 7.316 0 00-2.623 2.086c-1.185 1.479-1.903 3.477-2.078 5.724a13.717 13.717 0 00-.04.755c-.004.195-.005.39-.001.587.117 5.087 2.846 9.153 7.692 9.153 4.254 0 6.73-3.132 7.348-7.336l-.312-.11c-1.085 2.259-3.034 3.628-5.252 3.461-3.028-.228-5.347-3.32-5.137-7.066m23.122 6.893c-.356.85-1.099 1.319-2.094 1.319-.995 0-1.905-.689-2.552-1.939-.694-1.342-1.06-3.24-1.06-5.487 0-4.678 1.445-7.704 3.68-7.704.937 0 1.674.468 2.026 1.284v12.527zm7.198 3.335c-1.327-.316-2-.787-2-2.492V0l-8.062 2.392v.293l.05-.004c1.111-.09 1.866.064 2.304.472.343.32.51.809.51 1.498v3.11C56.033 7.25 55.088 7 53.94 7c-2.326 0-4.453.987-5.986 2.779-1.599 1.867-2.444 4.42-2.444 7.38 0 5.287 2.584 8.84 6.43 8.84 2.25 0 4.06-1.242 4.888-3.336v2.811h7.233v-.29l-.035-.008zM70.94 3.085c0-1.65-1.236-2.896-2.875-2.896-1.632 0-2.908 1.272-2.908 2.896 0 1.624 1.278 2.896 2.908 2.896 1.64 0 2.875-1.245 2.875-2.896zm1.903 22.092c-1.327-.316-2-.787-2-2.492h-.006V7.055l-7.234 2.092v.284l.043.004c1.566.14 1.994.683 1.994 2.525v13.515h7.24v-.29l-.037-.008zm18.536 0c-1.327-.316-2-.787-2-2.492V7.055L82.49 9.078v.285l.04.004c1.28.136 1.65.71 1.65 2.56v9.88c-.426.85-1.227 1.356-2.196 1.39-1.573 0-2.439-1.07-2.439-3.012V7.055l-7.234 2.092v.284l.044.004c1.565.14 1.994.683 1.994 2.525v8.362a9.443 9.443 0 00.15 1.741l.13.57C75.243 24.845 76.848 26 79.362 26c2.129 0 3.996-1.328 4.818-3.405v2.885h7.233v-.291l-.034-.012zm28.102.298v-.291l-.035-.009c-1.44-.334-2.001-.964-2.001-2.248V12.295C117.445 8.98 115.597 7 112.5 7c-2.257 0-4.16 1.314-4.893 3.36-.582-2.168-2.257-3.36-4.734-3.36-2.175 0-3.88 1.156-4.612 3.11V7.056l-7.233 2.006v.286l.043.004c1.547.138 1.994.697 1.994 2.492v13.631h6.75v-.29l-.037-.01c-1.148-.271-1.519-.767-1.519-2.04V10.95c.304-.715.917-1.562 2.127-1.562 1.504 0 2.266 1.05 2.266 3.116v12.972h6.751v-.29l-.035-.01c-1.149-.271-1.52-.767-1.52-2.04V12.294a7.107 7.107 0 00-.095-1.21c.322-.777.97-1.696 2.23-1.696 1.524 0 2.265 1.02 2.265 3.116v12.972h7.233z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/jumio%3F~feature=LoMobileNavBar&~channel=ShowCollectionHome&~stage=m2">Open in app</a></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-flexCenter u-height65 u-xs-height56"><div class="buttonSet buttonSet--wide u-lineHeightInherit"><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fjumio&source=--------------------------nav_reg&operation=login" data-action="sign-in-prompt" data-redirect="https://medium.com/jumio" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2Fjumio&source=--------------------------nav_reg&operation=register" data-action="sign-up-prompt" data-redirect="https://medium.com/jumio" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div><div class="collectionHeader js-collectionHeaderContainer u-relative collectionHeader--layoutMedium collectionHeader--alignmentLeft collectionHeader--withLogo collectionHeader--withBackground collectionHeader--colorBehaviorSubtle collectionHeader--withoutNavigation collectionHeader--editorLayoutTitleAndLogo is-modeView"><div class="collectionHeader-aspectRatioTable"><div class="collectionHeader-aspectRatioContent u-backgroundSizeCover js-collectionHeaderBackground" style="background-image: url("https://cdn-images-1.medium.com/max/2400/1*v2-XDh723fCV2NxZ2OzOIg.jpeg"); background-position: 36.785714285714285% 33.57142857142857% !important;"><div class="collectionHeader-overlayBackground u-height100vh"></div><header class="collectionHeader-heroAndInlineNav u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto u-foreground js-collectionHeader"><div class="collectionHeader-hero js-collectionHeaderHero u-clearfix u-imageSpectrum"><div class="collectionHeader-heroInner"><div class="collectionHeader-logo js-collectionHeaderLogo" style="max-width: 276px;"><a class="link u-baseColor--link" href="https://medium.com/jumio" title="Go to Jumio Engineering & Data Science" aria-label="Go to Jumio Engineering & Data Science"><div class="u-relative u-marginAuto"><div style="padding-bottom: 33.333333333333336%"></div><img class="collectionHeader-logoImage js-collectionHeaderLogoImage" src="https://cdn-images-1.medium.com/max/552/1*vlJxIzvrnbTFcRXA1Tcv_Q@2x.png" data-image-id="1*vlJxIzvrnbTFcRXA1Tcv_Q@2x.png" data-width="1200" data-height="400" /></div></a></div><div class="collectionHeader-nameAndDescription"><a class="link link--noUnderline u-baseColor--link" href="https://medium.com/jumio" title="Go to Jumio Engineering & Data Science" aria-label="Go to Jumio Engineering & Data Science"><h1 class="collectionHeader-name js-collectionName u-foreground u-baseColor--textDark u-paddingBottom4 u-lineHeightTightest u-contentSansBold u-fontSize40 u-xs-fontSize32">Jumio Engineering & Data Science</h1></a><h2 class="collectionHeader-description js-collectionDescription u-foreground u-baseColor--textNormal u-contentSansRegular u-fontSize24 u-xs-fontSize18">When Identity Matters - tech blog</h2></div></div></div></header></div><div class="collectionHeader-aspectRatioCell"><div class="collectionHeader-aspectRatioFullWidth"></div></div></div><div class="collectionHeader-blockNav"><div class="u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto"><nav class="collectionHeader-nav u-clearfix js-collectionHeaderNav u-lineHeight40 u-overflowHiddenY"><div class="buttonSet u-flex1 u-noWrap u-overflowX u-paddingBottom100 u-xs-marginRight15"><label class="button button--small button--chromeless button--withIcon button--withSvgIcon inputGroup u-sm-hide metabar-predictiveSearch u-baseColor--buttonNormal u-baseColor--placeholderNormal" title="Search"><span class="svgIcon svgIcon--search svgIcon--25px u-baseColor--iconLight"><svg class="svgIcon-use" width="25" height="25" ><path d="M20.067 18.933l-4.157-4.157a6 6 0 10-.884.884l4.157 4.157a.624.624 0 10.884-.884zM6.5 11c0-2.62 2.13-4.75 4.75-4.75S16 8.38 16 11s-2.13 4.75-4.75 4.75S6.5 13.62 6.5 11z"/></svg></span><input class="js-predictiveSearchInput textInput textInput--rounded textInput--darkText u-baseColor--textNormal textInput--transparent" type="search" placeholder="Search" required="true" data-collection-id="7e31916d58c5" /></label><a class="button button--chromeless is-touchIconBlackPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--chromeless u-verticalAlignMiddle" href="https://twitter.com/Jumio" title="Visit “Jumio Engineering & Data Science” on X" aria-label="Visit “Jumio Engineering & Data Science” on X" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--twitter svgIcon--25px"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M14.215 11.3l5.764-6.7h-1.366l-5.005 5.818L9.611 4.6H5l6.045 8.798L5 20.424h1.366l5.286-6.144 4.221 6.144h4.61L14.216 11.3zm-1.871 2.175l-.612-.876-4.874-6.97h2.098l3.933 5.625.613.876 5.112 7.312h-2.098l-4.172-5.966z" fill="#242424"/></svg></span></span></a><a class="button button--chromeless is-touchIconBlackPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--chromeless u-verticalAlignMiddle" href="//facebook.com/jumiocorp" title="Visit “Jumio Engineering & Data Science” on Facebook" aria-label="Visit “Jumio Engineering & Data Science” on Facebook" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--facebookFilled svgIcon--25px"><svg class="svgIcon-use" width="25" height="25" ><path d="M21 12.646C21 7.65 16.97 3.6 12 3.6s-9 4.05-9 9.046a9.026 9.026 0 007.59 8.924v-6.376H8.395V12.64h2.193v-1.88c0-2.186 1.328-3.375 3.267-3.375.93 0 1.728.07 1.96.1V9.77H14.47c-1.055 0-1.26.503-1.26 1.242v1.63h2.517l-.33 2.554H13.21V21.6c4.398-.597 7.79-4.373 7.79-8.954"/></svg></span></span></a></div><div class="buttonSet u-textAlignRight u-marginLeft18 u-flex0 u-noWrap"><button class="button button--primary button--smallest u-noUserSelect button--withChrome u-accentColor--buttonNormal js-relationshipButton is-smallPill" data-action="sign-up-prompt" data-sign-in-action="toggle-follow-collection" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/collection/jumio" data-action-source="pub_header----7e31916d58c5----------------------follow_pub" data-collection-id="7e31916d58c5"><span class="button-label js-buttonLabel">Follow</span></button></div></nav></div></div></div><div class="u-marginBottom40 js-collectionStream"><div class="streamItem streamItem--section js-streamItem"><section class="u-marginTop30 u-xs-margin0 u-marginBottom15 u-maxWidth1032 u-sm-paddingLeft20 u-sm-paddingRight20 u-borderBox u-marginAuto"><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight15 u-size8of12" data-source="collection_home---4------0-----------------------" data-post-id="b45d911b1af7" data-index="0"><div class="u-lineHeightBase postItem u-marginRight3"><a href="https://medium.com/jumio/tutorial-unsupervised-ranking-using-machine-learning-b45d911b1af7?source=collection_home---4------0-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/tutorial-unsupervised-ranking-using-machine-learning-b45d911b1af7?source=collection_home---4------0-----------------------" class="u-block u-xs-height170 u-height350 u-width100pct u-floatLeft u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/2000/0*6bcBEZ-vQBmZF9OB"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Tutorial: Unsupervised Ranking Using Machine Learning</span></a></div></div><div class="col u-xs-marginBottom10 u-paddingLeft9 u-paddingRight12 u-paddingTop0 u-sm-paddingTop20 u-paddingBottom25 u-size4of12 u-xs-size12of12 u-marginBottom30"><a class="" href="https://medium.com/jumio/tutorial-unsupervised-ranking-using-machine-learning-b45d911b1af7?source=collection_home---4------0-----------------------" data-action-source="collection_home---4------0-----------------------" data-post-id="b45d911b1af7"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp4 u-fontSize30 u-size12of12 u-xs-size12of12 u-xs-fontSize24">Tutorial: Unsupervised Ranking Using Machine Learning</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Ranking documents based on relevance using context based search</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@kaushikmoudgalya" data-action="show-user-card" data-action-value="c3c020726665" data-action-type="hover" data-user-id="c3c020726665" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*8j5O7Pk6yCQt_AElh_wDgg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Kaushik Moudgalya"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@kaushikmoudgalya" data-action="show-user-card" data-action-value="c3c020726665" data-action-type="hover" data-user-id="c3c020726665" dir="auto">Kaushik Moudgalya</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2022-09-30T13:59:07.782Z">Sep 30, 2022</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div></div><div class="row u-marginTop15 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------1-----------------------" data-post-id="e8e2faf13955" data-index="1"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/taming-the-hydra-how-to-create-a-data-pipeline-for-multi-head-classification-with-tensorflow-e8e2faf13955?source=collection_home---4------1-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/taming-the-hydra-how-to-create-a-data-pipeline-for-multi-head-classification-with-tensorflow-e8e2faf13955?source=collection_home---4------1-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/1*IFImH9mExoRsnw6DxrIJeg.png"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Taming the Hydra: How to Create a Data Pipeline for Multi-Head Classification with Tensorflow</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/taming-the-hydra-how-to-create-a-data-pipeline-for-multi-head-classification-with-tensorflow-e8e2faf13955?source=collection_home---4------1-----------------------" data-action-source="collection_home---4------1-----------------------" data-post-id="e8e2faf13955"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Taming the Hydra: How to Create a Data Pipeline for Multi-Head Classification with Tensorflow</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Unleash the power of the tf.data.Dataset API</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@gernotmueller83" data-action="show-user-card" data-action-value="5717621602e1" data-action-type="hover" data-user-id="5717621602e1" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*g9BwmVu0B53HVMjlcOjPGw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Gernot Mueller"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@gernotmueller83" data-action="show-user-card" data-action-value="5717621602e1" data-action-type="hover" data-user-id="5717621602e1" dir="auto">Gernot Mueller</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2022-07-06T21:24:02.983Z">Jul 6, 2022</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="8 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------2-----------------------" data-post-id="67ba5dedb7e1" data-index="2"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/how-to-record-screen-captures-during-ui-tests-on-android-67ba5dedb7e1?source=collection_home---4------2-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/how-to-record-screen-captures-during-ui-tests-on-android-67ba5dedb7e1?source=collection_home---4------2-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/0*wZcdbEbVFd2pWJhu"); background-position: 50% 50% !important;"><span class="u-textScreenReader">How to record screen captures during UI tests on Android</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/how-to-record-screen-captures-during-ui-tests-on-android-67ba5dedb7e1?source=collection_home---4------2-----------------------" data-action-source="collection_home---4------2-----------------------" data-post-id="67ba5dedb7e1"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">How to record screen captures during UI tests on Android</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Overview</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@richrdbogdn" data-action="show-user-card" data-action-value="a5cbac14b617" data-action-type="hover" data-user-id="a5cbac14b617" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*sYuhHgvfNiKfTk0uQxGTjw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Richárd Bogdán"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@richrdbogdn" data-action="show-user-card" data-action-value="a5cbac14b617" data-action-type="hover" data-user-id="a5cbac14b617" dir="auto">Richárd Bogdán</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2022-05-23T06:44:19.390Z">May 22, 2022</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------3-----------------------" data-post-id="95f143529438" data-index="3"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/mobile-sdk-4-0-0-is-out-95f143529438?source=collection_home---4------3-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/mobile-sdk-4-0-0-is-out-95f143529438?source=collection_home---4------3-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/1*3nJijb2I6oVybpCvITgrtQ.png"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Mobile SDK 4.0.0 Is Out</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/mobile-sdk-4-0-0-is-out-95f143529438?source=collection_home---4------3-----------------------" data-action-source="collection_home---4------3-----------------------" data-post-id="95f143529438"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Mobile SDK 4.0.0 Is Out</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">We are thrilled to announce the release of the most advanced Jumio Mobile SDK yet: SDK 4.0. Read about the new features and improvements.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@lukas.danzer" data-action="show-user-card" data-action-value="2261739d83b6" data-action-type="hover" data-user-id="2261739d83b6" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*8vVYbkseF-IyfmsA" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Lukas Danzer"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@lukas.danzer" data-action="show-user-card" data-action-value="2261739d83b6" data-action-type="hover" data-user-id="2261739d83b6" dir="auto">Lukas Danzer</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-11-18T20:06:26.310Z">Nov 18, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="4 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop15 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------4-----------------------" data-post-id="53f124a77411" data-index="4"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/face-anonymization-pipeline-in-pytorch-53f124a77411?source=collection_home---4------4-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/face-anonymization-pipeline-in-pytorch-53f124a77411?source=collection_home---4------4-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/0*lJmpPR-GxN-9GTnC"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Face Anonymization Pipeline in Pytorch</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/face-anonymization-pipeline-in-pytorch-53f124a77411?source=collection_home---4------4-----------------------" data-action-source="collection_home---4------4-----------------------" data-post-id="53f124a77411"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Face Anonymization Pipeline in Pytorch</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Protecting data privacy is critical to preserving customer trust and is also gaining increasing attention from policy makers.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@francois.david_28880" data-action="show-user-card" data-action-value="7b69670e880f" data-action-type="hover" data-user-id="7b69670e880f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*M6CtpSghOzgg067Z" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of François David"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@francois.david_28880" data-action="show-user-card" data-action-value="7b69670e880f" data-action-type="hover" data-user-id="7b69670e880f" dir="auto">François David</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-11-05T15:32:55.281Z">Nov 5, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="10 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------5-----------------------" data-post-id="e2b53670ccea" data-index="5"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/model-compression-the-what-why-and-how-of-it-e2b53670ccea?source=collection_home---4------5-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/model-compression-the-what-why-and-how-of-it-e2b53670ccea?source=collection_home---4------5-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/0*C3dVsHlkkIpiTO5v"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Model Compression — the what, why, and how of it.</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/model-compression-the-what-why-and-how-of-it-e2b53670ccea?source=collection_home---4------5-----------------------" data-action-source="collection_home---4------5-----------------------" data-post-id="e2b53670ccea"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Model Compression — the what, why, and how of it.</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">In this article, we will go through the what, why, and how of model compression.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@siddhartha-saxena" data-action="show-user-card" data-action-value="7a23cda01d6a" data-action-type="hover" data-user-id="7a23cda01d6a" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*mBp3qGmyWCWQDkTIvL5d6A.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Siddhartha Saxena"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@siddhartha-saxena" data-action="show-user-card" data-action-value="7a23cda01d6a" data-action-type="hover" data-user-id="7a23cda01d6a" dir="auto">Siddhartha Saxena</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-04-06T14:20:29.060Z">Apr 6, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------6-----------------------" data-post-id="bf5d2607bdcb" data-index="6"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/parallel-power-optimizing-the-speed-of-big-data-with-amazon-emr-bf5d2607bdcb?source=collection_home---4------6-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/parallel-power-optimizing-the-speed-of-big-data-with-amazon-emr-bf5d2607bdcb?source=collection_home---4------6-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/0*VbR40mVafJHa1ohQ"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Parallel Power: Optimizing the Speed of Big Data with Amazon EMR</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/parallel-power-optimizing-the-speed-of-big-data-with-amazon-emr-bf5d2607bdcb?source=collection_home---4------6-----------------------" data-action-source="collection_home---4------6-----------------------" data-post-id="bf5d2607bdcb"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Parallel Power: Optimizing the Speed of Big Data with Amazon EMR</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Amazon EMR (short for “Elastic MapReduce”) is a big data platform for distributed computing. In situations where you have to do many…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@tennisonyu" data-action="show-user-card" data-action-value="6271538287f" data-action-type="hover" data-user-id="6271538287f" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*SG7YTlW6OmHVYKGd6HWdvg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Tennison Yu"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@tennisonyu" data-action="show-user-card" data-action-value="6271538287f" data-action-type="hover" data-user-id="6271538287f" dir="auto">Tennison Yu</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-02-10T22:30:31.701Z">Feb 10, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop15 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------7-----------------------" data-post-id="1d6b028842c0" data-index="7"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/test-driven-development-saves-the-day-1d6b028842c0?source=collection_home---4------7-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/test-driven-development-saves-the-day-1d6b028842c0?source=collection_home---4------7-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/1*8LHokesUkUqHXFNvIkpnjQ.jpeg"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Test-driven Development Saves the Day</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/test-driven-development-saves-the-day-1d6b028842c0?source=collection_home---4------7-----------------------" data-action-source="collection_home---4------7-----------------------" data-post-id="1d6b028842c0"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Test-driven Development Saves the Day</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Why arming yourself with a powerful suite of tests ensures that your code works and stays healthy through future iterations.</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@lars.soldahl" data-action="show-user-card" data-action-value="74932f9eb210" data-action-type="hover" data-user-id="74932f9eb210" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*48cZX9G9bNL4IhFq-HI9Yw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Lars Soldahl"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@lars.soldahl" data-action="show-user-card" data-action-value="74932f9eb210" data-action-type="hover" data-user-id="74932f9eb210" dir="auto">Lars Soldahl</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2021-01-13T08:59:39.974Z">Jan 13, 2021</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="5 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------8-----------------------" data-post-id="2d40f181d521" data-index="8"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/supplemental-access-control-and-active-authentication-2d40f181d521?source=collection_home---4------8-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/supplemental-access-control-and-active-authentication-2d40f181d521?source=collection_home---4------8-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/1*AbRH_WnlJUQYhwQ6yqSWMg.jpeg"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Supplemental Access Control and Active Authentication</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/supplemental-access-control-and-active-authentication-2d40f181d521?source=collection_home---4------8-----------------------" data-action-source="collection_home---4------8-----------------------" data-post-id="2d40f181d521"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Supplemental Access Control and Active Authentication</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">The Power of NFC: Reading Passports from your Phone</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@christian.henzl" data-action="show-user-card" data-action-value="44ddc0986b25" data-action-type="hover" data-user-id="44ddc0986b25" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*GX_c1csVkaWBlbqJ" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Christian Henzl"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@christian.henzl" data-action="show-user-card" data-action-value="44ddc0986b25" data-action-type="hover" data-user-id="44ddc0986b25" dir="auto">Christian Henzl</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2020-12-23T13:22:53.401Z">Dec 23, 2020</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="7 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------9-----------------------" data-post-id="b929cca5caf8" data-index="9"><div class="u-lineHeightBase postItem"><a href="https://medium.com/jumio/self-attention-in-computer-vision-b929cca5caf8?source=collection_home---4------9-----------------------" data-action="open-post" data-action-value="https://medium.com/jumio/self-attention-in-computer-vision-b929cca5caf8?source=collection_home---4------9-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url("https://cdn-images-1.medium.com/max/800/1*9MzFOGGDzjw3L0APwSOpfA.png"); background-position: 50% 50% !important;"><span class="u-textScreenReader">Attention Mechanisms in Vision Models</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://medium.com/jumio/self-attention-in-computer-vision-b929cca5caf8?source=collection_home---4------9-----------------------" data-action-source="collection_home---4------9-----------------------" data-post-id="b929cca5caf8"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Attention Mechanisms in Vision Models</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Neuroscience and Machine Learning maintain a continuous exchange of ideas. Many innovations in machine learning are modelled on phenomena…</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://medium.com/@h1man5hu" data-action="show-user-card" data-action-value="33070062a563" data-action-type="hover" data-user-id="33070062a563" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*C5ULPIUuR2V3s-_TEVKzCw@2x.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Himanshu Arora"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://medium.com/@h1man5hu" data-action="show-user-card" data-action-value="33070062a563" data-action-type="hover" data-user-id="33070062a563" dir="auto">Himanshu Arora</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2020-12-08T12:03:29.416Z">Dec 8, 2020</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="9 min read"></span></div></div></div></div></div></div></div></section></div></div><style class="js-collectionStyle"> .u-accentColor--borderLight {border-color: #1A8917 !important;} .u-accentColor--borderNormal {border-color: #1A8917 !important;} .u-accentColor--borderDark {border-color: #0F730C !important;} .u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #1A8917 !important;} .u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #1A8917 !important;} .u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #0F730C !important;} .u-accentColor--textNormal {color: #0F730C !important;} .u-accentColor--hoverTextNormal:hover {color: #0F730C !important;} .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #0F730C !important;} .u-accentColor--textDark {color: #0F730C !important;} .u-accentColor--backgroundLight {background-color: #1A8917 !important;} .u-accentColor--backgroundNormal {background-color: #1A8917 !important;} .u-accentColor--backgroundDark {background-color: #0F730C !important;} .u-accentColor--buttonDark {border-color: #0F730C !important; color: #0F730C !important;} .u-accentColor--buttonDark:hover {border-color: #0F730C !important;} .u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #0F730C !important; fill: #0F730C !important;} .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #1A8917 !important; color: #0F730C !important;} .u-accentColor--buttonNormal:hover {border-color: #0F730C !important;} .u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #1A8917 !important; fill: #1A8917 !important;} .u-accentColor--buttonNormal.button--filled .icon:before,.u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonDark.button--filled,.u-accentColor--buttonDark.button--withChrome.is-active,.u-accentColor--fillWhenActive.is-active {background-color: #0F730C !important; border-color: #0F730C !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #1A8917 !important; border-color: #1A8917 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .postArticle.is-withAccentColors .markup--user,.postArticle.is-withAccentColors .markup--query {color: #0F730C !important;} .u-accentColor--highlightFaint {background-color: rgba(232, 243, 232, 1) !important;} .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(163, 208, 162, 1) !important;} .postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(232, 243, 232, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(232, 243, 232, 1), rgba(232, 243, 232, 1));} .postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(209, 231, 209, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(209, 231, 209, 1), rgba(209, 231, 209, 1));} .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(163, 208, 162, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));} .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(163, 208, 162, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));} .postArticle.is-withAccentColors .markup--highlight {background-color: rgba(163, 208, 162, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(163, 208, 162, 1), rgba(163, 208, 162, 1));}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);} .u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .ui-h1,.u-imageSpectrum .ui-h2,.u-imageSpectrum .ui-h3,.u-imageSpectrum .ui-h4,.u-imageSpectrum .ui-brand1,.u-imageSpectrum .ui-brand2,.u-imageSpectrum .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-body,.u-imageSpectrum .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-summary,.u-imageSpectrum .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;} .u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;} .u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;} .u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;} .u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .ui-h1,.u-resetSpectrum .ui-h2,.u-resetSpectrum .ui-h3,.u-resetSpectrum .ui-h4,.u-resetSpectrum .ui-brand1,.u-resetSpectrum .ui-brand2,.u-resetSpectrum .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .ui-body,.u-resetSpectrum .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .ui-summary,.u-resetSpectrum .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textDark {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(17, 128, 14, 1) !important; color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(15, 115, 12, 1) !important; fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(26, 137, 23, 1) !important; color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(17, 128, 14, 1) !important; fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark.button--filled,.u-resetSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-resetSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(15, 115, 12, 1) !important; border-color: rgba(15, 115, 12, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-resetSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(17, 128, 14, 1) !important; border-color: rgba(17, 128, 14, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .postArticle.is-withAccentColors .markup--user,.u-resetSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(17, 128, 14, 1) !important;}</style><div class="js-collectionFooter u-hide"><div class="container u-maxWidth1040"><div class="u-marginTop10 u-paddingTop10 u-paddingBottom30 u-borderTopLighter"><div class="linkSet u-clearfix"><div class="u-floatRight u-textColorNormal u-baseColor--textNormal u-xs-floatLeft"><a class="button button--chromeless u-baseColor--buttonNormal u-marginLeft15 u-lineHeight35 u-xs-block u-xs-marginLeft0" href="https://medium.com/jumio/about" title="About Jumio Engineering & Data Science" aria-label="About Jumio Engineering & Data Science">About Jumio Engineering & Data Science</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/jumio/latest" title="Latest Stories for Jumio Engineering & Data Science" aria-label="Latest Stories for Jumio Engineering & Data Science">Latest Stories</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/jumio/archive" title="Archive for Jumio Engineering & Data Science" aria-label="Archive for Jumio Engineering & Data Science">Archive</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/about">About Medium</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f">Terms</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9">Privacy</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/business">Teams</a></div></div></div></div></div></div></div></div><div class="loadingBar"></div><script>// <![CDATA[ window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;} // ]]></script><script>// <![CDATA[ var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","buildLabel":"20241126-1740-root","currentUser":{"userId":"lo_64ed246213d3","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":true,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.zqOu8dxaQRtqDyChHdOWlQ.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.y0UkxCxPBUbLlduk5XbwLQ.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.eZhPgaD8AglnbC5Rzxqvhg.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.XeRjm4FlHTBOsUvoOQ6Ppg.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.r9MSvtAmj0CMkyIC0CCCbA.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.AiXyuYj3AvxRA1-7HEyP9Q.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.fsLyLvZO4VZXL_zb4RXgeg.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.6Dyc-nVN2MDV_AM9XDAZug.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.rUyrVjlTpUj61voxnZosQw.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.2I2tXSo7-rbez_WYXfga0Q.12.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1732696955260:78a13f99ba8a","useragent":{"browser":"ie","family":"ie","os":"windows","version":7,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"isNativeIos":false,"isSeoAuditBot":false,"isInternalApp":false,"supportsApplePay":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","android_enable_editor_new_publishing_flow":true,"android_enable_friend_links_creation":true,"android_enable_friend_links_postpage_banners":true,"android_enable_image_sharer":true,"android_enable_lists_v2":true,"android_enable_syntax_highlight":true,"android_enable_topic_portals":true,"android_rating_prompt_stories_read_threshold":2,"android_two_hour_refresh":true,"available_annual_plan":"2c754bcc2995","available_annual_premium_plan":"4a442ace1476","available_monthly_plan":"60e220181034","available_monthly_premium_plan":"12a660186432","browsable_stream_config_bucket":"curated-topics","can_receive_tips_v0":true,"can_send_tips_v0":true,"coronavirus_topic_recirc":true,"disable_partner_program_enrollment":true,"enable_abandoned_cart_promotion_email":true,"enable_android_dynamic_aspirational_paywall":true,"enable_android_dynamic_programming_paywall":true,"enable_android_miro_v2":true,"enable_android_offline_reading":true,"enable_android_verified_author":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_aurora_pub_follower_page":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automod":true,"enable_bayesian_average_pub_search":true,"enable_bg_post_post":true,"enable_billing_frequency_on_step2":"control","enable_boost_nia_v01":true,"enable_braintree_apple_pay":true,"enable_braintree_client":true,"enable_braintree_google_pay":true,"enable_braintree_integration":true,"enable_braintree_paypal":true,"enable_braintree_trial_membership":true,"enable_braintree_webhook":true,"enable_branch_io":true,"enable_cache_less_following_feed":true,"enable_configure_pronouns":true,"enable_conversion_model_v2":"group_2","enable_conversion_ranker_v2":"control","enable_creator_welcome_email":true,"enable_deprecate_legacy_providers_v3":true,"enable_diversification_rex":true,"enable_entities_to_follow_v2":true,"enable_eventstats_event_processing":true,"enable_explicit_signals":true,"enable_explicit_signals_updated_post_previews":true,"enable_footer_app_buttons":true,"enable_google_one_tap":true,"enable_google_webhook":true,"enable_group_gifting":true,"enable_iceland_forced_android":true,"enable_import":true,"enable_intrinsic_automatic_actions":true,"enable_ios_autorefresh":true,"enable_ios_dynamic_paywall_aspiriational":true,"enable_ios_dynamic_paywall_programming":true,"enable_ios_easy_resubscribe":true,"enable_ios_offline_reading":true,"enable_legacy_feed_in_iceland":true,"enable_lite_archive_page":true,"enable_lite_continue_this_thread":true,"enable_lite_homepage":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_lo_homepage":"control","enable_maim_the_meter":true,"enable_marketing_emails":true,"enable_mastodon_avatar_upload":true,"enable_mastodon_for_members":true,"enable_mastodon_for_members_username_selection":true,"enable_medium2_kbfd":true,"enable_members_only_audio":true,"enable_ml_rank_rex_anno":true,"enable_moc_load_processor_all_recs_surfaces":true,"enable_moc_load_processor_c":true,"enable_moc_load_processor_first_story":true,"enable_new_manage_membership_flow":true,"enable_new_stripe_customers":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_pill_based_home_feed":true,"enable_pp_country_expansion":true,"enable_pp_v4":true,"enable_pre_pp_v4":true,"enable_premium_tier":true,"enable_premium_tier_badge":true,"enable_publication_hierarchy_web":true,"enable_ranker_v10":"control","enable_recaptcha_enterprise":true,"enable_recirc_model":true,"enable_recommended_publishers_query":true,"enable_rex_aggregator_v2":true,"enable_rex_new_push_notification_endpoint":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_seamless_social_sharing":true,"enable_see_pronouns":true,"enable_sharer_create_post_share_key":true,"enable_sharer_validate_post_share_key":true,"enable_simplified_digest_v2_b":true,"enable_speechify_ios":true,"enable_speechify_widget":true,"enable_sprig":true,"enable_starspace":true,"enable_susi_redesign_android":true,"enable_susi_redesign_ios":true,"enable_switch_plan_premium_tier":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipping_v0_android":true,"enable_tipping_v0_ios":true,"enable_tribute_landing_page":true,"enable_update_explore_wtf":true,"enable_update_topic_portals_wtf":true,"enable_updated_pub_recs_ui":true,"enable_verifications_service":true,"glyph_font_set":"m2-unbound-source-serif-pro","goliath_externalsearch_enable_comment_deindexation":true,"ios_display_paywall_after_onboarding":true,"ios_enable_friend_links_creation":true,"ios_enable_friend_links_postpage_banners":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_enable_verified_book_author":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_remove_twitter_onboarding_step":true,"ios_social_share_sheet":true,"limit_post_referrers":true,"limit_user_follows":true,"mobile_custom_app_icon":true,"num_post_bottom_responses_to_show":1,"onboarding_tags_from_top_views":true,"reader_fair_distribution_non_qp":true,"redefined_top_posts":true,"reengagement_notification_duration":3,"rex_generator_max_candidates":1000,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","skip_fs_cache_user_vals":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.12.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"G-7JY7T788PK","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js","useDynamicCss":false,"faviconUrl":"https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","faviconImageId":"5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound-source-serif-pro.css"},{"id":11,"url":"https://glyph.medium.com/css/m2-unbound-source-serif-pro.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"}],"glyphUrl":"https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","isDoNotAuth":false,"buggle":{"videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","countryCode":"SG","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"]},"bypassMeterWithShareKey":false,"recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","cdcMessaging":[{"text":"For more information on the novel coronavirus and Covid-19, visit ","href":"","type":"text","start":0,"end":0},{"text":"cdc.gov","href":"https://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"} // ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"Collection":{"7e31916d58c5":{"id":"7e31916d58c5","name":"Jumio Engineering & Data Science","slug":"jumio","tags":[],"creatorId":"2261739d83b6","description":"When Identity Matters - tech blog","shortDescription":"When Identity Matters - tech blog","image":{"imageId":"1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg","filter":"","backgroundSize":"","originalWidth":60,"originalHeight":60,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":101,"activeAt":1664546347911},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*nRVX39PLxHeQID5zZDOpkA.png","filter":"","backgroundSize":"","originalWidth":947,"originalHeight":490,"strategy":"resample","height":0,"width":0},"twitterUsername":"Jumio","facebookPageName":"jumiocorp","publicEmail":"support@jumio.com","collectionMastheadId":"1e227bb1a019","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Jumio Engineering & Data Science","description":"When Identity Matters - tech blog","backgroundImage":{"id":"1*v2-XDh723fCV2NxZ2OzOIg.jpeg","originalWidth":1500,"originalHeight":750,"focusPercentX":36.785714285714285,"focusPercentY":33.57142857142857},"logoImage":{"id":"1*vlJxIzvrnbTFcRXA1Tcv_Q@2x.png","originalWidth":1200,"originalHeight":400,"alt":"Jumio Engineering & Data Science"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":10,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF1A8917","point":0},{"color":"#FF11800E","point":0.1},{"color":"#FF0F730C","point":0.2},{"color":"#FF095407","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE8F3E8","point":0.1},{"color":"#FFE8F3E8","point":0.2},{"color":"#FFD1E7D1","point":0.6},{"color":"#FFA3D0A2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF095407","point":0},{"color":"#FF0F730C","point":0.1},{"color":"#FF11800E","point":0.2},{"color":"#FF1A8917","point":1}],"backgroundColor":"#FF000000"}},"navItems":[],"colorBehavior":1,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Jumio Engineering & Data Science","description":"When Identity Matters - tech blog","backgroundImage":{"id":"1*v2-XDh723fCV2NxZ2OzOIg.jpeg","originalWidth":1500,"originalHeight":750,"focusPercentX":36.785714285714285,"focusPercentY":33.57142857142857},"logoImage":{"id":"1*vlJxIzvrnbTFcRXA1Tcv_Q@2x.png","originalWidth":1200,"originalHeight":400,"alt":"Jumio Engineering & Data Science"},"alignment":2,"layout":5},"subscriberCount":101,"tagline":"When Identity Matters - tech blog","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1652615028041,"type":"Collection"}},"User":{"c3c020726665":{"userId":"c3c020726665","name":"Kaushik Moudgalya","username":"kaushikmoudgalya","createdAt":1539543581760,"imageId":"1*8j5O7Pk6yCQt_AElh_wDgg.jpeg","backgroundImageId":"","bio":"Data Scientist | Does ML Research by mistake sometimes | https://etrama.github.io/ | https://www.linkedin.com/in/kaushik-moudgalya/","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1622992028075,"hasCompletedProfile":true,"userDismissableFlags":[32,29,21,19,18,47,12,41,8,50,30,3,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"5717621602e1":{"userId":"5717621602e1","name":"Gernot Mueller","username":"gernotmueller83","createdAt":1553630975659,"imageId":"1*g9BwmVu0B53HVMjlcOjPGw.jpeg","backgroundImageId":"","bio":"“Learning never exhausts the mind” — Jumio let’s me learn new things every day. Thanks, I love it!","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1629967014000,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[47,29,12,3],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"a5cbac14b617":{"userId":"a5cbac14b617","name":"Richárd Bogdán","username":"richrdbogdn","createdAt":1550007478004,"imageId":"1*sYuhHgvfNiKfTk0uQxGTjw.jpeg","backgroundImageId":"","bio":"Professional software engineer and Scrum master","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"Richárd Bogdán","optInToIceland":true,"subdomainCreatedAt":1614264572676,"hasCompletedProfile":false,"userDismissableFlags":[8,29,12,2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"hu-hu","type":"User"},"2261739d83b6":{"userId":"2261739d83b6","name":"Lukas Danzer","username":"lukas.danzer","createdAt":1535725567262,"imageId":"0*8vVYbkseF-IyfmsA","backgroundImageId":"","bio":"Mobile Development Chapter Lead @ Jumio","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1593034064433,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[15,29,12,8,30,2,18],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"7b69670e880f":{"userId":"7b69670e880f","name":"François David","username":"francois.david_28880","createdAt":1634070378551,"imageId":"0*M6CtpSghOzgg067Z","backgroundImageId":"","bio":"François is a Master Student at Mila with various interests. He is currently a Machine Learning Engineer Intern at Jumio.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":true,"userDismissableFlags":[8,21,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"7a23cda01d6a":{"userId":"7a23cda01d6a","name":"Siddhartha Saxena","username":"siddhartha-saxena","createdAt":1579807694258,"imageId":"1*mBp3qGmyWCWQDkTIvL5d6A.jpeg","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1617718842059,"hasCompletedProfile":true,"userDismissableFlags":[2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"6271538287f":{"userId":"6271538287f","name":"Tennison Yu","username":"tennisonyu","createdAt":1549502765034,"imageId":"2*SG7YTlW6OmHVYKGd6HWdvg.jpeg","backgroundImageId":"","bio":"Machine Learning Engineer @ Jumio Corp. I like building infrastructure to get ML done.","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1613152376071,"isMembershipTrialEligible":true,"optInToIceland":true,"subdomainCreatedAt":1611474190249,"hasCompletedProfile":true,"userDismissableFlags":[2,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"74932f9eb210":{"userId":"74932f9eb210","name":"Lars Soldahl","username":"lars.soldahl","createdAt":1610060374729,"imageId":"1*48cZX9G9bNL4IhFq-HI9Yw.jpeg","backgroundImageId":"","bio":"","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[2,1],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"44ddc0986b25":{"userId":"44ddc0986b25","name":"Christian Henzl","username":"christian.henzl","createdAt":1581580953203,"imageId":"0*GX_c1csVkaWBlbqJ","backgroundImageId":"","bio":"Senior iOS Developer @ Jumio","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":false,"userDismissableFlags":[8,5,12,2],"hasSeenIcelandOnboarding":false,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"33070062a563":{"userId":"33070062a563","name":"Himanshu Arora","username":"h1man5hu","createdAt":1477669792947,"imageId":"1*C5ULPIUuR2V3s-_TEVKzCw@2x.jpeg","backgroundImageId":"","bio":"","twitterScreenName":"_himanshuarora_","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1577583925431,"isMembershipTrialEligible":true,"facebookDisplayName":"Himanshu Arora","optInToIceland":true,"hasCompletedProfile":true,"userDismissableFlags":[32,47,29,12,8,5,21,3,2,18,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"}},"Post":{"b45d911b1af7":{"id":"b45d911b1af7","versionId":"cc9ae2911985","creatorId":"c3c020726665","homeCollectionId":"7e31916d58c5","title":"Tutorial: Unsupervised Ranking Using Machine Learning","detectedLanguage":"en","latestVersion":"cc9ae2911985","latestPublishedVersion":"cc9ae2911985","hasUnpublishedEdits":false,"latestRev":1705,"createdAt":1661525421788,"updatedAt":1664555704082,"acceptedAt":0,"firstPublishedAt":1664546347782,"latestPublishedAt":1664546347782,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Ranking documents based on relevance using context based search","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*6bcBEZ-vQBmZF9OB","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":784,"strategy":"resample","height":0,"width":0},"wordCount":1304,"imageCount":11,"readingTime":6.220754716981132,"subtitle":"Ranking documents based on relevance using context based search","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":25,"isBookmarked":false,"tags":[{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"deep-learning","name":"Deep Learning","postCount":101237,"metadata":{"postCount":101237,"coverImage":{"id":"1*Soi19aBmSGjEvaSVD6qmbA.jpeg","originalWidth":736,"originalHeight":1129}},"type":"Tag"},{"slug":"ai","name":"AI","postCount":429817,"metadata":{"postCount":429817,"coverImage":{"id":"0*Zs_B6zDXGdgkK2jv","originalWidth":5120,"originalHeight":2880,"isFeatured":true,"unsplashPhotoId":"_nWaeTF6qo0"}},"type":"Tag"},{"slug":"search-engines","name":"Search Engines","postCount":5867,"metadata":{"postCount":5867,"coverImage":{"id":"1*Fb7wL4GWm6cIgiCDuYCgHA.jpeg","originalWidth":1792,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://www.lucidchart.com/pages/","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Tf%E2%80%93idf","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Learning_to_rank","alts":[],"httpStatus":200},{"url":"https://medium.com/@nikhilbd/intuitive-explanation-of-learning-to-rank-and-ranknet-lambdarank-and-lambdamart-fe1e17fac418","alts":[{"type":3,"url":"medium://p/fe1e17fac418"},{"type":2,"url":"medium://p/fe1e17fac418"}],"httpStatus":200},{"url":"https://www.sbert.net/examples/applications/semantic-search/README.html","alts":[],"httpStatus":200},{"url":"https://medium.com/predictly-on-tech/learning-to-rank-using-xgboost-83de0166229d","alts":[{"type":3,"url":"medium://p/83de0166229d"},{"type":2,"url":"medium://p/83de0166229d"}],"httpStatus":200},{"url":"https://vene.ro/blog/kemeny-young-optimal-rank-aggregation-in-python.html","alts":[],"httpStatus":200},{"url":"https://webscope.sandbox.yahoo.com/catalog.php?datatype=c&guccounter=1&guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8&guce_referrer_sig=AQAAAINhUNwDA9b_-KQZ5Bs6KLiOIJ8u2gk6pfifNBhvC1vFWCW7JrU1PBeZW8VLH-0rkTm1kA6rTFCVAOrQFaqHCtnjMXYcFdRbAQtOE-az5kpR0DXsHIxRnndWvv6Vzi6MA9t1NaZen_89dTgYlkYZL5-aYWGsdeXthxn9uAqy7Hrm","alts":[],"httpStatus":200},{"url":"https://github.com/dorianbrown/rank_bm25","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1810.04805","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=a3sg6MH8m4k&ab_channel=BadriAdhikari","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/watch?v=a3sg6MH8m4k&ab_channel=BadriAdhikari&feature=applinks"},{"type":3,"url":"vnd.youtube://www.youtube.com/watch?v=a3sg6MH8m4k&ab_channel=BadriAdhikari&feature=applinks"}],"httpStatus":200},{"url":"https://arxiv.org/pdf/1810.04805.pdf","alts":[],"httpStatus":200},{"url":"https://www.microsoft.com/en-us/research/project/mslr/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fprojects%2Fmslr%2F","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/learning-to-rank-a-complete-guide-to-ranking-using-machine-learning-4c9688d370d4","alts":[{"type":3,"url":"medium://p/4c9688d370d4"},{"type":2,"url":"medium://p/4c9688d370d4"}],"httpStatus":200},{"url":"https://towardsdatascience.com/a-complete-guide-to-transfer-learning-from-english-to-other-languages-using-sentence-embeddings-8c427f8804a9","alts":[{"type":3,"url":"medium://p/8c427f8804a9"},{"type":2,"url":"medium://p/8c427f8804a9"}],"httpStatus":200},{"url":"https://arxiv.org/pdf/1908.10084.pdf","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1664546349580},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":142,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"tutorial-unsupervised-ranking-using-machine-learning","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"tutorial-unsupervised-ranking-using-machine-learning-b45d911b1af7","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*6bcBEZ-vQBmZF9OB","originalWidth":1600,"originalHeight":784,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Tutorial: Unsupervised Ranking Using Machine Learning","alignment":1},{"name":"previewSubtitle","type":13,"text":"Ranking documents based on relevance using…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Ranking documents based on relevance using context based search"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"fc3d","type":3,"text":"Tutorial: Unsupervised Ranking Using Machine Learning","markups":[{"type":1,"start":0,"end":53}]},{"name":"d5d5","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"0*6bcBEZ-vQBmZF9OB","originalWidth":1600,"originalHeight":784,"isFeatured":true}},{"name":"4f5e","type":3,"text":"Introduction to Ranking","markups":[]},{"name":"da50","type":1,"text":"Every day we encounter ranking, especially machine learning-aided ranking, without even realizing it. Whether you are shopping on Amazon, looking for your next flight, searching for a show to binge-watch on Netflix or querying something on Google, you have been exposed to a ranking algorithm.","markups":[]},{"name":"5a24","type":1,"text":"Unlike standard classification or regression…","markups":[]}],"sections":[{"name":"9d2a","startIndex":0}]},"isFullContent":false,"subtitle":"Ranking documents based on relevance using context based search"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"e8e2faf13955":{"id":"e8e2faf13955","versionId":"187c5353dea8","creatorId":"5717621602e1","homeCollectionId":"7e31916d58c5","title":"Taming the Hydra: How to Create a Data Pipeline for Multi-Head Classification with Tensorflow","detectedLanguage":"en","latestVersion":"187c5353dea8","latestPublishedVersion":"187c5353dea8","hasUnpublishedEdits":false,"latestRev":1250,"createdAt":1650888799412,"updatedAt":1657161594720,"acceptedAt":0,"firstPublishedAt":1657142642983,"latestPublishedAt":1657143762854,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Unleash the power of the tf.data.Dataset API","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*IFImH9mExoRsnw6DxrIJeg.png","filter":"","backgroundSize":"","originalWidth":1950,"originalHeight":955,"strategy":"resample","height":0,"width":0},"wordCount":1742,"imageCount":6,"readingTime":7.523584905660377,"subtitle":"Unleash the power of the tf.data.Dataset API","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":16,"isBookmarked":false,"tags":[{"slug":"tensorflow","name":"TensorFlow","postCount":12145,"metadata":{"postCount":12145,"coverImage":{"id":"1*Qvy_xHUGM5-QwKU8u8jdEw.png","originalWidth":638,"originalHeight":314,"isFeatured":true}},"type":"Tag"},{"slug":"data-pipeline","name":"Data Pipeline","postCount":2868,"metadata":{"postCount":2868,"coverImage":{"id":"0*3ADCL6VQJ25SR0zV","originalWidth":1600,"originalHeight":679,"isFeatured":true}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://en.wikipedia.org/wiki/ImageNet","alts":[],"httpStatus":200},{"url":"https://keras.io/api/applications/","alts":[],"httpStatus":200},{"url":"https://keras.io/api/applications/mobilenet/","alts":[],"httpStatus":200},{"url":"https://keras.io/api/layers/preprocessing_layers/categorical/category_encoding/","alts":[],"httpStatus":200},{"url":"https://colab.research.google.com/","alts":[],"httpStatus":200},{"url":"https://stackoverflow.com/questions/52582275/tf-data-with-multiple-inputs-outputs-in-keras#:~:text=One%20way%20to,2s%20503ms/step...","alts":[],"httpStatus":200},{"url":"https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MultiLabelBinarizer.html","alts":[],"httpStatus":200},{"url":"https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelBinarizer.html?highlight=labelbinarizer#sklearn.preprocessing.LabelBinarizer","alts":[],"httpStatus":200},{"url":"https://sites.google.com/view/11khands","alts":[],"httpStatus":200},{"url":"https://albumentations.ai/docs/","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1801.04381","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/tensorboard","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/guide/data_performance","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/api_docs/python/tf/keras/losses/CategoricalCrossentropy","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/api_docs/python/tf/keras/metrics/CategoricalAccuracy","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/guide/data_performance_analysis","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/api_docs/python/tf/numpy_function","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/api_docs/python/tf/data/Dataset#zip","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/time-to-choose-tensorflow-data-over-imagedatagenerator-215e594f2435","alts":[{"type":3,"url":"medium://p/215e594f2435"},{"type":2,"url":"medium://p/215e594f2435"}],"httpStatus":200}],"version":"0.3","generatedAt":1657143764250},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":88,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"taming-the-hydra-how-to-create-a-data-pipeline-for-multi-head-classification-with-tensorflow","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"taming-the-hydra-how-to-create-a-data-pipeline-for-multi-head-classification-with-tensorflow-e8e2faf13955","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*IFImH9mExoRsnw6DxrIJeg.png","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"c889","type":3,"text":"Taming the Hydra: How to Create a Data Pipeline for Multi-Head Classification with Tensorflow","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Unleash the power of the tf.data.Dataset API"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"c889","type":3,"text":"Taming the Hydra: How to Create a Data Pipeline for Multi-Head Classification with Tensorflow","markups":[]},{"name":"0334","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*IFImH9mExoRsnw6DxrIJeg.png","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"68a3","type":3,"text":"Unleash the power of the tf.data.Dataset API","markups":[]},{"name":"3067","type":1,"text":"We at Jumio are always seeking to improve efficiency and performance of our machine learning models. The data pipeline for training machine learning models is a vital component of the training procedure. Multi-Core CPUs and GPU technology speed up the backpropagation, but without an efficient data pipeline, providing the data…","markups":[]}],"sections":[{"name":"636e","startIndex":0}]},"isFullContent":false,"subtitle":"Unleash the power of the tf.data.Dataset API"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"67ba5dedb7e1":{"id":"67ba5dedb7e1","versionId":"6a9f9b1cb773","creatorId":"a5cbac14b617","homeCollectionId":"7e31916d58c5","title":"How to record screen captures during UI tests on Android","detectedLanguage":"en","latestVersion":"6a9f9b1cb773","latestPublishedVersion":"6a9f9b1cb773","hasUnpublishedEdits":false,"latestRev":483,"createdAt":1652854889675,"updatedAt":1653299783438,"acceptedAt":0,"firstPublishedAt":1653288259390,"latestPublishedAt":1653288259390,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Overview","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*wZcdbEbVFd2pWJhu","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":784,"strategy":"resample","height":0,"width":0},"wordCount":1033,"imageCount":1,"readingTime":4.098113207547169,"subtitle":"Overview","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":13,"isBookmarked":false,"tags":[{"slug":"android","name":"Android","postCount":143707,"metadata":{"postCount":143707,"coverImage":{"id":"1*bPrF2ZemLaRrMYCmvLmWMQ.png","originalWidth":2560,"originalHeight":1280,"isFeatured":true}},"type":"Tag"},{"slug":"ui-test-automation","name":"Ui Test Automation","postCount":134,"metadata":{"postCount":134,"coverImage":{"id":"1*tHYHaQsPcVehrNqlzEv_ag.png","originalWidth":2600,"originalHeight":798,"isFeatured":true}},"type":"Tag"},{"slug":"debugging","name":"Debugging","postCount":7288,"metadata":{"postCount":7288,"coverImage":{"id":"1*7DsQClQ1Ya7M5Svsl6aSKw.png","originalWidth":1920,"originalHeight":1078,"isFeatured":true}},"type":"Tag"},{"slug":"screen-recording","name":"Screen Recording","postCount":408,"metadata":{"postCount":408,"coverImage":{"id":"1*giwngEJS45UZZe0KX6QObg.png","originalWidth":1128,"originalHeight":988,"isFeatured":true}},"type":"Tag"},{"slug":"adb","name":"Adb","postCount":594,"metadata":{"postCount":594,"coverImage":{"id":"1*pIA2bJr7wkVQYYLghvCbeQ.jpeg","originalWidth":720,"originalHeight":309,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://medium.com/codex/dealing-with-emulator-issues-and-android-ui-test-failures-on-ci-7895694d58c8","alts":[{"type":3,"url":"medium://p/7895694d58c8"},{"type":2,"url":"medium://p/7895694d58c8"}],"httpStatus":200},{"url":"https://junit.org/junit4/javadoc/4.12/org/junit/rules/TestWatcher.html","alts":[],"httpStatus":200},{"url":"https://junit.org/junit4/javadoc/4.12/org/junit/rules/TestWatcher.html#starting(org.junit.runner.Description)","alts":[],"httpStatus":200},{"url":"https://junit.org/junit4/javadoc/4.12/org/junit/rules/TestWatcher.html#succeeded(org.junit.runner.Description)","alts":[],"httpStatus":200},{"url":"https://linuxhint.com/linux-rm-command-example/#:~:text=The%20rm%20command%20in%20Linux,the%20files%20and%20directories%20permanently","alts":[],"httpStatus":200},{"url":"https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html","alts":[],"httpStatus":200},{"url":"https://android.googlesource.com/platform/frameworks/testing/+/a9407644f9c2d397b473b45775991cffcafa192f/support/src/android/support/test/internal/runner/listener/InstrumentationRunListener.java","alts":[],"httpStatus":200},{"url":"https://docs.oracle.com/cd/E19253-01/817-0403/spprocess-95930/index.html","alts":[],"httpStatus":200},{"url":"https://github.com/Jumio/mobile-sdk-android","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio/command-line/adb#screenrecord","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/android/app/UiAutomation#executeShellCommand(java.lang.String)","alts":[],"httpStatus":200},{"url":"https://developer.android.com/training/testing/other-components/ui-automator","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio/command-line/adb#copyfiles","alts":[],"httpStatus":200},{"url":"https://developer.android.com/studio/command-line/adb","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/android/media/MediaRecorder","alts":[],"httpStatus":200},{"url":"https://developer.android.com/reference/kotlin/androidx/annotation/WorkerThread","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1653288260838},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":33,"sectionCount":1,"readingList":0,"topics":[{"topicId":"64756708407c","slug":"android-development","createdAt":1521652914155,"deletedAt":0,"image":{"id":"1*zLD64ewnrZ3XKBtDUMXQ-w@2x.jpeg","originalWidth":3000,"originalHeight":1997},"name":"Android Dev","description":"Building little green robots.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Android Development: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"how-to-record-screen-captures-during-ui-tests-on-android","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"how-to-record-screen-captures-during-ui-tests-on-android-67ba5dedb7e1","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*wZcdbEbVFd2pWJhu","originalWidth":1600,"originalHeight":784,"isFeatured":true}},{"name":"22b3","type":3,"text":"How to record screen captures during UI tests on Android","markups":[],"alignment":1},{"name":"9c41","type":3,"text":"Overview","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Overview"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"64756708407c","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"22b3","type":3,"text":"How to record screen captures during UI tests on Android","markups":[]},{"name":"ef07","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"0*wZcdbEbVFd2pWJhu","originalWidth":1600,"originalHeight":784,"isFeatured":true}},{"name":"9c41","type":3,"text":"Overview","markups":[]},{"name":"2267","type":1,"text":"A well-designed UI test needs to provide targeted feedback on failure. Log inspection and test assertions can help, but images are more impactful and do more to aid in debugging. Taking this a step further, videos can provide even more context. Static images may miss a small sequence that is…","markups":[]}],"sections":[{"name":"9011","startIndex":0}]},"isFullContent":false,"subtitle":"Overview"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"95f143529438":{"id":"95f143529438","versionId":"684e22369b54","creatorId":"2261739d83b6","homeCollectionId":"7e31916d58c5","title":"Mobile SDK 4.0.0 Is Out","detectedLanguage":"en","latestVersion":"684e22369b54","latestPublishedVersion":"684e22369b54","hasUnpublishedEdits":false,"latestRev":282,"createdAt":1637232918090,"updatedAt":1641293431824,"acceptedAt":0,"firstPublishedAt":1637265986310,"latestPublishedAt":1637265986310,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"We are thrilled to announce the release of the most advanced Jumio Mobile SDK yet: SDK 4.0. Read about the new features and improvements.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*3nJijb2I6oVybpCvITgrtQ.png","filter":"","backgroundSize":"","originalWidth":500,"originalHeight":250,"strategy":"resample","height":0,"width":0},"wordCount":732,"imageCount":4,"readingTime":3.462264150943396,"subtitle":"We are thrilled to announce the release of the most advanced Jumio Mobile SDK yet: SDK 4.0. Read about the new features and improvements.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":7,"isBookmarked":false,"tags":[{"slug":"sdk","name":"Sdk","postCount":2363,"metadata":{"postCount":2363,"coverImage":{"id":"1*Jgbi-prBbzlP8U54hNmVgw.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"identity-verification","name":"Identity Verification","postCount":1248,"metadata":{"postCount":1248,"coverImage":{"id":"1*E2NkXwfsI9afkzqQ1aKE_w.jpeg","originalWidth":1500,"originalHeight":1000,"isFeatured":true,"alt":"Global Business Verification Solutions"}},"type":"Tag"},{"slug":"id-verification","name":"Id Verification","postCount":165,"metadata":{"postCount":165,"coverImage":{"id":"1*WOwFx3K86WYvSu8CDjBk0g.jpeg","originalWidth":747,"originalHeight":229,"isFeatured":true}},"type":"Tag"},{"slug":"mobile-app-development","name":"Mobile App Development","postCount":95645,"metadata":{"postCount":95645,"coverImage":{"id":"1*mNJju9q_VCdCf1i5hN2fSA.jpeg","originalWidth":556,"originalHeight":534}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://github.com/Jumio/mobile-sdk-ios/blob/master/docs/integration_guide.md#custom-ui","alts":[],"httpStatus":200},{"url":"https://github.com/Jumio/mobile-sdk-ios/blob/master/docs/integration_faq.md#strip-unused-frameworks","alts":[],"httpStatus":200},{"url":"https://github.com/Jumio/mobile-sdk-android/blob/master/docs/integration_guide.md#custom-ui","alts":[],"httpStatus":200},{"url":"https://github.com/Jumio/mobile-sdk-android/blob/master/docs/integration_faq.md#strip-unused-modules","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1637265986761},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":30,"sectionCount":1,"readingList":0,"topics":[{"topicId":"55321ac40456","slug":"design","createdAt":1536181929758,"deletedAt":0,"image":{"id":"1*1aLu20aptPeUTDg_E8KtmA@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Design","description":"Below the surface.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Design Articles and News — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"mobile-sdk-4-0-0-is-out","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"mobile-sdk-4-0-0-is-out-95f143529438","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*3nJijb2I6oVybpCvITgrtQ.png","originalWidth":500,"originalHeight":250,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Mobile SDK 4.0.0 Is Out","alignment":1},{"name":"previewSubtitle","type":13,"text":"We are thrilled to announce the release of the most advanced Jumio Mobile SDK…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"We are thrilled to announce the release of the most advanced Jumio Mobile SDK yet: SDK 4.0. Read about the new features and improvements."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"c004","type":3,"text":"Mobile SDK 4.0.0 Is Out","markups":[]},{"name":"1379","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*3nJijb2I6oVybpCvITgrtQ.png","originalWidth":500,"originalHeight":250,"isFeatured":true}},{"name":"8153","type":1,"text":"Today we are thrilled to announce the release of the most advanced Jumio Mobile SDK yet: SDK version 4.0.0. This new major version represents a top-to-bottom rewrite of our code, requiring the better part of 2021 to complete. The new release comes with lots of benefits that we hope our…","markups":[]}],"sections":[{"name":"2543","startIndex":0}]},"isFullContent":false,"subtitle":"We are thrilled to announce the release of the most advanced Jumio Mobile SDK yet: SDK 4.0. Read about the new features and improvements."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"53f124a77411":{"id":"53f124a77411","versionId":"6e0b0ee76800","creatorId":"7b69670e880f","homeCollectionId":"7e31916d58c5","title":"Face Anonymization Pipeline in Pytorch","detectedLanguage":"en","latestVersion":"6e0b0ee76800","latestPublishedVersion":"6e0b0ee76800","hasUnpublishedEdits":false,"latestRev":293,"createdAt":1636123098104,"updatedAt":1641310553367,"acceptedAt":0,"firstPublishedAt":1636126375281,"latestPublishedAt":1636490497866,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Protecting data privacy is critical to preserving customer trust and is also gaining increasing attention from policy makers.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*lJmpPR-GxN-9GTnC","filter":"","backgroundSize":"","originalWidth":640,"originalHeight":313,"strategy":"resample","height":0,"width":0},"wordCount":2163,"imageCount":10,"readingTime":9.412264150943397,"subtitle":"Protecting data privacy is critical to preserving customer trust and is also gaining increasing attention from policy makers.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":8,"isBookmarked":false,"tags":[{"slug":"anonymization","name":"Anonymization","postCount":164,"metadata":{"postCount":164,"coverImage":{"id":"1*dZXNEyCAOBPHis-erH0WPg.png","originalWidth":1920,"originalHeight":1080,"isFeatured":true}},"type":"Tag"},{"slug":"face","name":"Face","postCount":3476,"metadata":{"postCount":3476,"coverImage":{"id":"1*rw1an-51uDmsQf7jOY2bkg.jpeg","originalWidth":470,"originalHeight":653}},"type":"Tag"},{"slug":"deep-learning","name":"Deep Learning","postCount":101237,"metadata":{"postCount":101237,"coverImage":{"id":"1*Soi19aBmSGjEvaSVD6qmbA.jpeg","originalWidth":736,"originalHeight":1129}},"type":"Tag"},{"slug":"privacy","name":"Privacy","postCount":75035,"metadata":{"postCount":75035,"coverImage":{"id":"1*Arv1JHuRxjBBAJ6thw2VPA.jpeg"}},"type":"Tag"},{"slug":"pytorch","name":"Pytorch","postCount":7182,"metadata":{"postCount":7182,"coverImage":{"id":"0*lrOei3pkOtgNhjqF","originalWidth":4928,"originalHeight":3264,"isFeatured":true,"unsplashPhotoId":"4Fi_4Q6_eFM"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://www.cbc.ca/news/canada/nova-scotia/identity-theft-fraud-facial-recognition-driver-s-licence-1.4660723","alts":[],"httpStatus":403},{"url":"https://pytorch.org/vision/stable/_modules/torchvision/models/detection/keypoint_rcnn.html#keypointrcnn_resnet50_fpn","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1912.04958","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1710.10196","alts":[],"httpStatus":200},{"url":"https://www.apr.org/news/2018-11-21/splc-sues-over-driver-license-suspensions","alts":[{"type":1,"url":"https://cdn.ampproject.org/c/s/www.apr.org/news/2018-11-21/splc-sues-over-driver-license-suspensions?_amp=true"}],"httpStatus":200},{"url":"https://arxiv.org/abs/1706.08500","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1503.03832","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1903.06048","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1710.1019","alts":[],"httpStatus":200},{"url":"https://www.kaggle.com/ghousethanedar/smiledetection","alts":[],"httpStatus":200},{"url":"https://learnopencv.com/seamless-cloning-using-opencv-python-cpp/","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/datasets/catalog/celeb_a_hq","alts":[],"httpStatus":200},{"url":"https://github.com/joojs/fairface","alts":[],"httpStatus":200},{"url":"https://github.com/rosinality/stylegan2-pytorch","alts":[],"httpStatus":200},{"url":"https://www.ocregister.com/2018/10/13/getting-leeway-on-renewing-a-drivers-license-is-tough/","alts":[{"type":1,"url":"https://cdn.ampproject.org/c/s/www.ocregister.com/2018/10/13/getting-leeway-on-renewing-a-drivers-license-is-tough/amp/"}],"httpStatus":200},{"url":"https://www.pinterest.ca/pin/571042427759203881/","alts":[],"httpStatus":200},{"url":"https://github.com/hukkelas/DSFD-Pytorch-Inference","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1810.10220.pdf","alts":[],"httpStatus":200},{"url":"https://apps.mpi.mb.ca/comms/drivershandbook/mb-one-piece-licence.html","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1909.04538.pdf","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1636490500219},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":17,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"face-anonymization-pipeline-in-pytorch","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"face-anonymization-pipeline-in-pytorch-53f124a77411","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*lJmpPR-GxN-9GTnC","originalWidth":640,"originalHeight":313,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Face Anonymization Pipeline in Pytorch","alignment":1},{"name":"previewSubtitle","type":13,"text":"Protecting data privacy is critical to preserving customer…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Protecting data privacy is critical to preserving customer trust and is also gaining increasing attention from policy makers."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"2b2c","type":3,"text":"Face Anonymization Pipeline in Pytorch","markups":[{"type":1,"start":0,"end":38}]},{"name":"7874","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"0*lJmpPR-GxN-9GTnC","originalWidth":640,"originalHeight":313,"isFeatured":true}},{"name":"72a3","type":3,"text":"Introduction","markups":[{"type":1,"start":0,"end":12}]},{"name":"a054","type":1,"text":"Protecting data privacy is critical to preserving customer trust and is also gaining increasing attention from policy makers. Staying ahead of these expectations requires continual improvements to AI toolchains. Anonymizing image data is particularly challenging without badly degrading the quality of the image samples. We developed the capability to anonymize…","markups":[]}],"sections":[{"name":"850f","startIndex":0}]},"isFullContent":false,"subtitle":"Protecting data privacy is critical to preserving customer trust and is also gaining increasing attention from policy makers."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"e2b53670ccea":{"id":"e2b53670ccea","versionId":"e8dcf2adb8fb","creatorId":"7a23cda01d6a","homeCollectionId":"7e31916d58c5","title":"Model Compression — the what, why, and how of it.","detectedLanguage":"en","latestVersion":"e8dcf2adb8fb","latestPublishedVersion":"e8dcf2adb8fb","hasUnpublishedEdits":false,"latestRev":328,"createdAt":1617718611465,"updatedAt":1641530771832,"acceptedAt":0,"firstPublishedAt":1617718829060,"latestPublishedAt":1617724832082,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In this article, we will go through the what, why, and how of model compression.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*C3dVsHlkkIpiTO5v","filter":"","backgroundSize":"","originalWidth":640,"originalHeight":313,"strategy":"resample","height":0,"width":0},"wordCount":1621,"imageCount":2,"readingTime":6.500314465408805,"subtitle":"In this article, we will go through the what, why, and how of model compression.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":10,"isBookmarked":false,"tags":[{"slug":"model-compression","name":"Model Compression","postCount":103,"metadata":{"postCount":103,"coverImage":{"id":"1*LSBS8VGVeS35bfItc_5fow.png","originalWidth":955,"originalHeight":568,"isFeatured":true,"alt":"Schematic of the ML metamorphosis pipeline, which includes model compression, knowledge distillation, rule extraction and similar ideas"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"edge-computing","name":"Edge Computing","postCount":4386,"metadata":{"postCount":4386,"coverImage":{"id":"1*v-jzZ8xFwdQr4LxTpJ6ehw.png","originalWidth":1792,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://pytorch.org/mobile/home/","alts":[],"httpStatus":200},{"url":"https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1803.03635","alts":[],"httpStatus":200},{"url":"https://github.com/DingXiaoH/ResRep","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/lite","alts":[],"httpStatus":200},{"url":"https://github.com/VainF/Torch-Pruning","alts":[],"httpStatus":200},{"url":"https://github.com/LTH14/FSKD","alts":[],"httpStatus":200},{"url":"https://github.com/Tencent/PocketFlow","alts":[],"httpStatus":200},{"url":"https://www.tensorflow.org/lite/performance/post_training_quantization","alts":[],"httpStatus":200},{"url":"https://github.com/imirzadeh/Teacher-Assistant-Knowledge-Distillation","alts":[],"httpStatus":200},{"url":"https://developer.apple.com/documentation/coreml","alts":[],"httpStatus":200},{"url":"https://github.com/IntelLabs/distiller","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1617724832687},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":32,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"model-compression-the-what-why-and-how-of-it","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"model-compression-the-what-why-and-how-of-it-e2b53670ccea","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*C3dVsHlkkIpiTO5v","originalWidth":640,"originalHeight":313}},{"name":"previewTitle","type":3,"text":"Model Compression — the what, why, and how of it.","alignment":1},{"name":"previewSubtitle","type":13,"text":"In this article, we will go through the what, why…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"In this article, we will go through the what, why, and how of model compression."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"706c","type":3,"text":"Model Compression","markups":[]},{"name":"6efb","type":4,"text":"Model Compression","markups":[],"layout":1,"metadata":{"id":"0*C3dVsHlkkIpiTO5v","originalWidth":640,"originalHeight":313}},{"name":"57ef","type":1,"text":"In this article, we will go through the what, why, and how of model compression.","markups":[]},{"name":"3ddf","type":3,"text":"What is model compression?","markups":[]},{"name":"e15b","type":1,"text":"Model compression is basically any technique that you can use to decrease the size, the computation required, and overall footprint of the model while trying to maintain the performance of the model. Generally, all of…","markups":[]}],"sections":[{"name":"337e","startIndex":0}]},"isFullContent":false,"subtitle":"In this article, we will go through the what, why, and how of model compression."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"bf5d2607bdcb":{"id":"bf5d2607bdcb","versionId":"69dc38be2e11","creatorId":"6271538287f","homeCollectionId":"7e31916d58c5","title":"Parallel Power: Optimizing the Speed of Big Data with Amazon EMR","detectedLanguage":"en","latestVersion":"69dc38be2e11","latestPublishedVersion":"69dc38be2e11","hasUnpublishedEdits":false,"latestRev":101,"createdAt":1612378270474,"updatedAt":1640849373301,"acceptedAt":0,"firstPublishedAt":1612996231701,"latestPublishedAt":1612996231701,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Amazon EMR (short for “Elastic MapReduce”) is a big data platform for distributed computing. In situations where you have to do many…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*VbR40mVafJHa1ohQ","filter":"","backgroundSize":"","originalWidth":1600,"originalHeight":784,"strategy":"resample","height":0,"width":0},"wordCount":1088,"imageCount":1,"readingTime":4.305660377358491,"subtitle":"Amazon EMR (short for “Elastic MapReduce”) is a big data platform for distributed computing. In situations where you have to do many…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":9,"isBookmarked":false,"tags":[{"slug":"emr","name":"Emr","postCount":1928,"metadata":{"postCount":1928,"coverImage":{"id":"1*w0W9AxD99p8XFspVoQCvjA.png","originalWidth":1600,"originalHeight":900,"isFeatured":true}},"type":"Tag"},{"slug":"aws","name":"AWS","postCount":117430,"metadata":{"postCount":117430,"coverImage":{"id":"0*YtQ_KpwZohYm77nR","originalWidth":1600,"originalHeight":698}},"type":"Tag"},{"slug":"parallel-computing","name":"Parallel Computing","postCount":1275,"metadata":{"postCount":1275,"coverImage":{"id":"1*x0wT1SUjJnwyfZDdnfqkwQ.jpeg","originalWidth":3840,"originalHeight":2160,"isFeatured":true}},"type":"Tag"},{"slug":"data-engineering","name":"Data Engineering","postCount":38418,"metadata":{"postCount":38418,"coverImage":{"id":"1*wJurAMzy5rcdibdSdeD7gg.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"infrastructure","name":"Infrastructure","postCount":14746,"metadata":{"postCount":14746,"coverImage":{"id":"1*SGqDS2rAoWQ8nXFeAd_wmg.png","originalWidth":1600,"originalHeight":800,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":2,"links":{"entries":[{"url":"https://aws.amazon.com/emr/","alts":[],"httpStatus":200},{"url":"https://pandas.pydata.org/","alts":[],"httpStatus":200},{"url":"https://databricks.com/","alts":[],"httpStatus":200},{"url":"https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html","alts":[],"httpStatus":200},{"url":"https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan.html","alts":[],"httpStatus":200},{"url":"https://databricks.com/session/optimizing-apache-spark-sql-joins","alts":[],"httpStatus":200},{"url":"https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-join.html","alts":[],"httpStatus":200},{"url":"https://spark.apache.org/docs/latest/api/python/pyspark.html","alts":[],"httpStatus":200},{"url":"https://www.waitingforcode.com/apache-spark-sql/range-partitioning-apache-spark-sql/read","alts":[],"httpStatus":200},{"url":"https://medium.com/parrot-prediction/partitioning-in-apache-spark-8134ad840b0","alts":[{"type":3,"url":"medium://p/8134ad840b0"},{"type":2,"url":"medium://p/8134ad840b0"}],"httpStatus":200}],"version":"0.3","generatedAt":1612996232598},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":10,"sectionCount":1,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"parallel-power-optimizing-the-speed-of-big-data-with-amazon-emr","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"parallel-power-optimizing-the-speed-of-big-data-with-amazon-emr-bf5d2607bdcb","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*VbR40mVafJHa1ohQ","originalWidth":1600,"originalHeight":784,"isFeatured":true}},{"name":"5ea5","type":3,"text":"Parallel Power: Optimizing the Speed of Big Data with Amazon EMR","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Amazon EMR (short for “Elastic MapReduce”) is a big data platform for distributed computing. In situations where you have to do many…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":3,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"decb52b64abf","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"5ea5","type":3,"text":"Parallel Power: Optimizing the Speed of Big Data with Amazon EMR","markups":[]},{"name":"5d8d","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"0*VbR40mVafJHa1ohQ","originalWidth":1600,"originalHeight":784,"isFeatured":true}},{"name":"6813","type":1,"text":"Amazon EMR (short for “Elastic MapReduce”) is a big data platform for distributed computing. In situations where you have to do many calculations and process massive amounts of data, Amazon EMR is the tool you’ll want to use. In this blog post, I’ll talk about my experience implementing Amazon EMR…","markups":[{"type":3,"start":0,"end":10,"href":"https://aws.amazon.com/emr/","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"fa59","startIndex":0}]},"isFullContent":false,"subtitle":"Amazon EMR (short for “Elastic MapReduce”) is a big data platform for distributed computing. In situations where you have to do many…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"1d6b028842c0":{"id":"1d6b028842c0","versionId":"14592c7c869d","creatorId":"74932f9eb210","homeCollectionId":"7e31916d58c5","title":"Test-driven Development Saves the Day","detectedLanguage":"en","latestVersion":"14592c7c869d","latestPublishedVersion":"14592c7c869d","hasUnpublishedEdits":false,"latestRev":88,"createdAt":1610065331257,"updatedAt":1640584047323,"acceptedAt":0,"firstPublishedAt":1610528379974,"latestPublishedAt":1610528379974,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Why arming yourself with a powerful suite of tests ensures that your code works and stays healthy through future iterations.","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*8LHokesUkUqHXFNvIkpnjQ.jpeg","filter":"","backgroundSize":"","originalWidth":1950,"originalHeight":955,"strategy":"resample","height":0,"width":0},"wordCount":1232,"imageCount":1,"readingTime":4.849056603773585,"subtitle":"Why arming yourself with a powerful suite of tests ensures that your code works and stays healthy through future iterations.","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":13,"isBookmarked":false,"tags":[{"slug":"test-driven-development","name":"Test Driven Development","postCount":2805,"metadata":{"postCount":2805,"coverImage":{"id":"1*ew3kpJnYxWoFeBOWkNzWng.jpeg","originalWidth":1511,"originalHeight":797,"isFeatured":true}},"type":"Tag"},{"slug":"angular","name":"Angular","postCount":40670,"metadata":{"postCount":40670,"coverImage":{"id":"1*IKZuN_kzUYPl37lBXQkymQ.png","originalWidth":2560,"originalHeight":1440,"isFeatured":true,"alt":"Banner with the Angular logo saying “v19 is now available”"}},"type":"Tag"},{"slug":"qa","name":"QA","postCount":10498,"metadata":{"postCount":10498,"coverImage":{"id":"1*akZhaFU1fj8ldhIz9PvEtw.jpeg","originalWidth":800,"originalHeight":600,"isFeatured":true}},"type":"Tag"},{"slug":"software-development","name":"Software Development","postCount":326502,"metadata":{"postCount":326502,"coverImage":{"id":"1*t5dwn8IabnCdEpoO-6Toog.png","originalWidth":1920,"originalHeight":1080,"isFeatured":true,"alt":"Kubernetes"}},"type":"Tag"},{"slug":"test-first","name":"Test First","postCount":32,"metadata":{"postCount":32,"coverImage":{"id":"1*dnAaZs78oEzYkVX4XuJyOg.png","originalWidth":1600,"originalHeight":900}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://en.wikipedia.org/wiki/Mock_object","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Test-driven_development","alts":[],"httpStatus":200},{"url":"https://karma-runner.github.io/latest/index.html","alts":[],"httpStatus":200},{"url":"https://angular.io/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1610528380553},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":253,"sectionCount":1,"readingList":0,"topics":[{"topicId":"63c6f1f93ee","slug":"javascript","createdAt":1493945704961,"deletedAt":0,"image":{"id":"1*5UyyDJ1ESD11yQNd1UVAaQ@2x.jpeg","originalWidth":5472,"originalHeight":3648},"name":"Javascript","description":"An ode to code.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Javascript News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"test-driven-development-saves-the-day","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"test-driven-development-saves-the-day-1d6b028842c0","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*8LHokesUkUqHXFNvIkpnjQ.jpeg","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"Test-driven Development Saves the Day","alignment":1},{"name":"previewSubtitle","type":13,"text":"Why arming yourself with a powerful suite of tests ensures that…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Why arming yourself with a powerful suite of tests ensures that your code works and stays healthy through future iterations."},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"97db","type":3,"text":"Test-driven Development Saves the Day","markups":[]},{"name":"99d0","type":4,"text":"","markups":[],"layout":5,"metadata":{"id":"1*8LHokesUkUqHXFNvIkpnjQ.jpeg","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"67c6","type":1,"text":"“Automate like you are going to live forever. Document like you are going to die tomorrow.”\n~ Michael Sperberg-McQueen","markups":[]},{"name":"b174","type":1,"text":"Even though I hate writing tests and testing code, I’ve long been a firm believer in test-driven development. I’ve certainly had moments where I questioned whether it was really worth the…","markups":[{"type":3,"start":85,"end":108,"href":"https://en.wikipedia.org/wiki/Test-driven_development","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"942b","startIndex":0}]},"isFullContent":false,"subtitle":"Why arming yourself with a powerful suite of tests ensures that your code works and stays healthy through future iterations."},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"2d40f181d521":{"id":"2d40f181d521","versionId":"1a119549f299","creatorId":"44ddc0986b25","homeCollectionId":"7e31916d58c5","title":"Supplemental Access Control and Active Authentication","detectedLanguage":"en","latestVersion":"1a119549f299","latestPublishedVersion":"1a119549f299","hasUnpublishedEdits":false,"latestRev":136,"createdAt":1608198874366,"updatedAt":1640392220839,"acceptedAt":0,"firstPublishedAt":1608729773401,"latestPublishedAt":1608729773401,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"The Power of NFC: Reading Passports from your Phone","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*AbRH_WnlJUQYhwQ6yqSWMg.jpeg","filter":"","backgroundSize":"","originalWidth":1950,"originalHeight":955,"strategy":"resample","height":0,"width":0},"wordCount":1520,"imageCount":2,"readingTime":6.119182389937107,"subtitle":"The Power of NFC: Reading Passports from your Phone","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":10,"isBookmarked":false,"tags":[{"slug":"ios","name":"iOS","postCount":89079,"metadata":{"postCount":89079,"coverImage":{"id":"1*hhWS-qfcb2_1ze_9MoSWnA.png","originalWidth":800,"originalHeight":400}},"type":"Tag"},{"slug":"mobile","name":"Mobile","postCount":68880,"metadata":{"postCount":68880,"coverImage":{"id":"1*Wo1YNo4T34-Q9ReZOjUH0Q.jpeg","originalWidth":600,"originalHeight":300}},"type":"Tag"},{"slug":"sdk","name":"Sdk","postCount":2363,"metadata":{"postCount":2363,"coverImage":{"id":"1*Jgbi-prBbzlP8U54hNmVgw.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"nfc","name":"Nfc","postCount":1808,"metadata":{"postCount":1808,"coverImage":{"id":"0*we8MUDR2hud2fXfr","originalWidth":4240,"originalHeight":2832,"isFeatured":true,"unsplashPhotoId":"0hs_mYB9KRc"}},"type":"Tag"},{"slug":"passport","name":"Passport","postCount":4696,"metadata":{"postCount":4696,"coverImage":{"id":"1*TSCSNnlwsiowkrk6ubLnJw.jpeg","originalWidth":555,"originalHeight":320}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://www.icao.int/security/mrtd/downloads/technical%20reports/technical%20report.pdf","alts":[],"httpStatus":200},{"url":"https://medium.com/jumio/access-controls-for-electronic-machine-readable-travel-documents-430a6e511d22","alts":[{"type":3,"url":"medium://p/430a6e511d22"},{"type":2,"url":"medium://p/430a6e511d22"}],"httpStatus":200},{"url":"https://medium.com/jumio/reading-passports-from-a-phone-the-power-of-nfc-9ce67fdea2ed","alts":[{"type":3,"url":"medium://p/9ce67fdea2ed"},{"type":2,"url":"medium://p/9ce67fdea2ed"}],"httpStatus":200}],"version":"0.3","generatedAt":1608729774752},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":37,"sectionCount":2,"readingList":0,"topics":[{"topicId":"d4e7f4144ac5","slug":"cybersecurity","createdAt":1493946839810,"deletedAt":0,"image":{"id":"1*JpJUz3WBPiQG5vkJ9WY8rw@2x.jpeg","originalWidth":6000,"originalHeight":4000},"name":"Cybersecurity","description":"Towards a more perfect password.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Cybersecurity News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"supplemental-access-control-and-active-authentication","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"supplemental-access-control-and-active-authentication-2d40f181d521","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*AbRH_WnlJUQYhwQ6yqSWMg.jpeg","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"a25c","type":3,"text":"Supplemental Access Control and Active Authentication","markups":[],"alignment":1},{"name":"1f5e","type":13,"text":"The Power of NFC: Reading Passports from your…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"The Power of NFC: Reading Passports from your Phone"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"Supplemental Access Control and Active Authentication | by Christian Henzl | Jumio Engineering & Data Science | Dec, 2020","previewContent2":{"bodyModel":{"paragraphs":[{"name":"a25c","type":3,"text":"Supplemental Access Control and Active Authentication","markups":[]},{"name":"1f5e","type":13,"text":"The Power of NFC: Reading Passports from your Phone","markups":[]},{"name":"0c4e","type":4,"text":"","markups":[],"layout":5,"metadata":{"id":"1*AbRH_WnlJUQYhwQ6yqSWMg.jpeg","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"d1eb","type":1,"text":"Welcome to our continuing exploration of NFC capabilities and how they enable you to read the data on electronic passports. Part 1 and part 2 of this series examined the history of NFC on iOS, discussed the NFC protocol, and introduced ICAO9303, the specification for Electronic Machine-Readable Travel Documents (eMRTDs)…","markups":[{"type":3,"start":124,"end":130,"href":"https://medium.com/jumio/reading-passports-from-a-phone-the-power-of-nfc-9ce67fdea2ed","title":"","rel":"","anchorType":0},{"type":3,"start":135,"end":141,"href":"https://medium.com/jumio/access-controls-for-electronic-machine-readable-travel-documents-430a6e511d22","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"ac07","startIndex":0}]},"isFullContent":false,"subtitle":"The Power of NFC: Reading Passports from your Phone"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"b929cca5caf8":{"id":"b929cca5caf8","versionId":"53d5af77a084","creatorId":"33070062a563","homeCollectionId":"7e31916d58c5","title":"Attention Mechanisms in Vision Models","detectedLanguage":"en","latestVersion":"53d5af77a084","latestPublishedVersion":"53d5af77a084","hasUnpublishedEdits":false,"latestRev":2357,"createdAt":1600994164407,"updatedAt":1640244908315,"acceptedAt":0,"firstPublishedAt":1607429009416,"latestPublishedAt":1607458391908,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Neuroscience and Machine Learning maintain a continuous exchange of ideas. Many innovations in machine learning are modelled on phenomena…","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*9MzFOGGDzjw3L0APwSOpfA.png","filter":"","backgroundSize":"","originalWidth":1950,"originalHeight":955,"strategy":"resample","height":0,"width":0},"wordCount":1800,"imageCount":11,"readingTime":8.09245283018868,"subtitle":"Neuroscience and Machine Learning maintain a continuous exchange of ideas. Many innovations in machine learning are modelled on phenomena…","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":23,"isBookmarked":false,"tags":[{"slug":"computer-vision","name":"Computer Vision","postCount":24579,"metadata":{"postCount":24579,"coverImage":{"id":"0*lhgyBSV3b3YiMNFM.png","originalWidth":682,"originalHeight":325}},"type":"Tag"},{"slug":"attention","name":"Attention","postCount":5925,"metadata":{"postCount":5925,"coverImage":{"id":"1*jwOZkUiYjpRfaKm8RQzOQw.jpeg","originalWidth":608,"originalHeight":342}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"deep-learning","name":"Deep Learning","postCount":101237,"metadata":{"postCount":101237,"coverImage":{"id":"1*Soi19aBmSGjEvaSVD6qmbA.jpeg","originalWidth":736,"originalHeight":1129}},"type":"Tag"},{"slug":"face-recognition","name":"Face Recognition","postCount":1790,"metadata":{"postCount":1790,"coverImage":{"id":"1*Kncyt7sVxvqj2c1Excp3Mg.png","originalWidth":1156,"originalHeight":652,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://arxiv.org/abs/1906.05909","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1706.03762","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1805.08318","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1611.05594","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1709.01507","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/2009.14794","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/2006.04768","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1807.06521","alts":[],"httpStatus":200},{"url":"https://openreview.net/forum?id=YicbFdNTTy","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1910.03151","alts":[],"httpStatus":200},{"url":"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1359523/","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1607458392743},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":225,"sectionCount":2,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"self-attention-in-computer-vision","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"self-attention-in-computer-vision-b929cca5caf8","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*9MzFOGGDzjw3L0APwSOpfA.png","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"f395","type":3,"text":"Attention Mechanisms in Vision Models","markups":[],"alignment":1},{"name":"38d2","type":1,"text":"Neuroscience and Machine Learning maintain a continuous exchange of ideas. Many innovations…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Neuroscience and Machine Learning maintain a continuous exchange of ideas. Many innovations in machine learning are modelled on phenomena…"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7e31916d58c5","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":4,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"Attention Mechanisms in Vision Models | by Himanshu Arora | Jumio Engineering & Data Science | Dec, 2020 | Medium","previewContent2":{"bodyModel":{"paragraphs":[{"name":"f395","type":3,"text":"Attention Mechanisms in Vision Models","markups":[]},{"name":"c8fb","type":4,"text":"","markups":[],"layout":5,"metadata":{"id":"1*9MzFOGGDzjw3L0APwSOpfA.png","originalWidth":1950,"originalHeight":955,"isFeatured":true}},{"name":"38d2","type":1,"text":"Neuroscience and Machine Learning maintain a continuous exchange of ideas. Many innovations in machine learning are modelled on phenomena in neuroscience and vice-versa. For example, in 1961, Hubel et. al. conducted an experiment to determine how different parts of a cat’s visual cortex respond to varying patterns of light. This…","markups":[{"type":3,"start":219,"end":229,"href":"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1359523/","title":"","rel":"","anchorType":0},{"type":1,"start":419,"end":420}]}],"sections":[{"name":"f50a","startIndex":0}]},"isFullContent":false,"subtitle":"Neuroscience and Machine Learning maintain a continuous exchange of ideas. Many innovations in machine learning are modelled on phenomena…"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{"path":"/_/api/collections/7e31916d58c5/stream","next":{"to":"1607429009416","ignoredIds":[],"page":2}},"collection":{"id":"7e31916d58c5","name":"Jumio Engineering & Data Science","slug":"jumio","tags":[],"creatorId":"2261739d83b6","description":"When Identity Matters - tech blog","shortDescription":"When Identity Matters - tech blog","image":{"imageId":"1*lqqyJzu_ZuTwNN3sRN5Otw.jpeg","filter":"","backgroundSize":"","originalWidth":60,"originalHeight":60,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":101,"activeAt":1664546347911},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*nRVX39PLxHeQID5zZDOpkA.png","filter":"","backgroundSize":"","originalWidth":947,"originalHeight":490,"strategy":"resample","height":0,"width":0},"twitterUsername":"Jumio","facebookPageName":"jumiocorp","publicEmail":"support@jumio.com","collectionMastheadId":"1e227bb1a019","sections":[{"type":2,"collectionHeaderMetadata":{"title":"Jumio Engineering & Data Science","description":"When Identity Matters - tech blog","backgroundImage":{"id":"1*v2-XDh723fCV2NxZ2OzOIg.jpeg","originalWidth":1500,"originalHeight":750,"focusPercentX":36.785714285714285,"focusPercentY":33.57142857142857},"logoImage":{"id":"1*vlJxIzvrnbTFcRXA1Tcv_Q@2x.png","originalWidth":1200,"originalHeight":400,"alt":"Jumio Engineering & Data Science"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":10,"postIds":["b45d911b1af7","e8e2faf13955","67ba5dedb7e1","95f143529438","53f124a77411","e2b53670ccea","bf5d2607bdcb","1d6b028842c0","2d40f181d521","b929cca5caf8"]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[]}}],"favicon":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF1A8917","point":0},{"color":"#FF11800E","point":0.1},{"color":"#FF0F730C","point":0.2},{"color":"#FF095407","point":1}],"backgroundColor":"#FFFFFFFF"},"highlightSpectrum":{"colorPoints":[{"color":"#FFFFFFFF","point":0},{"color":"#FFE8F3E8","point":0.1},{"color":"#FFE8F3E8","point":0.2},{"color":"#FFD1E7D1","point":0.6},{"color":"#FFA3D0A2","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF095407","point":0},{"color":"#FF0F730C","point":0.1},{"color":"#FF11800E","point":0.2},{"color":"#FF1A8917","point":1}],"backgroundColor":"#FF000000"}},"navItems":[],"colorBehavior":1,"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"Jumio Engineering & Data Science","description":"When Identity Matters - tech blog","backgroundImage":{"id":"1*v2-XDh723fCV2NxZ2OzOIg.jpeg","originalWidth":1500,"originalHeight":750,"focusPercentX":36.785714285714285,"focusPercentY":33.57142857142857},"logoImage":{"id":"1*vlJxIzvrnbTFcRXA1Tcv_Q@2x.png","originalWidth":1200,"originalHeight":400,"alt":"Jumio Engineering & Data Science"},"alignment":2,"layout":5},"subscriberCount":101,"tagline":"When Identity Matters - tech blog","isOptedIntoAurora":false,"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1652615028041,"type":"Collection"},"header":{"title":"Jumio Engineering & Data Science","description":"When Identity Matters - tech blog","backgroundImage":{"id":"1*v2-XDh723fCV2NxZ2OzOIg.jpeg","originalWidth":1500,"originalHeight":750,"focusPercentX":36.785714285714285,"focusPercentY":33.57142857142857},"logoImage":{"id":"1*vlJxIzvrnbTFcRXA1Tcv_Q@2x.png","originalWidth":1200,"originalHeight":400,"alt":"Jumio Engineering & Data Science"},"alignment":2,"layout":5},"streamItems":[{"createdAt":1732696955329,"randomId":"448548bfaf51","section":{"items":[{"post":{"postId":"b45d911b1af7"},"itemType":"post"},{"post":{"postId":"e8e2faf13955"},"itemType":"post"},{"post":{"postId":"67ba5dedb7e1"},"itemType":"post"},{"post":{"postId":"95f143529438"},"itemType":"post"},{"post":{"postId":"53f124a77411"},"itemType":"post"},{"post":{"postId":"e2b53670ccea"},"itemType":"post"},{"post":{"postId":"bf5d2607bdcb"},"itemType":"post"},{"post":{"postId":"1d6b028842c0"},"itemType":"post"},{"post":{"postId":"2d40f181d521"},"itemType":"post"},{"post":{"postId":"b929cca5caf8"},"itemType":"post"}],"layout":4},"itemType":"section","type":"StreamItem"}]}) // ]]></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e90d3616a16ce09',t:'MTczMjY5Njk1NS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>