Measuring Neural Network Similarity | F1000Research "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r 3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}(); dataLayer = dataLayer || []; // Standard GTM initialization - Google Consent Mode handles consent automatically (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=hzk0Vc3qFsQYhCrIoHz68A>m_preview=env-1>m_cookies_win=x';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MWFK8L5J'); ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; ;NREUM.loader_config={accountID:"438030",trustKey:"438030",agentID:"772317073",licenseKey:"97f8f67f26",applicationID:"772317073"} ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"97f8f67f26",applicationID:"772317073",sa:1} ;/*! For license information please see nr-loader-spa-1.236.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={5763:(e,t,r)=>{r.d(t,{P_:()=>l,Mt:()=>g,C5:()=>s,DL:()=>v,OP:()=>T,lF:()=>D,Yu:()=>y,Dg:()=>h,CX:()=>c,GE:()=>b,sU:()=>_});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}var u=r(7056);const d=()=>{const e={blockSelector:"[data-nr-block]",maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:u.oD,inactiveMs:u.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:"*",maskAllInputs:!0,get blockClass(){return"nr-block"},get ignoreClass(){return"nr-ignore"},get maskTextClass(){return"nr-mask"},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=",".concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={...t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},f={};function l(e){if(!e)throw new Error("All configuration objects require an agent identifier!");if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function h(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");f[e]=(0,i.D)(t,d()),(0,n.Qy)(e,f[e],"config")}function g(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");var r=l(e);if(r){for(var n=t.split("."),i=0;i {r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.236.0",i="PROD",o="CDN"},385:(e,t,r)=>{r.d(t,{FN:()=>a,IF:()=>u,Nk:()=>f,Tt:()=>s,_A:()=>o,il:()=>n,pL:()=>c,v6:()=>i,w1:()=>d});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=""+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&"undefined"==typeof SharedWorker,u=(()=>{const e=navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),d=Boolean(n&&window.document.documentMode),f=!!navigator.sendBeacon},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(2177),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u {let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((e=>{let[t]=e;a(t)})))}function f(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,r)=>{r.d(t,{c:()=>f,ee:()=>u});var n=r(8632),i=r(2210),o=r(1284),a=r(5763),s="nr@context";let c=(0,n.fP)();var u;function d(){}function f(e){return(0,i.X)(e,s,l)}function l(){return new d}function h(){u.aborted=!0,u.backlog={}}c.ee?u=c.ee:(u=function e(t,r){var n={},c={},f={},g=!1;try{g=16===r.length&&(0,a.OP)(r).isolatedBacklog}catch(e){}var p={on:b,addEventListener:b,removeEventListener:y,emit:v,get:x,listeners:w,context:m,buffer:A,abort:h,aborted:!1,isBuffering:E,debugId:r,backlog:g?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return p;function m(e){return e&&e instanceof d?e:e?(0,i.X)(e,s,l):l()}function v(e,r,n,i,o){if(!1!==o&&(o=!0),!u.aborted||i){t&&o&&t.emit(e,r,n);for(var a=m(n),s=w(e),d=s.length,f=0;fn,p:()=>i});var n=r(2177).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s {r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>o});var n=r(385),i={};function o(e){if(e in i)return i[e];if(0===(e||"").indexOf("data:"))return{protocol:"data"};let t;var r=n._A?.location,o={};if(n.il)t=document.createElement("a"),t.href=e;else try{t=new URL(e,r.href)}catch(e){return o}o.port=t.port;var a=t.href.split("://");!o.port&&a[1]&&(o.port=a[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===a[0]?"443":"80"),o.hostname=t.hostname||r.hostname,o.pathname=t.pathname,o.protocol=a[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var s=!t.protocol||":"===t.protocol||t.protocol===r.protocol,c=t.hostname===r.hostname&&t.port===r.port;return o.sameOrigin=s&&(!t.hostname||c),"/"===o.pathname&&(i[e]=o),o}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(2177),i=r(5546),o=r(8e3),a=r(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(Object.entries(e).forEach((e=>{let[t,n]=e;void 0===u[t]&&(s[t]?s[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n))})),Object.keys(s).forEach((e=>{void 0===u[e]&&(s[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(2177);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"==document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>v,u5:()=>N,QU:()=>S,_L:()=>I,Gm:()=>L,Lg:()=>M,gy:()=>U,BV:()=>Q,Kf:()=>ee});var n=r(2177);const i="nr@original";var o=Object.prototype.hasOwnProperty,a=!1;function s(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");var a,s,c,u="-"===n.charAt(0);for(c=0;c 2?n-2:0),o=2;o {r(A[T],e,w),r(E[T],e,w)})),r(l._A,"fetch",y),t.on(y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(y+"done",[null,r],n)}else t.emit(y+"done",[e],n)})),t}const O={},j=["pushState","replaceState"];function S(e){const t=function(e){return(e||n.ee).get("history")}(e);return!l.il||O[t.debugId]++||(O[t.debugId]=1,s(t).inPlace(window.history,j,"-")),t}var P=r(3239);const C={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!l.il||C[t.debugId])return t;C[t.debugId]=!0;var r=s(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function c(e,t){var r=e.match(a),n=r[1],i=r[3];return i?c(i,t[n]):t[n]}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,s=a.match(i),s?s[1]:null);var a,s;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:c(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function f(){t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}function l(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",f,(0,P.m$)(!1)),e.addEventListener("error",l,(0,P.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}var k=r(5763);const H={};function L(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!l.il||H[t.debugId])return t;H[t.debugId]=!0;var r=s(t),i=k.Yu.MO;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function M(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=n.c,o=s(t),a=k.Yu.PR;return a&&function(){function e(r){var n=t.context(),i=o(r,"executor-",n,null,!1);const s=Reflect.construct(a,[i],e);return t.context(s).getCtx=function(){return n},s}l._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,i=r(e);i.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c e())),t};function m(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}function b(){var e=this,t=r.context(e);e.readyState>3&&!t.resolved&&(t.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,f,"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,J,"-xhr-",E),r.on("send-xhr-start",(function(e,t){m(e,t),function(e){h.push(e),a&&(y?y.then(A):u?u(A):(w=-w,x.data=w))}(t)})),r.on("open-xhr-start",m),a){var y=c&&c.resolve();if(!u&&!c){var w=1,x=document.createTextNode(w);new a(A).observe(x,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e {r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{A:()=>i,t:()=>n});const n=r(3325).D.jserrors,i="nr@seenError"},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>n});const n=r(3325).D.pageViewEvent,i="firstbyte",o="domcontent",a="windowload"},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>A,CB_END:()=>E,CB_START:()=>u,END:()=>x,FEATURE_NAME:()=>i,FETCH:()=>_,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>p,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>l,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>g,JS_TIME:()=>T,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>f,SPA_NODE:()=>h,START:()=>w,originalSetTimeout:()=>y});var n=r(5763);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",f="remaining",l="interaction",h="spaNode",g="jsonpNode",p="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,w="-start",x="-end",A="-body",E="cb"+x,T="jsTime",_="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>o});var n=r(5763),i=r(2177);class o{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,n.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=r,this.blocked=!1}}},9144:(e,t,r)=>{r.d(t,{j:()=>m});var n=r(3325),i=r(5763),o=r(5546),a=r(2177),s=r(7894),c=r(8e3),u=r(3960),d=r(385),f=r(50),l=r(3081),h=r(8632);function g(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","inlineHit","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i 1?r-1:0),i=1;i {e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var p=r(2587);function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=arguments.length>2?arguments[2]:void 0,v=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:x={loaderType:m},exposed:A=!0}=t;const E=(0,h.gG)();y||(b=E.init,y=E.info,w=E.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,x),y.jsAttributes??={},d.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),g();const T=function(e,t){t||(0,c.R)(e,"api");const h={};var g=a.ee.get(e),p=g.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),x(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","inlineHit","addRelease"].forEach((e=>h[e]=x(m,e,!0,"api"))),h.addPageAction=x(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=x(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,x(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,f.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of was provided."))}else(0,f.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,f.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of was provided."))},h.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,g),function(){if(p.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw p.emit("fn-err",[arguments,this,"string"==typeof e?new Error(e):e],r),e}finally{p.emit("fn-end",[(0,s.z)()],r)}}}};function x(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,g),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,g),r?void 0:this}}function A(){r.e(439).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,f.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=x(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,g),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,g)},d.il?(0,u.b)((()=>A()),!0):A(),h}(e,v);return(0,h.Qy)(e,T,"api"),(0,h.Qy)(e,A,"exposed"),(0,h.EZ)("activatedFeatures",p.T),T}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>(({78:"page_action-aggregate",147:"metrics-aggregate",242:"session-manager",317:"jserrors-aggregate",348:"page_view_timing-aggregate",412:"lazy-feature-loader",439:"async-api",538:"recorder",590:"session_replay-aggregate",675:"compressor",733:"session_trace-aggregate",786:"page_view_event-aggregate",873:"spa-aggregate",898:"ajax-aggregate"}[e]||e)+"."+{78:"ac76d497",147:"3dc53903",148:"1a20d5fe",242:"2a64278a",317:"49e41428",348:"bd6de33a",412:"2f55ce66",439:"30bd804e",538:"1b18459f",590:"cf0efb30",675:"ae9f91a8",733:"83105561",786:"06482edd",860:"03a8b7a5",873:"e6b09d52",898:"998ef92b"}[e]+"-1.236.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d {s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=364,i.p="https://js-agent.newrelic.com/",(()=>{var e={364:0,953:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u {i.r(o);var e=i(3325),t=i(5763);const r=Object.values(e.D);function n(e){const n={};return r.forEach((r=>{n[r]=function(e,r){return!1!==(0,t.Mt)(r,"".concat(e,".enabled"))}(r,e)})),n}var a=i(9144);var s=i(5546),c=i(385),u=i(8e3),d=i(5938),f=i(3960),l=i(50);class h extends d.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler,this.featAggregate,this.onAggregateImported,n&&(0,u.R)(e,r)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const r=c.il&&!0===(0,t.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let t;try{if(r){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,l.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,u.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:r}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await r(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),n(!0)}catch(e){(0,l.Z)("Downloading and initializing ".concat(this.featureName," failed..."),e),this.abortHandler?.(),n(!1)}};c.il?(0,f.b)((()=>o()),!0):o()}shouldImportAgg(r,n){return r!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!n?.isNew||!!n?.state.sessionReplay)}}var g=i(7633),p=i(7894);class m extends h{static featureName=g.t9;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(r,n,g.t9,i),("undefined"==typeof PerformanceNavigationTiming||c.Tt)&&"undefined"!=typeof PerformanceTiming){const n=(0,t.OP)(r);n[g.Dz]=Math.max(Date.now()-n.offset,0),(0,f.K)((()=>n[g.qw]=Math.max((0,p.z)()-n[g.Dz],0))),(0,f.b)((()=>{const t=(0,p.z)();n[g.OJ]=Math.max(t-n[g.Dz],0),(0,s.p)("timing",["load",t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var v=i(1117),b=i(1284);class y extends v.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,r){t[e]=w(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,b.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=w(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=x(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=w(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i t.max&&(t.max=e),e 2&&void 0!==arguments[2])||arguments[2];super(e,r,j.t,n),c.il&&((0,t.OP)(e).initHidden=Boolean("hidden"===document.visibilityState),(0,N.N)((()=>(0,s.p)("docHidden",[(0,p.z)()],void 0,j.t,this.ee)),!0),(0,O.bP)("pagehide",(()=>(0,s.p)("winPagehide",[(0,p.z)()],void 0,j.t,this.ee))),this.importAggregator())}}var P=i(3081);class C extends h{static featureName=P.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,r),this.importAggregator()}}var R,I=i(2210),k=i(1214),H=i(2177),L={};try{R=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(L.console=!0,-1!==R.indexOf("dev")&&(L.dev=!0),-1!==R.indexOf("nr_dev")&&(L.nrDev=!0))}catch(e){}function z(e){try{L.console&&z(e)}catch(e){}}L.nrDev&&H.ee.on("internal-error",(function(e){z(e.stack)})),L.dev&&H.ee.on("fn-err",(function(e,t,r){z(r.stack)})),L.dev&&(z("NR AGENT IN DEVELOPMENT MODE"),z("flags: "+(0,b.D)(L,(function(e,t){return e})).join(", ")));var M=i(6660);class B extends h{static featureName=M.t;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(r,n,M.t,i),this.skipNext=0;try{this.removeOnAbort=new AbortController}catch(e){}const o=this;o.ee.on("fn-start",(function(e,t,r){o.abortHandler&&(o.skipNext+=1)})),o.ee.on("fn-err",(function(t,r,n){o.abortHandler&&!n[M.A]&&((0,I.X)(n,M.A,(function(){return!0})),this.thrown=!0,(0,s.p)("err",[n,(0,p.z)()],void 0,e.D.jserrors,o.ee))})),o.ee.on("fn-end",(function(){o.abortHandler&&!this.thrown&&o.skipNext>0&&(o.skipNext-=1)})),o.ee.on("internal-error",(function(t){(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,o.ee)})),this.origOnerror=c._A.onerror,c._A.onerror=this.onerrorHandler.bind(this),c._A.addEventListener("unhandledrejection",(t=>{const r=function(e){let t="Unhandled Promise Rejection: ";if(e instanceof Error)try{return e.message=t+e.message,e}catch(t){return e}if(void 0===e)return new Error(t);try{return new Error(t+(0,D.P)(e))}catch(e){return new Error(t)}}(t.reason);(0,s.p)("err",[r,(0,p.z)(),!1,{unhandledPromiseRejection:1}],void 0,e.D.jserrors,this.ee)}),(0,O.m$)(!1,this.removeOnAbort?.signal)),(0,k.gy)(this.ee),(0,k.BV)(this.ee),(0,k.em)(this.ee),(0,t.OP)(r).xhrWrappable&&(0,k.Kf)(this.ee),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}onerrorHandler(t,r,n,i,o){"function"==typeof this.origOnerror&&this.origOnerror(...arguments);try{this.skipNext?this.skipNext-=1:(0,s.p)("err",[o||new F(t,r,n),(0,p.z)()],void 0,e.D.jserrors,this.ee)}catch(t){try{(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,this.ee)}catch(e){}}return!1}}function F(e,t,r){this.message=e||"Uncaught error with no additional information",this.sourceURL=t,this.line=r}let U=1;const q="nr@id";function G(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===c._A?0:(0,I.X)(e,q,(function(){return U++}))}function V(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,D.P)(e).length}catch(e){return}}}var X=i(7243);class W{constructor(e){this.agentIdentifier=e,this.generateTracePayload=this.generateTracePayload.bind(this),this.shouldGenerateTrace=this.shouldGenerateTrace.bind(this)}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var r=(0,t.DL)(this.agentIdentifier);if(!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,_.M)(),s=(0,_.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof c._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,D.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var r=!1,n={};if((0,t.Mt)(this.agentIdentifier,"distributed_tracing")&&(n=(0,t.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)r=!0;else if(n.allowed_origins instanceof Array)for(var i=0;i 2&&void 0!==arguments[2])||arguments[2];super(r,n,Z.t,i),(0,t.OP)(r).xhrWrappable&&(this.dt=new W(r),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee),(0,k.u5)(this.ee),(0,k.Kf)(this.ee),function(r,n,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=E,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){_(t,e)}),(0,O.m$)(!1)),c.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,O.m$)(!1))}function s(e){this.params={method:e[0]},T(this,e[1]),this.metrics={}}function u(e,n){var i=(0,t.DL)(r);i.xpid&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(n.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(n.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&n.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function d(e,t){var r=this.metrics,i=e[0],o=this;if(r&&i){var a=V(i);a&&(r.txSize=a)}this.startTime=(0,p.z)(),this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof o.end)&&o.end(t)}catch(e){try{n.emit("internal-error",[e])}catch(e){}}};for(var s=0;s 1?e[1]=i:e.push(i)}else e[0]&&e[0].headers&&s(e[0].headers,n)&&(this.dt=n);function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,p.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Y?r=i.url:c._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),T(this,r);var o=(""+(i&&i instanceof Y&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.txSize=V(n.body)||0}function A(t,r){var n;this.endTime=(0,p.z)(),this.params||(this.params={}),this.params.status=r?r.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,p.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,e.D.ajax)}function E(t){var r=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o 2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,_.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(m),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||"agent")),this.start()):(0,l.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t="features";try{const r=n(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((t,r)=>e.p[t.featureName]-e.p[r.featureName])),i.forEach((t=>{if(r[t.featureName]||t.featureName===e.D.pageViewEvent){const n=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);n.every((e=>r[e]))||(0,l.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,D.P)(n),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,T.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,l.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",e);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,T.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[J,m,S,class extends h{static featureName=oe;constructor(t,r){if(super(t,r,oe,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;const n=this.ee;let i;(0,k.QU)(n),this.eventsEE=(0,k.em)(n),this.eventsEE.on(se,(function(e,t){this.bstStart=(0,p.z)()})),this.eventsEE.on(ae,(function(t,r){(0,s.p)("bst",[t[0],r,this.bstStart,(0,p.z)()],void 0,e.D.sessionTrace,n)})),n.on(ce+ne,(function(e){this.time=(0,p.z)(),this.startPath=location.pathname+location.hash})),n.on(ce+ie,(function(t){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,e.D.sessionTrace,n)}));try{i=new PerformanceObserver((t=>{const r=t.getEntries();(0,s.p)(te,[r],void 0,e.D.sessionTrace,n)})),i.observe({type:re,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},C,xe,B,class extends h{static featureName=de;constructor(e,r){if(super(e,r,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;if(!(0,t.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let n,i=0;const o=this.ee.get("tracer"),a=(0,k._L)(this.ee),s=(0,k.Lg)(this.ee),u=(0,k.BV)(this.ee),d=(0,k.Kf)(this.ee),f=this.ee.get("events"),l=(0,k.u5)(this.ee),h=(0,k.QU)(this.ee),g=(0,k.Gm)(this.ee);function m(e,t){h.emit("newURL",[""+window.location,t])}function v(){i++,n=window.location.hash,this[ve]=(0,p.z)()}function b(){i--,window.location.hash!==n&&m(0,!0);var e=(0,p.z)();this[pe]=~~this[pe]+e-this[ve],this[ye]=e}function y(e,t){e.on(t,(function(){this[t]=(0,p.z)()}))}this.ee.on(ve,v),s.on(be,v),a.on(be,v),this.ee.on(ye,b),s.on(ge,b),a.on(ge,b),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),f.buffer([ve],this.featureName),u.buffer(["setTimeout"+le,"clearTimeout"+fe,ve],this.featureName),d.buffer([ve,"new-xhr","send-xhr"+fe],this.featureName),l.buffer([me+fe,me+"-done",me+he+fe,me+he+le],this.featureName),h.buffer(["newURL"],this.featureName),g.buffer([ve],this.featureName),s.buffer(["propagate",be,ge,"executor-err","resolve"+fe],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),y(l,me+fe),y(l,me+"-done"),y(a,"new-jsonp"),y(a,"jsonp-end"),y(a,"cb-start"),h.on("pushState-end",m),h.on("replaceState-end",m),window.addEventListener("hashchange",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){m(0,i>1)}),(0,O.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})(),window.NRBA=o})(); window.jQuery || document.write(' ') CKEDITOR_BASEPATH='https://f1000research.com/js/vendor/ckeditor/' window.reactTheme = 'research'; window.MathJax = { CommonHTML: { linebreaks: { automatic: true } }, 'HTML-CSS': { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } }, AuthorInit: function() { MathJax.Hub.Register.MessageHook('End Process', function () { let timeout = false; // holder for timeout id const delay = 250; // delay after event is "complete" to run callback const reflowMath = function() { const dispFormulas = document.querySelectorAll('.disp-formula.panel'); if (!dispFormulas) { return; } for (const dispFormula of dispFormulas) { const child = dispFormula.querySelector('.MathJax_Preview').nextSibling.firstChild; const isMultiline = MathJax.Hub.getAllJax(dispFormula)[0].root.isMultiline; if (dispFormula.offsetWidth < child.offsetWidth || isMultiline) { MathJax.Hub.Queue(['Rerender', MathJax.Hub, dispFormula]); } } }; window.addEventListener('resize', function() { clearTimeout(timeout); // clear the timeout timeout = setTimeout(reflowMath, delay); // start timing for event "completion" }); }); }, }; if (window.location.hash == '#_=_'){ window.location = window.location.href.split('#')[0] } !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function() {n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1641728616063202'); fbq('track', "PixelInitialized", {}); (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:2318163,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); search file_upload Submit your research search menu close search Browse Gateways & Collections How to Publish Submit your Research My Submissions Article Guidelines Article Guidelines (New Versions) Open Data, Software and Code Guidelines Open Data and Accessible Source Materials Guidelines (HSS) Open Data, Software and Code Guidelines (PSE) Prepublication Checks Production Process Posters and Slides Guidelines Document Guidelines Article Processing Charges Peer Review Finding Article Reviewers About How it Works For Reviewers Our Advisors Policies Glossary FAQs For Developers Newsroom Contact My Research Submissions Content and Tracking Alerts My Details Sign In file_upload Submit your research { "@context": "https://schema.org", "@type": "ScholarlyArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://f1000research.com/articles/15-430" }, "headline": "Measuring Neural Network Similarity", "datePublished": "2026-03-23T08:05:03", "dateModified": "2026-03-23T08:05:03", "author": [ { "@type": "Person", "name": "Andreas M. Kist" } ], "publisher": { "@type": "Organization", "name": "F1000Research", "logo": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 480, "width": 60 } }, "image": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 1200, "width": 150 }, "description": "Deep neural networks often achieve similar performance despite substantial architectural differences, while small structural changes can cause large functional divergences. This highlights the need for a principled framework to quantify structural similarity (properties of the computational graph independent of training), functional similarity (defined by output behavior or internal representations), and their interaction. Drawing inspiration from biological concepts such as homology, analogy, and convergent evolution, I argue that neural architectures can be systematically compared using measures grounded in graph topology, motif composition, and representational alignment. Such measures would potentially enable the identification of architectural families, robust design patterns, and fragile “prone-to-break” configurations. I call for a unified strategy to measure neural network similarity to better understand architectural lineage, inform model design, and guide future neural architecture search." } { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": "1", "item": { "@id": "https://f1000research.com/", "name": "Home" } }, { "@type": "ListItem", "position": "2", "item": { "@id": "https://f1000research.com/browse/articles", "name": "Browse" } }, { "@type": "ListItem", "position": "3", "item": { "@id": "https://f1000research.com/articles/15-430", "name": "Measuring Neural Network Similarity" } } ] } Home Browse Measuring Neural Network Similarity ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Kist AM. Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.12688/f1000research.178206.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. Close Copy Citation Details Export Export Citation Sciwheel EndNote Ref. Manager Bibtex ProCite Sente EXPORT Select a format first Track Share ▬ ✚ Opinion Article Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] Andreas M. Kist https://orcid.org/0000-0003-3643-7776 Andreas M. Kist https://orcid.org/0000-0003-3643-7776 PUBLISHED 23 Mar 2026 Author details Author details Department Artificial Intelligence in Biomedical Engineering, Friedrich-Alexander-Universität Erlangen-Nürnberg, Erlangen, Germany Andreas M. Kist Roles: Conceptualization, Methodology, Visualization, Writing – Original Draft Preparation OPEN PEER REVIEW DETAILS REVIEWER STATUS This article is included in the Artificial Intelligence and Machine Learning gateway. Abstract Deep neural networks often achieve similar performance despite substantial architectural differences, while small structural changes can cause large functional divergences. This highlights the need for a principled framework to quantify structural similarity (properties of the computational graph independent of training), functional similarity (defined by output behavior or internal representations), and their interaction. Drawing inspiration from biological concepts such as homology, analogy, and convergent evolution, I argue that neural architectures can be systematically compared using measures grounded in graph topology, motif composition, and representational alignment. Such measures would potentially enable the identification of architectural families, robust design patterns, and fragile “prone-to-break” configurations. I call for a unified strategy to measure neural network similarity to better understand architectural lineage, inform model design, and guide future neural architecture search. READ ALL READ LESS Keywords Machine Learning, Deep Learning, Neural Architecture Similarity, Graph-based Neural Network Representation, Model Representation Learning, Architectural Embeddings, Neural Architecture Search, Representation Similarity Metrics Corresponding Author(s) Andreas M. Kist ( [email protected] ) Close Corresponding author: Andreas M. Kist Competing interests: No competing interests were disclosed. Grant information: The author(s) declared that no grants were involved in supporting this work. Copyright: © 2026 Kist AM. This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. How to cite: Kist AM. Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.12688/f1000research.178206.1 ) First published: 23 Mar 2026, 15 :430 ( https://doi.org/10.12688/f1000research.178206.1 ) Latest published: 23 Mar 2026, 15 :430 ( https://doi.org/10.12688/f1000research.178206.1 ) Main The animal kingdom provides a huge variety of species; among others are vertebrates and invertebrates, mammals, birds and fish. They have one thing in common: a brain. And this brain always has the same task: turning sensory information into behaviour. However, how they do it can be totally different. Biologists introduced specific terms for this topic. On the one hand, there are functional analogues. Functional analogues have the same purpose or function, but their computational graphs are largely distinct, indicating a high functional similarity and a low structural similarity. They may have an independent evolutionary origin, for example, the fly’s mushroom body and our pallium, areas responsible for learning and memory, or the ctenophore neural system ( Farris, 2008 ; Katz, 2011 ; Moroz, 2015 ). On the other hand, homologues share a common ancestral structure and show a high degree of structural similarity, such as the zebrafish’s optic tectum and the human superior colliculus. Studies provide evidence that in this case, the computational graph is highly similar, suggesting high structural similarity ( Isa et al., 2021 ; Nevin et al., 2010 ). Based on these concepts grounded in biology, I distinguish in this article two independent yet interacting axes: (i) structural similarity, which is a property of the computational graph; and (ii) functional similarity, which is the degree to which two neural networks produce similar outputs or internal representations. Let us move from the real biological neural networks to the computer science domain and use deep neural networks as a key architectural design in artificial intelligence. Many performance gains in contemporary literature are achieved through architectural choices that we understand only superficially. Consider the well-known equivalences in convolutional neural networks where, for example, a single 5×5 convolution can be replaced by two stacked 3×3 convolutions ( Figure 1 ), yielding a nearly identical receptive field and comparable or even better performance ( Simonyan and Zisserman, 2015 ). Despite such substitutions being very common in architectural optimization, our understanding of how these design decisions affect the underlying architecture remains limited. That means while having a similar output (high functional similarity), the underlying computational graph has slightly changed, despite the fact that they are very related to each other. Using the terminology above, one would refer here to homologues. Figure 1. Equivalent receptive fields from different convolutional designs. A pair of stacked 3×3 convolutions (left) produces an effective receptive field comparable to that of a single 5×5 convolution (right). When we now think about the relationship between vision transformers and convolutional neural networks, a different picture emerges. The underlying neural architectures are based on fundamentally different concepts, but are able to handle the same computer vision task, such as image classification. In biological terms, the relationship between CNNs and Vision Transformers exemplifies homoplasy, where two independent evolutionary (or design) paths lead to the same functional capacity, here: image classification. Just as bird wings and insect wings represent distinct structural solutions to achieve the same function (flight), CNNs and Transformers are convergent solutions to vision tasks despite minimal structural similarity. Recent analyses show that CNNs and Vision Transformers develop notably different early-layer features but converge toward similar high-level representations ( Raghu et al., 2021 ), illustrating representational convergence, i.e. high functional similarity, despite architectural divergence, i.e. low structural similarity. This highlights the need for formal criteria to distinguish “convergent” architectures from those that share a direct lineage and on which features any architecture converges. The analogies given above and provided in Table 1 are conceptual rather than literal. DNNs do not evolve through phylogenetic inheritance like in biology, but the vocabulary provides a useful descriptive framework that I will keep using in the following. Table 1. Biological terminology for DNN structural comparison. Biological term Definition in neuroscience connectomics Proposed analogous concept in DNNs Homology Shared common ancestral structure, high structural similarity, often highly similar computational graph (e.g., optic tectum/superior colliculus). Architectures sharing a common high-level design heritage (e.g., ResNet-50 and ResNet-101), where structural distance should be minimal. Analogy Structures performing similar functions but with different evolutionary origins; functional similarity without structural similarity (e.g., mushroom body ↔ pallium). Architectures achieving similar performance despite different computational graphs (e.g., MLP-Mixer vs. CNN vs. ViT); representational similarity may be high while structural similarity is low. Homoplasy/Convergent Evolution Independent evolutionary origin leading to similar functional outcome, structurally distinct mechanisms (e.g., ctenophore versus bilaterian neurons). Architectures yielding comparable performance (e.g., CNN vs. Transformer) but low structural alignment. Canonical Microcircuit or motif Stereotyped, multi-layered connectivity pattern found ubiquitously across cortical columns, highly parameter-efficient. The reusable architectural block (e.g., attention head, residual skip connection, inverted bottleneck) or statistically significant network motif. Defining similarity As introduced above, we rely on two levels of similarity, one regarding the computational graph (structural similarity) and one regarding the output or internal representation (functional similarity). Two architectures are the same in terms of structure if their computational graphs are identical. In terms of functional similarity, one can think if the distance between outputs is minimal or the representations align. Then, any given similarity would be maximal. The higher the degree of deviation in any considered similarity, the higher the similarity measure drops. Structural similarity. Suppose any two architectures achieve a similar score when measuring their endpoint performance. In that case, we can hardly derive anything about some underlying principles that make one architecture generalize better or be more robust to perturbations ( Neyshabur et al., 2017 ). Even more critically, we actually do not have a thorough understanding of which computational graphs yield high endpoint performance without empirical testing. Changing a computational graph slightly can have tremendous implications for this endpoint performance. To identify those, we might try to compare two given architectures and their computational graph and compute their structural similarity. A naive approach to structural similarity would be to count the layers and units per layer in a multilayer perceptron. Activation functions, as a major source of non-linearity, should also be considered. In a convolutional neural network, this expands to further parameters and layer kinds, such as kernel sizes, as well as normalization and pooling layers ( Figure 2a ). We have recently suggested a structural similarity measure ( Pava et al., 2024 ) that relies on the alignment of two neural network architectures’ high-level computational graphs. Our alignment strategy is based on the Needleman-Wunsch algorithm, originally designed for DNA and protein sequence alignment ( Needleman and Wunsch, 1970 ). In our case, we consider different kinds of layers and their parameters and punish sequence mismatches and the introduction of gaps in the architecture (see Figure 2b ). While effective for quantifying architectural lineage in tasks like Neural Architecture Search (NAS) by measuring the cost of layer insertions, deletions, or substitutions, sequence alignment is insufficient for comparing complex, non-linear topologies typical of deep learning, such as skip connections or parallel branches. The limitation arises because Needleman-Wunsch treats the network as a one-dimensional sequence, failing to account for skip connections, parallel processing streams, or the topological roles of nodes. Figure 2. Sequence–based structural similarity between neural network architectures. ( a ) Two example architectures are decomposed into ordered sequences of layer types, such as convolutional layers, pooling operations, normalization layers, and dense blocks. Each layer is represented as a symbolic token, enabling a compact, sequence-level description of the computational graph. ( b ) Structural alignment of the two architectures from (a) using a Needleman-Wunsch sequence alignment procedure. The alignment identifies gaps (insertions or deletions; red), mismatches between structurally different layers (purple), and matches where corresponding layers share the same type (green). This alignment yields a layer-wise correspondence and provides the basis for quantifying structural distance. ( c ) The two neural networks from (a) are passed through an encoder to produce some sort of embedding representation of each architecture, for example, by representing the computational graph or via a foundation model. The cosine similarity between these embeddings provides a differentiable structural similarity score. Researchers are beginning to explore topological data analysis or graph-based metrics to compare architectures ( Barannikov et al., 2021 ; Chen et al., 2025 ). However, differences between models are not necessarily captured by these approaches, and the lack of a universal ground truth limits the ability to validate these measures. The broader community would benefit from a concerted effort to develop and standardize approaches that measure structural similarity, ensuring that new methods can be consistently evaluated and compared. An upcoming trend to represent any given modality is the use of foundation models ( Awais et al., 2025 ). One can think of an embedding representation for any given neural network architecture, where we can compute cosine similarities across embeddings to compare any given neural network architectural designs ( Figure 2c ). Representing an architecture as a vector or embedding has been used before ( Cheng et al., 2021 ; Li et al., 2020 ; Xue et al., 2024 ; Yan et al., 2020 ), but expanding this via a self-supervised learning approach would be interesting, even thinking of what such a self-supervised learning paradigm would look like. Representational similarity. Structural similarity here would mean not only the computational graph itself, but might also include intermediate representations. With the same multilayer perceptron architecture (two inputs, two hidden units and one output), I could compute the logical AND, OR, or XOR operation, depending on how I set the weights (see Figure 3 ). Representational similarity has been studied intensively, most notably using centred kernel alignment (CKA), which reliably identifies layer correspondences across different architectures and training initializations ( Kornblith et al., 2019 ). Along similar lines, a very recent study focused on quantifying representational similarity and grounded their study on either prediction or design ( Klabunde et al., 2024 ). For grounding similarity on predictions, the authors computed the Jensen-Shannon divergence of the class-wise probability scores. For grounding the similarity by design, the authors computed group representations across layers in an ordinal fashion and reported the conformity rate. They also introduced a new benchmark, ReSi, that should quantify this representational similarity. Figure 3. Identical computational graphs can implement different logical functions. This example illustrates how a fixed two-layer perceptron architecture can implement qualitatively different Boolean functions, here AND , OR , and XOR , solely by modifying its weights and biases. The computational graph (top) consists of two input units (x 1 ,x 2 ), two hidden units, and a single output unit. The first layer is parameterized by weight matrix W 1 and bias vector b 1 , followed by a nonlinear activation. The second layer maps the hidden representation to the output using W 2 and output bias b out . Although the architectural structure is identical across all three cases, the choice of parameters determines the function the network computes. The lower tabular panel summarizes specific parameter settings that allow the same architecture to implement each logic gate. The AND and OR functions can be realized with linearly separable decision boundaries, while the XOR function, classically non-linearly separable, requires the hidden layer to construct an intermediate representation that enables correct classification. This demonstrates an important principle for structural similarity analysis: two networks may share an identical computational graph yet perform completely different computations due to differences in parameterization. Thus, architectural similarity alone is insufficient for characterizing functional similarity, motivating the need to consider both structural and representational components when assessing neural network similarity. Functional similarity w.r.t. output. When measuring the functional similarity concerning output, we can use a variety of measures or metrics. Let’s use the term “measure” in the following being a mathematically vague description, to not imply certain specific constraints, such as the triangle inequality, needed for calling a measure a metric. In a typical scenario, a measure should be optimized for a specific goal. The Dice coefficient measures in a semantic segmentation task how well a given algorithm provides predictions with respect to a known ground-truth mask. Many measures have been described and lately comprehensively analyzed, pinpointing their strengths and limitations ( Maier-Hein et al., 2024 ; Reinke et al., 2024 ). That means two identical neural network architectures should be able to produce very close results after training on the same data. As there is a stochastic component in initializing the networks, the trained weights might be dissimilar, i.e. not the same, as not the same local minimum will necessarily be reached after training. However, their measured performance, given the example of the Dice score above, should be similar. Still, we would be able to analyze their internal representations and compare the same structural networks in such a way. Similarity in a nutshell. That means, a well-behaved overall similarity measure, or ideally metric, would incorporate both structural and functional similarity to determine the overall similarity. One can think of two independent terms and an interaction term to describe the structural similarity holistically (see conceptual equation in Equation 1 ). Crucially, neither structural nor functional similarity alone is sufficient. Structural similarity does not guarantee similar computations ( Figure 3 ), and functional similarity does not imply shared computational mechanisms (see CNN vs. ViT example). A meaningful similarity measure must therefore reflect both axes and their interaction. (Eq. 1) S total = α S structural + β S functional + γ S interaction Use case 1: Identifying structural motifs One promising theoretical application of a structural similarity measure is the identification of architectural motifs – recurring sub-network patterns, also termed as canonical microcircuit – across different neural networks ( Douglas et al., 1989 ; Harris et al., 2019 ). In biology, recurring patterns of interconnections (network “motifs”) have been identified in diverse systems as basic building blocks of information processing and specify the intrinsic circuitry that integrates top-down and bottom-up streams, serving as a highly parameter-efficient, repeatable computational unit ( Milo et al., 2002 ), abundantly present in the mammalian cortex. Similar motifs were found in networks that perform information processing even when the elements differ, such as gene regulatory networks and neural circuits ( Milo et al., 2002 ). By analogy, deep neural networks may also contain frequently recurring motifs (such as convolutional block + activation + normalization sequences, or residual skip connections) that serve as functional building blocks. Basically, an architectural motif would be a subgraph of the total neural network that is statistically overrepresented relative to a graph null model and contributes meaningfully to the network’s representational structure. An effective structural similarity measure could automatically detect when two architectures share such a common motif – for instance, identifying that different U-Net-like neural networks contain repeating encoder-decoder subgraphs. Open questions in this theoretical domain include: How should we rigorously define an “architectural motif” in an ANN? and How can we identify statistically significant motifs in a neural architecture, similar to how network motifs are defined by over-representation compared to random graphs? Developing algorithms to find partial alignments between architectures, similar to local sequence alignment in BLAST ( Madden, 2013 ), could allow us to spot these motifs and avoid global sequence alignments. As introduced above, we found that this, in principle, works. It remains to be explored whether motifs correspond to particular functions and how to quantitatively link motif presence to network performance or robustness. Examples would be attention mechanisms in Transformers or bottleneck blocks from ResNets. We can also think one step further: we not only compare layer counts but also compare the distribution, integration and organization of these motifs, which we can think of as a motif spectrum. This motif spectrum could hint at necessary structural requirements for a task. This could potentially identify in the previous example (CNNs vs. Vision Transformers) the need for a given computational task, such as efficient feature extraction. Use case 2: Identifying analogues and homologues Going back to our initial hypothesis that there can be structural homologues, meaning having a high similarity and a similar endpoint performance, i.e. a low absolute difference in the performance, that can also be measured by the “grounded by prediction” measure introduced above ( Klabunde et al., 2024 ). In addition, one could identify especially analogues when focusing on the structural aspect alone, which may also share similar intermediate representations. Defining homologues and analogues, one could start creating phylogenetic relationships between any architectures and show their relationships. This would create a new venue for meta-analyses of neural network architectures, providing a map of architectural evolution. This map would be thought of phylogenetic tree based on their structural similarity, a typical representation for the relationship of species and proteins. In such a tree, “structural homologues”, i.e. networks that share a common blueprint or module set, would cluster together. For example, ResNet-50 and ResNet-101 would be neighbouring branches, as would Vision Transformer variants. Structural analogues, i.e. networks that achieve similar functional outcomes via different structures, might appear as separate branches that converge at the level of function. This approach draws inspiration from evolutionary biology: architectures that evolve by incremental modifications from a parent, such as adding a convolution here or a skip connection there, are comparable to divergent evolution (homology), whereas very different architectures that nonetheless converge to solve the same task (CNN vs. Transformer for image classification) are comparable to convergent evolution (analogy). Practically, constructing an architecture phylogeny could yield insights into why certain designs perform well. If we find a cluster of high-performing architectures that are all structurally similar, that suggests a stable design motif exists. Conversely, if an architecture lies far from any cluster, basically a structural outlier, yet has high performance, it might represent a novel design paradigm, which would be analogous to discovering a new phylum in biology. Additionally, by analyzing architectural homologues that differ slightly, we could pinpoint which structural changes (“mutations”) significantly affect performance or robustness. We and others used such a meta-analytic view that is able to guide neural architecture search: rather than random search in a vast search space, one could use structural similarity to navigate the space, moving along the branches of the (thought) tree to find promising new variants ( Pava et al., 2024 ; Xue et al., 2024 ; Yan et al., 2020 ). To make this concrete, consider that many CNN architectures (VGG, ResNet, DenseNet) share a lot of common motifs (convolutions, ReLUs, skip connections) – they would form a homologous family. Transformers, on the other hand, form a different family. Both families achieve high accuracy on vision tasks (analogous function) but via divergent structures. A structural similarity framework might even allow us to quantify the “distance” between a given CNN and a given Transformer architecture, formalizing the intuitive notion that these are very different species of networks. Another intriguing possibility is identifying hybrid architectures that lie between families (like networks that combine convolutional and self-attention layers) – these could be seen as intermediate forms on the phylogenetic tree, potentially inheriting advantages of both parent families. Here, “distance” is consciously in quotation marks, as we still would leave it vague if one is able to create a real metric, i.e. a real distance, satisfying, for example, triangle inequality and symmetry. Whether structural similarity can be formalized as a metric remains an open question and may depend on whether future strategies to create embeddings or graph representations satisfy the aforementioned metric properties. In summary, establishing analogues and homologues among ANN architectures opens up a new analytical dimension. We can ask questions like: can we develop an algorithm to automatically cluster architectures by their structural similarity? What does the distribution of known architectures look like in such a potentially multidimensional space – are there clear “families” and isolated designs? And could we infer an “architectural lineage” for a given model? For instance, can we trace how ideas from LeNet led to AlexNet, then to ResNets, etc., in a quantitative way? The answers could not only satisfy a theoretical curiosity but also drive practical innovation by highlighting which structural routes have been well-explored and which remain underexplored. Use case 3: Identifying robust or prone-to-break architectural designs When computing the structural similarity and the delta in functional similarity, here output related, one can draw plots as shown in Figure 4 , illustrating architectural siblings with functional divergence. These could indicate prone-to-break architectural designs. In addition, one could find robust architectural designs that, regardless of subtle changes in the computational graph, the model will be relatively consistent in the output distribution. For example, removing a certain skip connection from an architecture might drastically degrade its accuracy under stress, marking it as a fragile design. This effect is well-documented in ResNets, where ablating their hallmark skip connections leads to catastrophic degradation in trainability and accuracy ( He et al., 2015 ; Veit et al., 2016 ). Similarly, Vision Transformers exhibit high sensitivity to early-stage architectural perturbations. Removing or significantly altering the patch embedding layer severely disrupts both convergence and downstream accuracy ( Dosovitskiy et al., 2021 ; Raghu et al., 2021 ). Conversely, if an architecture yields similar performance even after such a perturbation, it could be deemed structurally robust ( Kist et al., 2022 ). Using a structural similarity measure, one could compare a network to a slightly perturbed version of itself to quantify how sensitive its function is to architectural tweaks. Figure 4. Relationship between structural similarity and functional divergence across neural network architectures. Each point represents a pairwise comparison between two architectures. The x-axis shows structural similarity, whereas the y-axis shows the difference in performance (Δ performance) between the two models. Pairs with high similarity and low Δ performance cluster on the lower right and correspond to homologues, i.e. architectures that share a common design lineage and behave similarly. Points in the upper right indicate architectural siblings with functional divergence, where small structural changes lead to large performance differences. Points near the lower left represent functionally convergent or analogous architectures, which achieve comparable performance despite minimal structural similarity. In this application-driven domain, robustness becomes a key concern. A structural similarity measure could help predict a network’s robustness: if a network and a perturbed variant (e.g. with one layer removed or a module substituted) are still highly similar in function, that suggests the architecture has built-in redundancy or stability. On the other hand, a small structural change leading to a large functional divergence would indicate a fragile design. Open research questions here include which structural features (motifs or patterns) correlate with robustness to perturbations or adversarial attacks? Can we identify, using structural similarity, “prone-to-break” configurations systematically? For instance, are there specific layer arrangements that consistently cause networks to fail under domain shifts or noise? A structural similarity analysis across many models might reveal that certain architectures cluster together and all share an intolerance to, say, weight noise or input perturbations – indicating a vulnerable pattern. Beyond robustness, transferability of learned knowledge is another application-driven concern. We could ask, if two architectures are structurally similar by our measure, does that imply we can transfer weights or features from one to the other with minimal fine-tuning? Currently, model transfer or fine-tuning often assumes a similar architecture, such as transferring knowledge between ResNet-50 and ResNet-101 in the first 50 layers. A very elegant application is, for example, weight transfer in knowledge distillation, if teacher and student have similar architectural designs ( Yim et al., 2017 ). A formal similarity measure could generalize this. One could quantitatively predict when transfer learning will succeed based on structural closeness. This could enable a priori selection of a pre-trained source model that is structurally closest to a target architecture, maximizing transfer efficiency. Conversely, if two models are structurally very different, as indicated by low similarity, one might expect transferred features to be less useful. Overall, identifying robust vs. fragile designs and understanding transferability via structural similarity could create best practices in model development. An architecture that is an “architectural sibling” of many others with consistent performance might be a safer choice for deployment, whereas an outlier architecture that shows dramatic performance swings with small changes might indicate cautious use. AI disclosure Grammarly and ChatGPT 5.0 and 5.1 have been used for grammar and language corrections. Google Scholar Labs for Literature Research. Data and software availability No data are associated with this article. Acknowledgements I thank Mateo Avila Pava for early comments on this manuscript. References Awais M, Naseer M, Khan S, et al. : Foundation Models Defining a New Era in Vision: A Survey and Outlook. IEEE Trans. Pattern Anal. Mach. Intell. 2025; 47 : 2245–2264. PubMed Abstract | Publisher Full Text Barannikov S, Trofimov I, Balabin N, et al. : Representation topology divergence: A method for comparing neural network representations. arXiv preprint arXiv:2201.00058. 2021. Chen Z, Lu Y, Hu J, et al. : Graph-Based Similarity of Deep Neural Networks. Neurocomputing. 2025; 614 : 128722. Publisher Full Text Cheng H-P, Zhang T, Zhang Y, et al. : Nasgem: Neural architecture search via graph embedding method. Proceedings of the AAAI Conference on Artificial Intelligence. 2021; pp. 7090–7098. Dosovitskiy A, Beyer L, Kolesnikov A, et al. : An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929 [cs]. 2021. Douglas RJ, Martin KA, Whitteridge D: A canonical microcircuit for neocortex. Neural Comput. 1989; 1 : 480–488. Publisher Full Text Farris SM: Structural, functional and developmental convergence of the insect mushroom bodies with higher brain centers of vertebrates. Brain Behav. Evol. 2008; 72 : 1–15. PubMed Abstract | Publisher Full Text Harris JA, Mihalas S, Hirokawa KE, et al. : Hierarchical organization of cortical and thalamic connectivity. Nature. 2019; 575 : 195–202. PubMed Abstract | Publisher Full Text He K, Zhang X, Ren S, et al. : Deep Residual Learning for Image Recognition. arXiv:1512.03385 [cs]. 2015. Isa T, Marquez-Legorreta E, Grillner S, et al. : The tectum/superior colliculus as the vertebrate solution for spatial sensory integration and action. Curr. Biol. 2021; 31 : R741–R762. PubMed Abstract | Publisher Full Text Katz PS: Neural mechanisms underlying the evolvability of behaviour. Philosophical Transactions of the Royal Society B: Biological Sciences. 2011; 366 : 2086–2099. PubMed Abstract | Publisher Full Text | Free Full Text Kist AM, Breininger K, Dörrich M, et al. : A single latent channel is sufficient for biomedical glottis segmentation. Sci. Rep. 2022; 12 : 14292. PubMed Abstract | Publisher Full Text | Free Full Text Klabunde M, Wald T, Schumacher T, et al. : Resi: A comprehensive benchmark for representational similarity measures. arXiv preprint arXiv:2408.00531. 2024. Kornblith S, Norouzi M, Lee H, et al. : Similarity of neural network representations revisited. International Conference on Machine Learning. PMlR; 2019; pp. 3519–3529. Li W, Gong S, Zhu X: Neural graph embedding for neural architecture search. Proceedings of the AAAI Conference on Artificial Intelligence. 2020; pp. 4707–4714. Madden T: The BLAST sequence analysis tool. The NCBI handbook. 2013; 2 : 425–436. Maier-Hein L, Reinke A, Godau P, et al. : Metrics reloaded: recommendations for image analysis validation. Nat. Methods. 2024; 21 : 195–212. PubMed Abstract | Publisher Full Text Milo R, Shen-Orr S, Itzkovitz S, et al. : Network motifs: simple building blocks of complex networks. Science. 2002; 298 : 824–827. PubMed Abstract | Publisher Full Text Moroz LL: Convergent evolution of neural systems in ctenophores. J. Exp. Biol. 2015; 218 : 598–611. PubMed Abstract | Publisher Full Text | Free Full Text Needleman SB, Wunsch CD: A general method applicable to the search for similarities in the amino acid sequence of two proteins. J. Mol. Biol. 1970; 48 : 443–453. PubMed Abstract | Publisher Full Text Nevin LM, Robles E, Baier H, et al. : Focusing on optic tectum circuitry through the lens of genetics. BMC Biol. 2010; 8 : 126. Publisher Full Text Neyshabur B, Bhojanapalli S, Mcallester D, et al. : Exploring Generalization in Deep Learning.Guyon I, Luxburg UV, Bengio S, et al. , editors. Advances in Neural Information Processing Systems. Curran Associates, Inc.; 2017. Pava MA, Groh R, Kist AM: Sequence Alignment-based Similarity Metric in Evolutionary Neural Architecture Search. AutoML 2024 Methods Track. 2024. Raghu M, Unterthiner T, Kornblith S, et al. : Do vision transformers see like convolutional neural networks?. Adv. Neural Inf. Proces. Syst. 2021; 34 : 12116–12128. Reinke A, Tizabi MD, Baumgartner M, et al. : Understanding metric-related pitfalls in image analysis validation. Nat. Methods. 2024; 21 : 182–194. PubMed Abstract | Publisher Full Text Simonyan K, Zisserman A: Very Deep Convolutional Networks for Large-Scale Image Recognition. International Conference on Learning Representations. 2015. Veit A, Wilber MJ, Belongie S: Residual networks behave like ensembles of relatively shallow networks. Adv. Neural Inf. Proces. Syst. 2016; 29 . Xue Y, Zha J, Wahib M, et al. : Neural architecture search via similarity adaptive guidance. Appl. Soft Comput. 2024; 162 : 111821. Publisher Full Text Yan S, Zheng Y, Ao W, et al. : Does unsupervised architecture representation learning help neural architecture search?. Adv. Neural Inf. Proces. Syst. 2020; 33 : 12486–12498. Yim J, Joo D, Bae J, et al. : A gift from knowledge distillation: Fast optimization, network minimization and transfer learning. Proc. IEEE Conf. Comput. Vis. Pattern Recognit. 2017; 4133–4141. Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 23 Mar 2026 ADD YOUR COMMENT Comment Author details Author details Department Artificial Intelligence in Biomedical Engineering, Friedrich-Alexander-Universität Erlangen-Nürnberg, Erlangen, Germany Andreas M. Kist Roles: Conceptualization, Methodology, Visualization, Writing – Original Draft Preparation Competing interests No competing interests were disclosed. Grant information The author(s) declared that no grants were involved in supporting this work. Article Versions (1) version 1 Published: 23 Mar 2026, 15:430 https://doi.org/10.12688/f1000research.178206.1 Copyright © 2026 Kist AM. This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Download Export To Sciwheel Bibtex EndNote ProCite Ref. Manager (RIS) Sente metrics Views Downloads F1000Research - - PubMed Central info_outline Data from PMC are received and updated monthly. - - Citations open_in_new 0 open_in_new 0 open_in_new SEE MORE DETAILS CITE how to cite this article Kist AM. Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.12688/f1000research.178206.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS track receive updates on this article Track an article to receive email alerts on any updates to this article. TRACK THIS ARTICLE Share Open Peer Review Current Reviewer Status: ? Key to Reviewer Statuses VIEW HIDE Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Version 1 VERSION 1 PUBLISHED 23 Mar 2026 Views 0 Cite How to cite this report: Klabunde M. Reviewer Report For: Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.5256/f1000research.196566.r474649 ) The direct URL for this report is: https://f1000research.com/articles/15-430/v1#referee-response-474649 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 12 May 2026 Max Klabunde , University of Passau, Passau, Bavaria, Germany Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.196566.r474649 ## Summary The article argues for a holistic approach to comparing neural networks considering neural network structure (structural similarity), internal representations, and outputs (both together functional similarity). When quantifying similarity, all three components should be similar for a network ... Continue reading READ ALL ## Summary The article argues for a holistic approach to comparing neural networks considering neural network structure (structural similarity), internal representations, and outputs (both together functional similarity). When quantifying similarity, all three components should be similar for a network to be considered truly similar. Four use cases are outlined that benefit from this approach: Identifying when neural networks share (non-trivial) structure or building blocks, e.g., U-Net-style encoder-decoder structure or attention blocks. This could inform structural requirements for a given task. Creating “evolutionary trees” of networks that can be used trace lineage and cluster architectures, which can be used to guide neural architecture search. Using similarity to quantify robustness of neural network architectures, in the sense of robustness to perturbation of the architecture, not the input. Predicting whether weights directly or at least knowledge can be transferred between architectures (e.g., through distillation). ## Strengths and Weaknesses As is mentioned in the “Defining Similarity” section, there are multiple aspects of neural network similarity. With Eq. 1, it is argued that considering multiple aspects are important (and a similar argument is made with the “motif spectrum” in use case 1). This argument is perfectly reasonable, since there are many different parts where neural networks could differ. However, this seems to be in contrast with the outlined use cases, which all almost entirely focus on structural similarity. Overall, I get the impression that the article argues for more research into structural similarity, whereas the “unified strategy to measure neural network similarity” is underexplored. I recommend making it more clear which aspects of similarity are important. For Eq.1, I would also recommend adding more explanation why the proposed form is used and what the interaction term would look like. What kind of similarity score would you give two models that have identical structure, but are functionally completely distinct (e.g., because trained on different modalities)? Why is there only one factor for functional similarity, when it consists of representational and output similarity? Another important aspect of measuring similarity is that the similarity is a proxy for some other statistic in most cases. This is also implicit in the use cases but not highlighted to the reader. I think this is an important caveat that would benefit from a bit of additional elaboration in the article, because being a proxy puts some hard constraints on the similarity metric: if it is not easier or faster to use the similarity metric, then I would simply measure what I am interested in directly. Also, since the statistic of interest typically measures function of the model (e.g., performance), this weakens the argument for the unified similarity strategy that also uses functional similarity. In the last use case (weight transfer), Yim et al are cited for weight transfer. I checked the paper out of interest, but could not find weight transfer being discussed in it. I recommend changing the citation here or moving it to a sentence related to feature transfer. On a structural level, the article contains sections for three use cases, but I think the last use case consists of two different ones (robustness and predicting knowledge transfer). I recommend adapting the structure, so the use cases are more easily identifiable. There are also a few smaller errors in the manuscript: “For grounding the similarity by design, the authors computed group representations across layers in an ordinal fashion and reported the conformity rate. They also introduced a new benchmark, ReSi, that should quantify this representational similarity.” ReSi quantifies conformity of representational similarity measures to intuitive desiderata, not representational similarity directly. I would also argue that the grounding by design tests test the ability to discriminate between functionally different models by means of their representations. “[…] lately comprehensively analyzed, pinpointing their strengths and limitations ( Maier-Hein et al., 2024 ; Reinke et al., 2024 ). That means two identical neural network architectures should be able to produce very close results after training on the same data.“ I do not see how the second sentence follows from the first. “Going back to our initial hypothesis that there can be structural homologues, meaning having a high similarity and a similar endpoint performance, i.e. a low absolute difference in the performance, that can also be measured by the “grounded by prediction” measure introduced above ( Klabunde et al., 2024 ).“ I feel like part of the sentence is missing. “Going back to our initial hypothesis”, what follows? Calling the grounded by prediction test a measure seems confusing to me since it is not a similarity measure in the sense of the article. Is the topic of the opinion article discussed accurately in the context of the current literature? Yes Are all factual statements correct and adequately supported by citations? Partly Are arguments sufficiently supported by evidence from the published literature? Partly Are the conclusions drawn balanced and justified on the basis of the presented arguments? Yes Competing Interests: No competing interests were disclosed. I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Klabunde M. Reviewer Report For: Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.5256/f1000research.196566.r474649 ) The direct URL for this report is: https://f1000research.com/articles/15-430/v1#referee-response-474649 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Views 0 Cite How to cite this report: Mohammadagha M. Reviewer Report For: Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.5256/f1000research.196566.r475917 ) The direct URL for this report is: https://f1000research.com/articles/15-430/v1#referee-response-475917 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 20 Apr 2026 Mohsen Mohammadagha , University of Texas at Arlington, Arlington, Texas, USA Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.196566.r475917 Journal: f1000research Title: Measuring Neural Network Similarity The manuscript proposes a conceptual framework for comparing neural networks along structural and functional similarity axes, drawing biological analogies to motivate architecture alignment, representational comparison, motif discovery, robustness analysis, ... Continue reading READ ALL Journal: f1000research Title: Measuring Neural Network Similarity The manuscript proposes a conceptual framework for comparing neural networks along structural and functional similarity axes, drawing biological analogies to motivate architecture alignment, representational comparison, motif discovery, robustness analysis, and potential “phylogenies” that could guide understanding and neural architecture search. I believe the manuscript would benefit from light revision and copy-editing before indexing. 1- Clarify and stabilize the core definitions. The manuscript initially defines two “independent yet interacting axes”: structural similarity (a property of the computational graph) and functional similarity (similarity of outputs or internal representations). Later, however, the “Representational similarity” subsection states that “Structural similarity here would mean not only the computational graph itself, but might also include intermediate representations,” which appears to blur the distinction established earlier. I would suggest defining these terms once, early, and then using them consistently throughout the paper. For example: Structural similarity= similarity of graph topology / operators / motifs, independent of learned weights. Representational similarity = similarity of internal activations. Output similarity = similarity of predictions / task outputs. Functional similarity = umbrella term that includes representational similarity and output similarity, if that is the intended hierarchy. A small conceptual figure or boxed taxonomy could help readers understand how these terms relate. Right now, those categories are intuitive but not fully orthogonal in the current wording. 2- Reconcile the biology-inspired terminology. The paper uses homology, analogy, and homoplasy / convergent evolution as conceptual anchors, which is a creative and useful rhetorical device. However, the mapping is not always fully stable across sections. For example, CNNs vs. Vision Transformers are described as an example of homoplasy / convergent evolution, but later the manuscript also refers to architectures with similar function and different structure as analogues. Table 1 separates “Analogy” and “Homoplasy/Convergent Evolution,” but the text would benefit from a brief explanation of why both are needed in the DNN context and how readers should distinguish them operationally. Since this is an opinion article, the biology analogy does not need to be perfect, but I think it would help to state that these are heuristic descriptive labels, not strict one-to-one biological counterparts. The manuscript hints at this already, but the later “phylogeny” discussion becomes strong enough that some readers may interpret the analogy more literally than intended. 3- Tighten the proposed “overall similarity” equation Equation 1 is presented as: Stotal= α Sstructural+ β Sfunctional+ γ Sinteraction. This is a reasonable conceptual starting point, but the surrounding text says it would describe “the structural similarity holistically,” whereas the equation itself clearly seems to target overall similarity, not structural similarity alone. I would recommend revising the surrounding sentence so the equation is framed as a conceptual decomposition of overall similarity. If possible, the manuscript could also briefly note: whether higher values always mean “more similar,” whether all terms are normalized to a common scale, and whether the interaction term is meant to capture agreement between structure and function, nonlinearity, or something else. Even one short paragraph on these points would make the conceptual contribution feel more rigorous. 4- Distinguish clearly between speculation, proposal, and evidence. The manuscript is an opinion article, so forward-looking speculation is entirely appropriate. Still, some parts read close to empirical implication without enough qualification. For instance, the paper suggests that structural similarity could help identify robust versus prone-to-break architectures, predict transferability, and guide NAS. These are promising ideas, but in several places the prose could be softened slightly to make clear that these are hypotheses / proposed applications rather than established capabilities of current similarity measures. A possible revision strategy would be to distinguish three layers of claims: What is already established (e.g., representational similarity measures such as CKA). What preliminary methods exist (e.g., alignment-based architecture similarity, graph-based approaches). What the author proposes as future directions (motif spectra, phylogenies, robustness prediction, transfer prediction). That structure would make the argument feel more grounded while preserving the visionary angle of the paper. 5- It can be more precise about what counts as the “computational graph.” A key unresolved issue is the level of granularity at which two architectures are compared. The manuscript mentions layers, layer types, activation functions, kernel sizes, normalization, pooling, skip connections, and branches. It would strengthen the article to specify, even conceptually, what belongs to the graph representation: Are hyperparameters part of structure? Are repeated blocks compressed into motifs or kept expanded? Are tensor shapes part of structure? Are weights explicitly excluded from structure? Are training-time components (dropout, layer norm statistics, stochastic depth) part of structure or function? This matters because the answer directly influences any future similarity metric. A brief paragraph acknowledging granularity and representation choices would likely help readers from ML, NAS, and graph-learning communities interpret the proposal more consistently. 6- The statement about “same architecture, same data” producing “very close results” should be qualified. The manuscript states that two identical neural network architectures trained on the same data should produce very close results. I would recommend softening this claim. In practice, random initialization, optimizer dynamics, regularization, data order, and early stopping can produce noticeable differences in outputs and representations even with identical architectures. The point is understandable, but the wording “should be similar on average” or “often produce comparable endpoint performance” may be more accurate. This is especially important because part of the article’s broader argument is that function cannot be inferred from structure alone. 7- The “foundation model” paragraph could be made more concrete. The paragraph beginning “An upcoming trend to represent any given modality is the use of foundation models” seems somewhat abrupt relative to the rest of the manuscript. The connection between foundation models, architecture embeddings, and self-supervised learning over computational graphs is intriguing, but currently a bit underspecified. As written, it reads more like an idea fragment than a developed argument. You may consider clarifying: what the “input modality” is in this setting (graph descriptions? code? serialized architectures?), what the pretext task would be, and how this differs from prior graph-embedding methods already cited. Even two or three concrete examples would substantially strengthen that section. 8- The manuscript may benefit from a brief limitations paragraph. Because the article advocates a unified similarity framework, it may be useful to acknowledge a few difficult cases, such as: architectures with weight-sharing, recurrence, or dynamic routing, equivalence under neuron/channel permutations, task dependence of output-based similarity, and the challenge of comparing networks trained for different objectives or modalities. 9- There are also a few minor language edits that could improve readability (for example, “This map would be thought of phylogenetic tree” should be “This map could be thought of as a phylogenetic tree” or “This map could take the form of a phylogenetic tree.”) Is the topic of the opinion article discussed accurately in the context of the current literature? Yes Are all factual statements correct and adequately supported by citations? Partly Are arguments sufficiently supported by evidence from the published literature? Partly Are the conclusions drawn balanced and justified on the basis of the presented arguments? Yes Competing Interests: No competing interests were disclosed. Reviewer Expertise: Machine learning and deep learning methodologies, neural network architectures, and AI applications. I am assessing the manuscript primarily from the computational/methodological perspective. I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Mohammadagha M. Reviewer Report For: Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.5256/f1000research.196566.r475917 ) The direct URL for this report is: https://f1000research.com/articles/15-430/v1#referee-response-475917 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 23 Mar 2026 ADD YOUR COMMENT Comment keyboard_arrow_left keyboard_arrow_right Open Peer Review Reviewer Status info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Reviewer Reports Invited Reviewers 1 2 Version 1 23 Mar 26 read read Mohsen Mohammadagha , University of Texas at Arlington, Arlington, USA Max Klabunde , University of Passau, Passau, Germany Comments on this article All Comments (0) Add a comment Sign up for content alerts Sign Up You are now signed up to receive this alert Browse by related subjects keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2026 Klabunde M. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. 12 May 2026 | for Version 1 Max Klabunde , University of Passau, Passau, Bavaria, Germany 0 Views copyright © 2026 Klabunde M. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. format_quote Cite this report speaker_notes Responses (0) Approved With Reservations info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions ## Summary The article argues for a holistic approach to comparing neural networks considering neural network structure (structural similarity), internal representations, and outputs (both together functional similarity). When quantifying similarity, all three components should be similar for a network to be considered truly similar. Four use cases are outlined that benefit from this approach: Identifying when neural networks share (non-trivial) structure or building blocks, e.g., U-Net-style encoder-decoder structure or attention blocks. This could inform structural requirements for a given task. Creating “evolutionary trees” of networks that can be used trace lineage and cluster architectures, which can be used to guide neural architecture search. Using similarity to quantify robustness of neural network architectures, in the sense of robustness to perturbation of the architecture, not the input. Predicting whether weights directly or at least knowledge can be transferred between architectures (e.g., through distillation). ## Strengths and Weaknesses As is mentioned in the “Defining Similarity” section, there are multiple aspects of neural network similarity. With Eq. 1, it is argued that considering multiple aspects are important (and a similar argument is made with the “motif spectrum” in use case 1). This argument is perfectly reasonable, since there are many different parts where neural networks could differ. However, this seems to be in contrast with the outlined use cases, which all almost entirely focus on structural similarity. Overall, I get the impression that the article argues for more research into structural similarity, whereas the “unified strategy to measure neural network similarity” is underexplored. I recommend making it more clear which aspects of similarity are important. For Eq.1, I would also recommend adding more explanation why the proposed form is used and what the interaction term would look like. What kind of similarity score would you give two models that have identical structure, but are functionally completely distinct (e.g., because trained on different modalities)? Why is there only one factor for functional similarity, when it consists of representational and output similarity? Another important aspect of measuring similarity is that the similarity is a proxy for some other statistic in most cases. This is also implicit in the use cases but not highlighted to the reader. I think this is an important caveat that would benefit from a bit of additional elaboration in the article, because being a proxy puts some hard constraints on the similarity metric: if it is not easier or faster to use the similarity metric, then I would simply measure what I am interested in directly. Also, since the statistic of interest typically measures function of the model (e.g., performance), this weakens the argument for the unified similarity strategy that also uses functional similarity. In the last use case (weight transfer), Yim et al are cited for weight transfer. I checked the paper out of interest, but could not find weight transfer being discussed in it. I recommend changing the citation here or moving it to a sentence related to feature transfer. On a structural level, the article contains sections for three use cases, but I think the last use case consists of two different ones (robustness and predicting knowledge transfer). I recommend adapting the structure, so the use cases are more easily identifiable. There are also a few smaller errors in the manuscript: “For grounding the similarity by design, the authors computed group representations across layers in an ordinal fashion and reported the conformity rate. They also introduced a new benchmark, ReSi, that should quantify this representational similarity.” ReSi quantifies conformity of representational similarity measures to intuitive desiderata, not representational similarity directly. I would also argue that the grounding by design tests test the ability to discriminate between functionally different models by means of their representations. “[…] lately comprehensively analyzed, pinpointing their strengths and limitations ( Maier-Hein et al., 2024 ; Reinke et al., 2024 ). That means two identical neural network architectures should be able to produce very close results after training on the same data.“ I do not see how the second sentence follows from the first. “Going back to our initial hypothesis that there can be structural homologues, meaning having a high similarity and a similar endpoint performance, i.e. a low absolute difference in the performance, that can also be measured by the “grounded by prediction” measure introduced above ( Klabunde et al., 2024 ).“ I feel like part of the sentence is missing. “Going back to our initial hypothesis”, what follows? Calling the grounded by prediction test a measure seems confusing to me since it is not a similarity measure in the sense of the article. Is the topic of the opinion article discussed accurately in the context of the current literature? Yes Are all factual statements correct and adequately supported by citations? Partly Are arguments sufficiently supported by evidence from the published literature? Partly Are the conclusions drawn balanced and justified on the basis of the presented arguments? Yes Competing Interests No competing interests were disclosed. I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. reply Respond to this report Responses (0) Klabunde M. Peer Review Report For: Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.5256/f1000research.196566.r474649) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://f1000research.com/articles/15-430/v1#referee-response-474649 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2026 Mohammadagha M. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. 20 Apr 2026 | for Version 1 Mohsen Mohammadagha , University of Texas at Arlington, Arlington, Texas, USA 0 Views copyright © 2026 Mohammadagha M. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. format_quote Cite this report speaker_notes Responses (0) Approved With Reservations info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Journal: f1000research Title: Measuring Neural Network Similarity The manuscript proposes a conceptual framework for comparing neural networks along structural and functional similarity axes, drawing biological analogies to motivate architecture alignment, representational comparison, motif discovery, robustness analysis, and potential “phylogenies” that could guide understanding and neural architecture search. I believe the manuscript would benefit from light revision and copy-editing before indexing. 1- Clarify and stabilize the core definitions. The manuscript initially defines two “independent yet interacting axes”: structural similarity (a property of the computational graph) and functional similarity (similarity of outputs or internal representations). Later, however, the “Representational similarity” subsection states that “Structural similarity here would mean not only the computational graph itself, but might also include intermediate representations,” which appears to blur the distinction established earlier. I would suggest defining these terms once, early, and then using them consistently throughout the paper. For example: Structural similarity= similarity of graph topology / operators / motifs, independent of learned weights. Representational similarity = similarity of internal activations. Output similarity = similarity of predictions / task outputs. Functional similarity = umbrella term that includes representational similarity and output similarity, if that is the intended hierarchy. A small conceptual figure or boxed taxonomy could help readers understand how these terms relate. Right now, those categories are intuitive but not fully orthogonal in the current wording. 2- Reconcile the biology-inspired terminology. The paper uses homology, analogy, and homoplasy / convergent evolution as conceptual anchors, which is a creative and useful rhetorical device. However, the mapping is not always fully stable across sections. For example, CNNs vs. Vision Transformers are described as an example of homoplasy / convergent evolution, but later the manuscript also refers to architectures with similar function and different structure as analogues. Table 1 separates “Analogy” and “Homoplasy/Convergent Evolution,” but the text would benefit from a brief explanation of why both are needed in the DNN context and how readers should distinguish them operationally. Since this is an opinion article, the biology analogy does not need to be perfect, but I think it would help to state that these are heuristic descriptive labels, not strict one-to-one biological counterparts. The manuscript hints at this already, but the later “phylogeny” discussion becomes strong enough that some readers may interpret the analogy more literally than intended. 3- Tighten the proposed “overall similarity” equation Equation 1 is presented as: Stotal= α Sstructural+ β Sfunctional+ γ Sinteraction. This is a reasonable conceptual starting point, but the surrounding text says it would describe “the structural similarity holistically,” whereas the equation itself clearly seems to target overall similarity, not structural similarity alone. I would recommend revising the surrounding sentence so the equation is framed as a conceptual decomposition of overall similarity. If possible, the manuscript could also briefly note: whether higher values always mean “more similar,” whether all terms are normalized to a common scale, and whether the interaction term is meant to capture agreement between structure and function, nonlinearity, or something else. Even one short paragraph on these points would make the conceptual contribution feel more rigorous. 4- Distinguish clearly between speculation, proposal, and evidence. The manuscript is an opinion article, so forward-looking speculation is entirely appropriate. Still, some parts read close to empirical implication without enough qualification. For instance, the paper suggests that structural similarity could help identify robust versus prone-to-break architectures, predict transferability, and guide NAS. These are promising ideas, but in several places the prose could be softened slightly to make clear that these are hypotheses / proposed applications rather than established capabilities of current similarity measures. A possible revision strategy would be to distinguish three layers of claims: What is already established (e.g., representational similarity measures such as CKA). What preliminary methods exist (e.g., alignment-based architecture similarity, graph-based approaches). What the author proposes as future directions (motif spectra, phylogenies, robustness prediction, transfer prediction). That structure would make the argument feel more grounded while preserving the visionary angle of the paper. 5- It can be more precise about what counts as the “computational graph.” A key unresolved issue is the level of granularity at which two architectures are compared. The manuscript mentions layers, layer types, activation functions, kernel sizes, normalization, pooling, skip connections, and branches. It would strengthen the article to specify, even conceptually, what belongs to the graph representation: Are hyperparameters part of structure? Are repeated blocks compressed into motifs or kept expanded? Are tensor shapes part of structure? Are weights explicitly excluded from structure? Are training-time components (dropout, layer norm statistics, stochastic depth) part of structure or function? This matters because the answer directly influences any future similarity metric. A brief paragraph acknowledging granularity and representation choices would likely help readers from ML, NAS, and graph-learning communities interpret the proposal more consistently. 6- The statement about “same architecture, same data” producing “very close results” should be qualified. The manuscript states that two identical neural network architectures trained on the same data should produce very close results. I would recommend softening this claim. In practice, random initialization, optimizer dynamics, regularization, data order, and early stopping can produce noticeable differences in outputs and representations even with identical architectures. The point is understandable, but the wording “should be similar on average” or “often produce comparable endpoint performance” may be more accurate. This is especially important because part of the article’s broader argument is that function cannot be inferred from structure alone. 7- The “foundation model” paragraph could be made more concrete. The paragraph beginning “An upcoming trend to represent any given modality is the use of foundation models” seems somewhat abrupt relative to the rest of the manuscript. The connection between foundation models, architecture embeddings, and self-supervised learning over computational graphs is intriguing, but currently a bit underspecified. As written, it reads more like an idea fragment than a developed argument. You may consider clarifying: what the “input modality” is in this setting (graph descriptions? code? serialized architectures?), what the pretext task would be, and how this differs from prior graph-embedding methods already cited. Even two or three concrete examples would substantially strengthen that section. 8- The manuscript may benefit from a brief limitations paragraph. Because the article advocates a unified similarity framework, it may be useful to acknowledge a few difficult cases, such as: architectures with weight-sharing, recurrence, or dynamic routing, equivalence under neuron/channel permutations, task dependence of output-based similarity, and the challenge of comparing networks trained for different objectives or modalities. 9- There are also a few minor language edits that could improve readability (for example, “This map would be thought of phylogenetic tree” should be “This map could be thought of as a phylogenetic tree” or “This map could take the form of a phylogenetic tree.”) Is the topic of the opinion article discussed accurately in the context of the current literature? Yes Are all factual statements correct and adequately supported by citations? Partly Are arguments sufficiently supported by evidence from the published literature? Partly Are the conclusions drawn balanced and justified on the basis of the presented arguments? Yes Competing Interests No competing interests were disclosed. Reviewer Expertise Machine learning and deep learning methodologies, neural network architectures, and AI applications. I am assessing the manuscript primarily from the computational/methodological perspective. I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. reply Respond to this report Responses (0) Mohammadagha M. Peer Review Report For: Measuring Neural Network Similarity [version 1; peer review: 2 approved with reservations] . F1000Research 2026, 15 :430 ( https://doi.org/10.5256/f1000research.196566.r475917) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://f1000research.com/articles/15-430/v1#referee-response-475917 Alongside their report, reviewers assign a status to the article: Approved - the paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations - A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved - fundamental flaws in the paper seriously undermine the findings and conclusions Adjust parameters to alter display View on desktop for interactive features Includes Interactive Elements View on desktop for interactive features Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Stay Updated Sign up for content alerts and receive a weekly or monthly email with all newly published articles Register with F1000Research Already registered? Sign in Not now, thanks close PLEASE NOTE If you are an AUTHOR of this article, please check that you signed in with the account associated with this article otherwise we cannot automatically identify your role as an author and your comment will be labelled as a “User Comment”. If you are a REVIEWER of this article, please check that you have signed in with the account associated with this article and then go to your account to submit your report, please do not post your review here. If you do not have access to your original account, please contact us . All commenters must hold a formal affiliation as per our Policies . The information that you give us will be displayed next to your comment. User comments must be in English, comprehensible and relevant to the article under discussion. We reserve the right to remove any comments that we consider to be inappropriate, offensive or otherwise in breach of the User Comment Terms and Conditions . Commenters must not use a comment for personal attacks. When criticisms of the article are based on unpublished data, the data should be made available. I accept the User Comment Terms and Conditions Please confirm that you accept the User Comment Terms and Conditions. Affiliation ✕ refresh Please enter your institution. Note: To add your institution or organisation, start typing the name and then select the correct name from the list. Where applicable, the name will appear in both the original language and in English. Do not paste in the name. If the name does not appear in the drop-down list, we will display the information you have entered. ✕ refresh Country/Region * USA UK Canada China France Germany Afghanistan Aland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Cook Islands Costa Rica Cote d'Ivoire Croatia Cuba Cyprus Czech Republic Democratic Republic of the Congo Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and Mcdonald Islands Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kosovo (Serbia and Montenegro) Kuwait Kyrgyzstan Lao People's Democratic Republic Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Minor Outlying Islands of the United States Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Antilles New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island North Korea North Macedonia Northern Mariana Islands Norway Oman Pakistan Palau Palestinian Territory Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russian Federation Rwanda Saint Helena Saint Kitts and Nevis Saint Lucia Saint Pierre and Miquelon Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Is South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard and Jan Mayen Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand The Gambia The Netherlands Timor-Leste Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu UK USA Uganda Ukraine United Arab Emirates United States Virgin Islands Uruguay Uzbekistan Vanuatu Venezuela Vietnam Wallis and Futuna West Bank and Gaza Strip Western Sahara Yemen Zambia Zimbabwe Please select your country/region. You must enter a comment. Competing Interests Please disclose any competing interests that might be construed to influence your judgment of the article's or peer review report's validity or importance. Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Please state your competing interests The comment has been saved. An error has occurred. Please try again. Cancel Post var lTitle = "Measuring Neural Network Similarity".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://f1000research.com/articles/15-430/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://f1000research.com/articles/15-430/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://f1000research.com/articles/15-430/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Kist AM'); var offsetTop = /chrome/i.test( navigator.userAgent ) ? 4 : -10; var addthis_config = { ui_offset_top: offsetTop, services_compact : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_expanded : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_custom : [ { name: "LinkedIn", url: linkedInUrl, icon:"/img/icon/at_linkedin.svg" }, { name: "Mendeley", url: "http://www.mendeley.com/import/?url=https://f1000research.com/articles/15-430/v1/mendeley", icon:"/img/icon/at_mendeley.svg" }, { name: "Reddit", url: redditUrl, icon:"/img/icon/at_reddit.svg" }, ] }; var addthis_share = { url: "https://f1000research.com/articles/15-430", templates : { twitter : "Measuring Neural Network Similarity. Kist AM, published by " + "@F1000Research" + ", https://f1000research.com/articles/15-430/v1" } }; if (typeof(addthis) != "undefined"){ addthis.addEventListener('addthis.ready', checkCount); addthis.addEventListener('addthis.menu.share', checkCount); } $(".f1r-shares-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + addthis_share.templates.twitter); $(".f1r-shares-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + addthis_share.url); $(".f1r-shares-linkedin").attr("href", addthis_config.services_custom[0].url); $(".f1r-shares-reddit").attr("href", addthis_config.services_custom[2].url); $(".f1r-shares-mendelay").attr("href", addthis_config.services_custom[1].url); function checkCount(){ setTimeout(function(){ $(".addthis_button_expanded").each(function(){ var count = $(this).text(); if (count !== "" && count != "0") $(this).removeClass("is-hidden"); else $(this).addClass("is-hidden"); }); }, 1000); } close How to cite this report {{reportCitation}} Cancel Copy Citation Details $(function(){R.ui.buttonDropdowns('.dropdown-for-downloads');}); $(function(){R.ui.toolbarDropdowns('.toolbar-dropdown-for-downloads');}); $.get("/articles/acj/178206/196566") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "196566"); $(document).ready(function() { $( "#frame1" ).on('load', function() { var mydiv = $(this).contents().find("div"); var h = mydiv.height(); console.log(h) }); var tooltipLivingFigure = jQuery(".interactive-living-figure-label .icon-more-info"), titleLivingFigure = tooltipLivingFigure.attr("title"); tooltipLivingFigure.simpletip({ fixed: true, position: ["-115", "30"], baseClass: 'small-tooltip', content:titleLivingFigure + " " }); tooltipLivingFigure.removeAttr("title"); $("body").on("click", ".cite-living-figure", function(e) { e.preventDefault(); var ref = $(this).attr("data-ref"); $(this).closest(".living-figure-list-container").find("#" + ref).fadeIn(200); }); $("body").on("click", ".close-cite-living-figure", function(e) { e.preventDefault(); $(this).closest(".popup-window-wrapper").fadeOut(200); }); $(document).on("mouseup", function(e) { var metricsContainer = $(".article-metrics-popover-wrapper"); if (!metricsContainer.is(e.target) && metricsContainer.has(e.target).length === 0) { $(".article-metrics-close-button").click(); } }); var articleId = $('#articleId').val(); if($("#main-article-count-box").attachArticleMetrics) { $("#main-article-count-box").attachArticleMetrics(articleId, { articleMetricsView: true }); } }); var figshareWidget = $(".new_figshare_widget"); if (figshareWidget.length > 0) { window.figshare.load("f1000", function(Widget) { // Select a tag/tags defined in your page. In this tag we will place the widget. _.map(figshareWidget, function(el){ var widget = new Widget({ articleId: $(el).attr("figshare_articleId") //height:300 // this is the height of the viewer part. [Default: 550] }); widget.initialize(); // initialize the widget widget.mount(el); // mount it in a tag that's on your page // this will save the widget on the global scope for later use from // your JS scripts. This line is optional. //window.widget = widget; }); }); } close Error Close Add Reset F1000.MICROSERVICES.AFFILIATION = ''; $(document).ready(function () { $('.js-affiliations-form').each((index, form) => { new AffiliationForm({ formId: form.id, institutionErrorSelector: '.comment-enter-institution', departmentErrorSelector: '.comment-enter-department', placeSelector: '.js-add-comment-place', stateSelector: '.js-add-comment-state', zipCodeSelector: '.js-add-comment-zipcode', countrySelector: '.js-add-comment-country', countryErrorSelector: '.comment-enter-country', }); }); }); $(document).ready(function () { var reportIds = { "475919": 0, "475918": 0, "475917": 10, "475916": 0, "475915": 0, "475914": 0, "475913": 0, "474647": 0, "474646": 0, "474645": 0, "474644": 0, "474643": 0, "474642": 0, "475922": 0, "474641": 0, "475921": 0, "475920": 0, "474650": 0, "474649": 1, "474648": 0, "473279": 0, "473278": 0, "473277": 0, "473276": 0, "472007": 0, "472006": 0, "473285": 0, "472005": 0, "473284": 0, "473283": 0, "473282": 0, "473281": 0, "473280": 0, "472014": 0, "472013": 0, "472012": 0, "472011": 0, "472010": 0, "472009": 0, "472008": 0, "470255": 0, "470254": 0, "470253": 0, "470252": 0, "470251": 0, "470250": 0, "470259": 0, "470258": 0, "470257": 0, "470256": 0, }; $(".referee-response-container,.js-referee-report").each(function(index, el) { var reportId = $(el).attr("data-reportid"), reportCount = reportIds[reportId] || 0; $(el).find(".comments-count-container,.js-referee-report-views").html(reportCount); }); var uuidInput = $("#article_uuid"), oldUUId = uuidInput.val(), newUUId = "33155e74-0d4b-4dbd-983e-521b0c80496a"; uuidInput.val(newUUId); $("a[href*='article_uuid=']").each(function(index, el) { var newHref = $(el).attr("href").replace(oldUUId, newUUId); $(el).attr("href", newHref); }); }); An innovative open access publishing platform offering rapid publication and open peer review, whilst supporting data deposition and sharing. Browse Gateways Collections How it Works Contact For Developers Cookie Notice Privacy Notice RSS Submit Your Research Follow us © 2012-2026 F1000 Research Ltd. ISSN 2046-1402 | Legal | Partner of Research4Life • CrossRef • ORCID • FAIRSharing R.templateTests.simpleTemplate = R.template(' $text $text $text $text $text '); R.templateTests.runTests(); var F1000platform = new F1000.Platform({ name: "f1000research", displayName: "F1000Research", hostName: "f1000research.com", id: "1", editorialEmail: "
[email protected]", infoEmail: "
[email protected]", usePmcStats: true }); $(function(){R.ui.dropdowns('.dropdown-for-authors, .dropdown-for-about, .dropdown-for-myresearch');}); // $(function(){R.ui.dropdowns('.dropdown-for-referees');}); $(document).ready(function () { if ($(".cookie-warning").is(":visible")) { $(".sticky").css("margin-bottom", "35px"); $(".devices").addClass("devices-and-cookie-warning"); } $(".cookie-warning .close-button").click(function (e) { $(".devices").removeClass("devices-and-cookie-warning"); $(".sticky").css("margin-bottom", "0"); }); $("#tweeter-feed .tweet-message").each(function (i, message) { var self = $(message); self.html(linkify(self.html())); }); $(".partner").on("mouseenter mouseleave", function() { $(this).find(".gray-scale, .colour").toggleClass("is-hidden"); }); }); Sign In Remember me Forgotten your password? Sign In Cancel Email or password not correct. Please try again Please wait... $(function(){ // Note: All the setup needs to run against a name attribute and *not* the id due the clonish // nature of facebox... $("a[id=googleSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("GOOGLE"); $("form[id=oAuthForm]").submit(); }); $("a[id=facebookSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("FACEBOOK"); $("form[id=oAuthForm]").submit(); }); $("a[id=orcidSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("ORCID"); $("form[id=oAuthForm]").submit(); }); }); If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password. The email address should be the one you originally registered with F1000. Email address not valid, please try again You registered with F1000 via Google, so we cannot reset your password. To sign in, please click here . If you still need help with your Google account password, please click here . You registered with F1000 via Facebook, so we cannot reset your password. To sign in, please click here . If you still need help with your Facebook account password, please click here . Code not correct, please try again Reset password Cancel Email us for further assistance. Server error, please try again. If your email address is registered with us, we will email you instructions to reset your password. If you think you should have received this email but it has not arrived, please check your spam filters and/or contact for further assistance. Please wait... Register $(document).ready(function () { signIn.createSignInAsRow($("#sign-in-form-gfb-popup")); $(".target-field").each(function () { var uris = $(this).val().split("/"); if (uris.pop() === "login") { $(this).val(uris.toString().replace(",","/")); } }); });
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.